Algorithmen, Sprachunabhängige Diskussionen zu Konzepten, Programmiersprachen-Design
-
Glocke
- Beiträge: 332
- Registriert: Fr Okt 26, 2012 8:39 am
Beitrag
von Glocke » Mo Jan 14, 2013 5:32 pm
Hallo
gehen wir mal von einem Programm aus, das dem Designpattern "Model-View-Controller" entspricht. Dabei wird das "Observer"-Pattern verwendet. Nun soll dieses Programm um Netzwerk-Funktionalität hinsichtlich des Server-Client-Modells erweitert werden. Mein Ansatz (ohne Verwendung eines Servers mit Client-Funktionalität) wäre der folgende:
- Der Server erhält das Model und einen Server-Controller.
- Der Client erhält die View und einen Client-Controller.
- Die Aktionen des Clients (die vorher direkt ans Model liefen) gelangen nun über TCP oder UDP an den Server.
- Eingehende Aktionen reicht der Server-Controller an das Model weiter.
- Das Model verarbeitet die eingehenden Daten und gibt dem Server-Controller die Aufgabe, eine Antwort (Update der Spielerposition usw.) an den oder die Clients zu senden. Das tut der Server-Controller.
- Der Client-Controller erhält die Antworten (die indirekt vom Model kommen) und gibt sie (wie bisher) an die View weiter, um die Darstellung zu modifizieren
Ist das bis hierhin erstmal gängige Praxis?
LG Glocke
-
darksider3
- Beiträge: 347
- Registriert: Fr Sep 14, 2012 6:26 pm
- Wohnort: /dev/sda1
-
Kontaktdaten:
Beitrag
von darksider3 » Mo Jan 14, 2013 8:20 pm
Hey,
ich denke
das hier kann dir bei der ganzen Sache helfen. Da ich keine erfahrung mit Server-Client Modellen habe, und dass schon gar nicht in Verbindung mit MVC, scheint es diese Frage oft zu geben...einfach mal Google fragen

Edit: Das hier(
LINK )scheint ganz hilfreich zu sein
Mfg
-
Glocke
- Beiträge: 332
- Registriert: Fr Okt 26, 2012 8:39 am
Beitrag
von Glocke » Mo Jan 14, 2013 8:56 pm
darksider3 hat geschrieben:Das hier(
LINK )scheint ganz hilfreich zu sein
Das war mir damals schon keine Hilfe
Ich schau mir mal den anderen Link an, dessen Autor ich nicht bin
LG Glocke
-
darksider3
- Beiträge: 347
- Registriert: Fr Sep 14, 2012 6:26 pm
- Wohnort: /dev/sda1
-
Kontaktdaten:
Beitrag
von darksider3 » Mo Jan 14, 2013 8:59 pm
Das war mir damals schon keine Hilfe
Verdammt nicht auf den Namen des Users geachtet...Sorry^^
Naja, bei stackoverflow findet man ja eigentlich alles von Hello World Problemen bis zu MC basierter Programmierung mit Ports oder wie man das dort nennt...^^
Mfg
-
Glocke
- Beiträge: 332
- Registriert: Fr Okt 26, 2012 8:39 am
Beitrag
von Glocke » Mo Jan 14, 2013 9:07 pm
darksider3 hat geschrieben:ich denke
das hier kann dir bei der ganzen Sache helfen.
Also wenn ich das richtig verstanden habe, bin ich mit meinem Konzept auf dem richtige Weg

-
darksider3
- Beiträge: 347
- Registriert: Fr Sep 14, 2012 6:26 pm
- Wohnort: /dev/sda1
-
Kontaktdaten:
Beitrag
von darksider3 » Mo Jan 14, 2013 9:22 pm
Hmm, das wichtigste ist wohl(gefiltert):
Also, you can have multiple instances of MVC working together in one application, distributed over client and server.
Some of the things I would look at:
network: How much data needs to be shuttled between client and server? How many requests will an application typically send? (too much may saturate the network or cause other trouble)
responsiveness: higher responsiveness can require you to put more in the client
security: everything that goes over the wire may be less secure
performance: if you need high performance, you may need components on the server
expected loads: you may decide to put more components client-side to offload the server, instead of clustering your backend for example
etc.
Jo, scheinst gut dabei zu sein...ich hoffe das hat dir nun mehr geholfen als die ubuntuuser

-
Xin
- nur zu Besuch hier
- Beiträge: 8862
- Registriert: Fr Jul 04, 2008 11:10 pm
- Wohnort: /home/xin
-
Kontaktdaten:
Beitrag
von Xin » Di Jan 15, 2013 10:31 am
Glocke hat geschrieben:Hallo
gehen wir mal von einem Programm aus, das dem Designpattern "Model-View-Controller" entspricht. Dabei wird das "Observer"-Pattern verwendet. Nun soll dieses Programm um Netzwerk-Funktionalität hinsichtlich des Server-Client-Modells erweitert werden. Mein Ansatz (ohne Verwendung eines Servers mit Client-Funktionalität) wäre der folgende:
- Der Server erhält das Model und einen Server-Controller.
- Der Client erhält die View und einen Client-Controller.
- Die Aktionen des Clients (die vorher direkt ans Model liefen) gelangen nun über TCP oder UDP an den Server.
- Eingehende Aktionen reicht der Server-Controller an das Model weiter.
- Das Model verarbeitet die eingehenden Daten und gibt dem Server-Controller die Aufgabe, eine Antwort (Update der Spielerposition usw.) an den oder die Clients zu senden. Das tut der Server-Controller.
- Der Client-Controller erhält die Antworten (die indirekt vom Model kommen) und gibt sie (wie bisher) an die View weiter, um die Darstellung zu modifizieren
Ist das bis hierhin erstmal gängige Praxis?
LG Glocke
Im Prinzip setzt Du zwischen die Kommunikation von Controller und View eine Netzwerkverbindung. Sie rufen also nicht nur einfach Funktionen, sondern diese Funktionen senden ihren Informationen über das Netzwerk, die entsprechende Gegenstelle ruft dann die Funktion, die erreicht werden sollte.
Ob das gängige Praxis ist, weiß ich nicht. Sah bei mir aber auch nicht anders aus.
Es ist erstens logisch und zweitens wüsste ich auch nicht, wie man es anders machen sollte.

Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.
Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.
-
Glocke
- Beiträge: 332
- Registriert: Fr Okt 26, 2012 8:39 am
Beitrag
von Glocke » Di Jan 15, 2013 3:13 pm
Xin hat geschrieben:Ob das gängige Praxis ist, weiß ich nicht. Sah bei mir aber auch nicht anders aus.
Es ist erstens logisch und zweitens wüsste ich auch nicht, wie man es anders machen sollte. ;-
Die Aussage ist mir ehrlich gesagt sehr viel wert

Danke!
LG Glocke