Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Server Client Lösung (https://www.delphipraxis.net/167252-server-client-loesung.html)

Alterauge 20. Mär 2012 10:50

Server Client Lösung
 
Hallo,

habe mal eine Frage!

Das Programm (Form1) läuft auf PC 1!

Zum Form1:

Wenn ich Button1 drücke, färbt sich das Panel1 rot!
Wenn ich Button2 drücke, färbt sich das Panel1 gelb!


Jetzt zur meiner Frage!

Wenn das Programm (Form1) auch auf PC2(Netzwerk) läuft,
und ich Button1 drücke, soll sich das Panel1 rot färben, aber auch das Panel1 auf dem PC1 soll sich ändern!
Wie mache ich das?

Also eine Server/Client Lösung oder so?
Wie kann ich dieses umsetzten?

stahli 20. Mär 2012 11:52

AW: Server Client Lösung
 
Die Frage ist interessant und ich habe sie mir auch schon gestellt.

Siehe z.B. hier unter #4.

Grundsätzlich muss man die Datenebene und die GUI (Formularkomponenten) trennen.

Du musst also eine Datenebene (ggf. einfach eine Datenbank) haben und dort den Wert "Color" speichern.
Dann muss es natürlich eine Datenbindung der GUI an diese Datenschicht geben. Die GUI muss informiert werden, wenn es neue bzw. geänderte Daten gibt.

Im einfachsten Fall holt sich der Client die Daten zyklisch ab. Das ist aber natürlich keine effektive Lösung.

Wenn man die Daten nicht auf einen Farbwert begrenzt, sondern dort tausende Kunden, Bestellungen und Rechnungen verwaltet und wenn man im Client auf diese Daten über Objekte zugreifen will, dann wird das Ganze natürlich deutlich aufwendiger.

Darüber hinaus müssen gleichzeitige (schreibende) Zugriffe von mehreren Clients verhindert werden.

ORM´s wie mORMot, DORM oder Aurelius sollen einem diese Arbeit abnehmen.

Hilfreich ist dann natürlich, wenn man ein Databinding zwischen den Objekten und der GUI nutzen kann.

Je größer das Projekt wird, um so anspruchsvoller wird wohl eine entsprechende Umsetzung (vom Zeitverhalten her).


Ich würde mir wünschen, dass Delphi hier ein "Rundum-Sorglos-Paket" an Bord hätte. Mit den ganzen Dingen will ich mich demnächst näher befassen....


(EDIT: Ich bin davon ausgegangen, dass es nicht wirklich darum ging, einzelne Werte auszutauschen, sondern eine gemeinsame (umfangreiche) Datenbasis zu nutzen.)

s.h.a.r.k 20. Mär 2012 11:53

AW: Server Client Lösung
 
Mit Hilfe der Indy-Komponenten kannst du sowas realisieren. Im Forum solltest du massigst Informationen und einige Tutorials darüber finden, wie zwei Programme über das Netzwerk miteinander kommunizieren können.

Bummi 20. Mär 2012 12:09

AW: Server Client Lösung
 
Stichwort könnten sein TCP/IP, UDP, Named Pipes ...

kuba 20. Mär 2012 12:16

AW: Server Client Lösung
 
vielleicht hilft dir das hier weiter : https://indy10clieservr.svn.sourcefo...dy10clieservr/

KUBA

mjustin 20. Mär 2012 15:26

AW: Server Client Lösung
 
Ohne Polling kann man diese Aufgabenstellung lösen indem man auf einem einfachen Chatprogramm aufbaut.

generic 20. Mär 2012 15:31

AW: Server Client Lösung
 
MessageQueuing via MSMQ oder ActiveMQ wäre auch eine gute Lösung.


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:40 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz