Client Server Beispiel.

Für Fragen von Einsteigern und Programmieranfängern...
Antworten
Andy Nightingale
Beiträge: 275
Registriert: Mo 13. Jan 2025, 12:11

Client Server Beispiel.

Beitrag von Andy Nightingale »

Hallo Leute,

hat jemand unter euch ein fertiges Client Server Beispiel mit einer Datenbank wo man einmal testen kann?
Grüße

charlytango
Beiträge: 1158
Registriert: Sa 12. Sep 2015, 12:10
OS, Lazarus, FPC: Laz stable (2.2.6, 3.x)
CPU-Target: Win 32/64, Linux64
Wohnort: Wien

Re: Client Server Beispiel.

Beitrag von charlytango »

Ja, hab ich beigelegt ;-)

SQL ist auch in der Version SQLite wie Clinent/Server zu behandeln nur dass der "Server" auch auf dem gleichen Rechner liegt bzw als Single-User benutzt wird.
Ob das nun SQLite als DB Server oder MariaDB,MySQL, MSSQL oder andere betrifft, es wird immer Client/Server programmiert

Es kommt bei großen SQL Servern auf die mehrere Benutzer zugreifen dann noch die Thematik der Duplizität oder Gleichzeitigkeit von Daten dazu -- also der Sperrung
Dateianhänge
SQLite_Easy.zip
(495.6 KiB) 62-mal heruntergeladen

Andy Nightingale
Beiträge: 275
Registriert: Mo 13. Jan 2025, 12:11

Re: Client Server Beispiel.

Beitrag von Andy Nightingale »

Hallo Charlytango,

danke für das Beispiel.
habe es gerade angesehen.-verstehe aber nicht ganz was dies mit einer C/S zu tun hat? Verstehe ich da was falsch????

Grüße

charlytango
Beiträge: 1158
Registriert: Sa 12. Sep 2015, 12:10
OS, Lazarus, FPC: Laz stable (2.2.6, 3.x)
CPU-Target: Win 32/64, Linux64
Wohnort: Wien

Re: Client Server Beispiel.

Beitrag von charlytango »

möglicherweise verstehe ja auch ich etwas falsch.
Für mein simples Hirn ist eine Datenbankapplikation eine Client/Server Anwendung.

Falls du allerdings Kommunikation zwischen zwei Rechnern meinst die Daten hin und her schicken, wäre ich natürlich falsch.
Mich hat wohl dein Wording "mit einer Datenbank" getriggert, Sorry

Andy Nightingale
Beiträge: 275
Registriert: Mo 13. Jan 2025, 12:11

Re: Client Server Beispiel.

Beitrag von Andy Nightingale »

charlytango hat geschrieben: Di 2. Sep 2025, 23:40 möglicherweise verstehe ja auch ich etwas falsch.
Für mein simples Hirn ist eine Datenbankapplikation eine Client/Server Anwendung.

Falls du allerdings Kommunikation zwischen zwei Rechnern meinst die Daten hin und her schicken, wäre ich natürlich falsch.
Mich hat wohl dein Wording "mit einer Datenbank" getriggert, Sorry
Hallo charlytango,
nein eine Datenbankapplikation ist eine Datenbankapplikation. Ein C/S Applikation ist wenn sich ein Client an einem Server anmeldet und dort die Hauptdatenbank benutzt, die auf dem Server liegt. Es können sich somit mehrere Clients ( hunderte, tausende) an einer Serversoftware mit Datenbank anmelden und alle arbeiten mit der gleichen Datenbank.
Aber danke für den Versuch. :D

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6927
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: Client Server Beispiel.

Beitrag von af0815 »

Das ist nicht unbedingt das Merkmal von C/S DBs. Einen Server und x Clients machen keine C/S aus.
Wenn du nach einem etwas komplexeren Beispiel suchst, so schau dir Mal Mormot an. Vor allen die Doku. Die ist verdammt gut und beantwortet viele Fragen.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Benutzeravatar
Zvoni
Beiträge: 442
Registriert: Fr 5. Jul 2024, 08:26
OS, Lazarus, FPC: Windoof 10 Pro (Laz 2.2.2 FPC 3.2.2)
CPU-Target: 32Bit
Wohnort: BW

Re: Client Server Beispiel.

Beitrag von Zvoni »

Eine C/S-Anwendung hat per se erst mal nichts mit einer Datenbank zu tun (obwohl in den meisten Fällen durchaus auch eine Datenbank hintendran sitzt).

Ein Beispiel für eine C/S-Anwendung wäre z.B. ein "Berechnungsdienst" (Stellt euch eine Physik-Abteilung einer Universität vor)
Eine "Server"-Anwendung (!!! Hat per se erst mal nichts mit einer separaten Maschine zu tun) bietet einen "Dienst" an, eine äusserst komplexe Berechnung vorzunehmen, bei welcher ein "handelsüblicher" Rechner in die Knie gehen würde.

Ein "Client" (welcher z.B. auf so einem normalen Rechner läuft), erhält von irgendwoher irgendwelche Messdaten (Bsp. Messdaten vom Kepler-Satelliten)
und der Anwender will jetzt: "Schauen wir mal, ob wir einen Exo-Planeten gefunden haben. Ich geb die Daten an unseren Supercomputer".
Der "Client" setzt einen Request an den "Server" ab ("Client" bzw. "Server" sind jetzt NICHT Maschinen/Rechner, sondern Programme!!):
Client: "Hey, Server. Hier hast du einen Batzen Messdaten. Quirl die mal durch deine Algoritmen, und gib mir das Resultat zurück."
Server: "Hey, Client. Alles klar. Wird einige Zeit in Anspruch nehmen. Ich geb dir Bescheid wenn ich fertig bin. Du kannst solange was anderes machen"
Server fängt an zu rechnen. Wenn er fertig ist, zündet er das Event "BinFertig", zu welchem der "Client" subscribed ist.
Client erhält Ergebnis.....
Ein System sie alle zu knechten, ein Code sie alle zu finden,
Eine IDE sie ins Dunkel zu treiben, und an das Framework ewig zu binden,
Im Lande Redmond, wo die Windows drohn.

charlytango
Beiträge: 1158
Registriert: Sa 12. Sep 2015, 12:10
OS, Lazarus, FPC: Laz stable (2.2.6, 3.x)
CPU-Target: Win 32/64, Linux64
Wohnort: Wien

Re: Client Server Beispiel.

Beitrag von charlytango »

Das Problem, das ich mit dieser Anfrage habe, ist die nicht genormte Begrifflichkeit.
Andy Nightingale hat geschrieben: Mi 3. Sep 2025, 00:31 Ein C/S Applikation ist wenn sich ein Client an einem Server anmeldet und dort die Hauptdatenbank benutzt, die auf dem Server liegt.
Ich weiß nicht welche abfällige Vorstellung du von einer Datenbankapplikation hast. Ja, es gibt welche, die als Einbenutzer Version Daten lokal halten, aber schon zu dBase Zeiten habe ich mehrbenutzer Konzepte umgesetzt wobei die Daten dabei auf einem gemeinsamen Server lagen. Das könnte man noch als erweiterte lokale Lösung betrachten, aber spätestens wenn ein autarker SQL-Server ins Spiel kommt, der über ein gemeinsames Protokoll Anfragen von mehreren Clients beantwortet ist man bei einem C/S Konzept.
Andy Nightingale hat geschrieben: Mi 3. Sep 2025, 00:31 Es können sich somit mehrere Clients ( hunderte, tausende) an einer Serversoftware mit Datenbank anmelden und alle arbeiten mit der gleichen Datenbank.
Also meine Datenbankapplikationen machen genau das.
Das ist bei allen mehrbenutzer SQL-Servern so, die dahinter stehende Infrastuktur und Sucherheitsarchitekur wird sich unterscheiden.
Ein internes Büronetzwerk mit 2-n Rechnern ( das können auch schon gerne mal tausende sein bei großen Firmen) ist ebenso eine Client/Server Anwendung wie eine Suchmaschine a la Google. Nur läuft bei G die Clientanwendung im Browser, die Kommunikation über zwischengeschaltete Webserver bis die Abfrage auf seinen Datenbankservern landet (das sind in diesem Fall eben gespiegelte asynchron arbeitende Clusterlösungen die dem Client dynamisch zugeteilt werden)

Also alles Eigenschaften die lt Wikipedia Fantasien auf eine C/S Anwendung zutreffen.

Du erwähnst
Andy Nightingale hat geschrieben: Mi 3. Sep 2025, 00:31 die Hauptdatenbank
Was denkst du denn wird das in der Praxis sein? Lt deinen Angaben
Andy Nightingale hat geschrieben: Mi 3. Sep 2025, 00:31 ( hunderte, tausende)
wird das irgendeine der zahlreichen Mehrbenutzerdatenbanken sein die im Servermodus laufen.
Und dabei lasse ich mal alle Chatapplikationen, Streaming und Musikapplikationen, Mailserver Webserver und viele andere mal außen vor.

das was @af0815 vorgeschlagen hat ist ein Framework.

Zitat:
mORMot ist ein hochentwickeltes Open Source Framework für Datenbank-, Netzwerk- und Web-Anwendungen mit Lazarus/FPC (und auch Delphi), das ORM-, REST- und SOA-Funktionalität plattformübergreifend bereitstellt.

Es geht also darum WIE die Kommunikation vom Client zum Server läuft und WIE der Client aussieht. ZB ob er im Browser über einen zwischengeschalteten Webserver läuft oder eher monolithisch ist und Wahlweise auf einen zwischengeschalteten Anwendungsserver zugreift der die Anfrage an die Datenbank weiterleitet.

Client/Server steht also als Menü-Überschrift über einer ziemlich endlos anmutenden Liste von Möglichkeiten und Varianten über deren Sinn und Unsinn auch schon etliche Dekaden gestritten wird.

Damit dir (vielleicht wesentlich besser qualifizierte) eine valide Auskunft anbieten können musst du dir schon ein Gericht aus dem Menü aussuchen. Oder wenn ich Robert Lembke zitiere "Welches Schweinderl hätten Sie denn gerne?"

Antworten