AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Client/Server Architektur realisieren - Ideen
Thema durchsuchen
Ansicht
Themen-Optionen

Client/Server Architektur realisieren - Ideen

Ein Thema von TheMiller · begonnen am 5. Dez 2014 · letzter Beitrag vom 28. Dez 2014
Antwort Antwort
Seite 1 von 2  1 2      
Dejan Vu
(Gast)

n/a Beiträge
 
#1

AW: Client/Server Architektur realisieren - Ideen

  Alt 5. Dez 2014, 14:00
Was ist denn daran derzeit "nicht" Client-Server?
Umgangssprachlich wäre ein C/S auch ein N-Tier(N>2) System. Und wir wissen doch, was er meint. DJ-SPAM hat jetzt nicht um Nachhilfe in Sachen Nomenklatur gebettelt.

Zitat:
Ich kann da beim besten Willen keinen Vorteil erkennen.
Ich kann in einer Zwischenschicht besser auf Änderungen reagieren. Ich kann die eine exklusive Verbindung optimal nutzen. Die Verbindungsinformation ist nur an einer Stelle zu hinterlegen, Sicherheitskonzepte lassen sich wesentlich einfacher Umsetzen, nicht jede IT-Infrastruktur erlaubt es, von allen Clients eine Verbindung zu einem DB-Server herzustellen. Caching wäre auch noch eine lustige Option. Etc. Etc. Etc. Das sind jetzt nur die Vorteile, die mir sofort einfallen.
Zitat:
...Höchstens den Schluss daraus ziehen: Wenn deine Datenbank und/oder deren Clients mit Verbindungsabbrüchen bis hin zu Stromausfällen im laufenden Betrieb nicht richtig umgehen können, dann liegt das Übel nicht am System, sondern an der Datenbank, oder dessen Programmierer der die Möglichkeiten der Datenbank nicht ausschöpft.
Äh, hüstel. Schon mal was von instabilen Providern gehört? Schon mal in Asien gewesen? Schon mal einen Zusammenbruch des QoS bei einer TCP-Verbinduing mitgemacht, obwohl das laut OSI-Modell gar nicht geht? Es liegt nicht immer an der Datenbank und auch nicht am Programmierer... Und ich verstehe auch nicht, weshalb Du hier so rumzottelst.

Sachlichkeit und ein wenig mehr Grundwissen über C/S und N-Tier-Technologien sowie deren Vor- und Nachteile wäre wirklich angebracht. Nur weil dein Gurken System seit 50 Jahren läuft, heißt das ja nicht, das das nicht besser, schlanker und moderner geht.

Wie und wo speicherst Du eigentlich die Verbindungsdaten zum Server? Also Login und Kennwort? Auf jedem Client? Hö. Viel Spaß mit Leuten, die Lust haben, den Zugang zu knacken. Ist popeleinfach, schätze ich. Bei einem N-Tier-System ist das dann schon etwas schwieriger.

Das nur mal so am Rande.
  Mit Zitat antworten Zitat
mm1256

Registriert seit: 10. Feb 2014
Ort: Wackersdorf, Bayern
642 Beiträge
 
Delphi 10.1 Berlin Professional
 
#2

AW: Client/Server Architektur realisieren - Ideen

  Alt 5. Dez 2014, 14:24
Jetzt hast du eindrucksvoll beschrieben, dass du ein Oberchecker bist und ich eine rumzottelnde NULL mit popeleinfachem .... Vielen herzlichen Dank für die Aufklärung.
Gruss Otto PS: Sorry wenn ich manchmal banale Fragen stelle. Ich bin Hobby-Programmierer und nicht zu faul die SuFu zu benutzen
  Mit Zitat antworten Zitat
Benutzerbild von TheMiller
TheMiller

Registriert seit: 19. Mai 2003
Ort: Gründau
2.480 Beiträge
 
Delphi XE7 Architect
 
#3

AW: Client/Server Architektur realisieren - Ideen

  Alt 5. Dez 2014, 14:48
Angenommen, ich würde micht entscheiden, dass wir tatsächlich eine Server-Anwendung in Form eines Windows-Dienstes schreiben, welches Konstrukt sollte ich bevorzugen?

Ich dachte die ganze Zeit an einen Indy-TCP-Server/Client. Dem Server werden commands geschickt (ähnlich wie Parameter-Übergaben bei Webseiten). Diese liest er aus und führt die jeweilige Aktion durch.

Gibt es bessere/professionellere Wege als den Indy-TCP-Server? Das System sollte jedoch recht simpel gestaltet werden. Ein riesen Framework ist glaube ich nicht von nöten. Es werden bestimmt nie mehr als 30 Clients gleichzeitig mit dem Server kommunizieren. Wie viel hält der TCP-Server eigentlich aus?

Die Umsetzung war ja auch teil meiner Frage. Wie gesagt, habe sowas noch nie umgesetzt, außer micht mit einer Datenbank verbunden. Das zähle ich jetzt aber nicht mit

Ich habe mich zwar noch nicht entschieden, aber bis jetzt ist die Dienste-Methode als Zwischenschicht im Rahmen des Möglichen.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.881 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Client/Server Architektur realisieren - Ideen

  Alt 5. Dez 2014, 14:57
Ich würde mir nicht zutrauen, in akzeptabler Zeit, das Rad "besser" neu zu erfinden.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von TheMiller
TheMiller

Registriert seit: 19. Mai 2003
Ort: Gründau
2.480 Beiträge
 
Delphi XE7 Architect
 
#5

AW: Client/Server Architektur realisieren - Ideen

  Alt 5. Dez 2014, 15:04
Ich würde mir nicht zutrauen, in akzeptabler Zeit, das Rad "besser" neu zu erfinden.
Wie habe ich das jetzt zu verstehen? Meinst du, man kann den Indy-Server benutzen und muss nicht zu was ganz eigenem greifen, oder denkst du, man sollte den Indy-Server nicht nutzen und lieber ein (großes?) Framework nutzen? Und wenn Framework - an welches denkst du?

DataSnap soll sehr langsam und fehlerbehaftet sein. Und die Geschichte mit TRemoteDatamodule hört sich gerade etwas kompliziert an.

Roter Kasten:
Danke für die weiteren Nachrichten. Ich muss mir mal die Vorteile / Unterschiede zwischen einer eigenen Lösung und den vorgeschlagenen Frameworks anschauen. Derzeit denke ich, dass wir nicht viele Funktionen brauchen, außer den Transport von json-"Objekten". Die HTTP-Methode hört sich auch sehr gut an.

Das Rad will ich keinesfalls neu erfinden. Dazu fehlt die Zeit. Nur abwägen zwischen dem Kauf neuer Komponenten (was mittlerweile ordentlich Geld kostet), den Funktionen die wir nutzen werden, und Boardmittel benutzen.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.881 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Client/Server Architektur realisieren - Ideen

  Alt 5. Dez 2014, 15:35
Ich meinte, Du solltest Dir vorhandene Lösungen ansehen und dann entscheiden, ob es wirklich sinnvoll ist selber Zeit zu investieren.

https://mikejustin.wordpress.com/201...n-with-delphi/
http://www.realthinclient.org/details/
http://www.tmssoftware.com/site/remotedb.asp
http://www.overbyte.be/frame_index.html
http://www.dataabstract.com/da/
Markus Kinzler
  Mit Zitat antworten Zitat
Dejan Vu
(Gast)

n/a Beiträge
 
#7

AW: Client/Server Architektur realisieren - Ideen

  Alt 5. Dez 2014, 14:59
Schau dir mal RemObjects an. Die haben doch alles.
Oder die Delphi-eigenen Komponenten, damit geht das doch auch.
Oder die -sehr generisch- die Middleware-Suite von FPiette.

Nochmal: Mach das nicht selbst, das lohnt nicht (außer, ihr habt sonst nichts zu tun).

Jetzt hast du eindrucksvoll beschrieben...
Das war nicht meine Absicht, aber wer austeilt, sollte auch einstecken können, findest Du nicht auch?
  Mit Zitat antworten Zitat
mm1256

Registriert seit: 10. Feb 2014
Ort: Wackersdorf, Bayern
642 Beiträge
 
Delphi 10.1 Berlin Professional
 
#8

AW: Client/Server Architektur realisieren - Ideen

  Alt 5. Dez 2014, 16:26
Das war nicht meine Absicht, aber wer austeilt, sollte auch einstecken können, findest Du nicht auch?
Da liegst du in mehrerlei Hinsicht falsch. Ich habe nicht ausgeteilt, sondern du. Wenn du der Meinung bist, das hier ist eine "Austeilstation" dann ist das zu tolerieren eine Angelegenheit der Mod's. Der TE hat auch nicht nach Asien oder instabilen Providern gefragt. Das sind Argumente die du dir selber aus der Nase gezogen hast, um deinen Kommentar zu rechtfertigen. Mit Sachlichkeit hat das jedenfalls nicht viel zu tun.

Ich habe lediglich meine Meinung kund getan. Vielleicht in einer etwas "direkten Formulierung", doch was soll daran falsch sein. Es geht doch - um zur urspünglichen Frage zurück zu kommen

Zitat von DJ-SPM:
...Weiterer Nachteil ist, dass es zu schwer abfangbaren Problemen im Programm kommt (keine Reaktion etc.), wenn die Verbidung zur Datenbank verloren geht. Dies kann durch remote-Zugriff via VPN etc. öfter mal passieren.
...und da bin ich nach wie vor der Meinung, dass eine Zwischenschicht das Problem nicht lösen kann und wird, denn wenn (in der jetzigen Situation) die Verbindung zur Datenbank verloren geht, dann wird danach eben anstelle zur Datenbank die Verbindung zur Zwischenschicht verloren gehen. Wo ist da (für den Client) der Unterschied oder der Vorteil? Ich sehe keinen. Zumindest keinen, den eine normale Datenbank (Stichwort failsave transactions) nicht auch handeln kann. Eine Zwischenschicht macht doch nur Sinn, wenn ich unterschiedliche Clients (Workstations, WEB-Clients, mobile Geräte) zusammenführen muss. Ich lasse mich aber gerne eines Besseren belehren.
Gruss Otto PS: Sorry wenn ich manchmal banale Fragen stelle. Ich bin Hobby-Programmierer und nicht zu faul die SuFu zu benutzen
  Mit Zitat antworten Zitat
mjustin

Registriert seit: 14. Apr 2008
3.013 Beiträge
 
Delphi 2009 Professional
 
#9

AW: Client/Server Architektur realisieren - Ideen

  Alt 6. Dez 2014, 09:35
...und da bin ich nach wie vor der Meinung, dass eine Zwischenschicht das Problem nicht lösen kann und wird, denn wenn (in der jetzigen Situation) die Verbindung zur Datenbank verloren geht, dann wird danach eben anstelle zur Datenbank die Verbindung zur Zwischenschicht verloren gehen. Wo ist da (für den Client) der Unterschied oder der Vorteil? Ich sehe keinen. Zumindest keinen, den eine normale Datenbank (Stichwort failsave transactions) nicht auch handeln kann.
Naja, ein paar Vorteile fallen mir da schon ein:

* keine Datenbank-Clientinstallation auf den Clients erforderlich => was nicht da ist, kann auch nicht ausfallen oder falsch konfiguriert werden
* keine datenbankspezifische Programmierung (Transaktionsbehandlung) im Client => Komplexität nur noch im Middle-Tier, die ohne Roll-out neuer Clients gepflegt werden kann
* durch asynchrone Requests (Message Queues) können DB-Aktionen die zum Beispiel während einer Downtime der Datenbank nicht möglich sind, zeitversetzt erfolgen. Ein Middle-Tier System kann auch Caching dazu einsetzen, dass Clients während eines Datenbankausfalls noch eingeschränkt weiter arbeiten können.

Hochverfügbarkeit kann man in einem klassischen Client/Server System nur mit höherem Aufwand erreichen.
Michael Justin
  Mit Zitat antworten Zitat
Dejan Vu
(Gast)

n/a Beiträge
 
#10

AW: Client/Server Architektur realisieren - Ideen

  Alt 6. Dez 2014, 12:24
Bei einem Kunden ist es nicht möglich und nicht gewollt, vom Client aus direkt auf die DB-Server zuzugreifen. Eine Zwischenschicht löst das Problem, ohne das die Sicherheitspolitik zur Disposition steht. Oft gemacht (mit Delphi-Bordmitteln).

Der TE hat auch nicht nach Asien oder instabilen Providern gefragt. Das sind Argumente die du dir selber aus der Nase gezogen hast
Eigentlich nicht, sondern Belege aus meiner Arbeit. Ich könnte Dir da auch noch tolle Beispiele aus USA benennen, was die dort teilweise unter einem stabilen Netzwerk verstehen. Ich bin halt rumgekommen und kann was erzählen. Tut mir leid, soll ich mein Wissen für mich behalten? Vor allen Dingen, wenn ein naseweiser Neunmalkluger meint, alles besser zu wissen? Nein, Du bist damit natürlich nicht gemeint.

Zitat:
...und da bin ich nach wie vor der Meinung, dass eine Zwischenschicht das Problem nicht lösen kann und wird, denn wenn (in der jetzigen Situation) die Verbindung zur Datenbank verloren geht, dann wird danach eben anstelle zur Datenbank die Verbindung zur Zwischenschicht verloren gehen.
Deine Meinung in Ehren, aber so einfach ist das vielleicht doch nicht:

Wie reagierst Du denn bei deiner Lösung, wenn der Server ausfällt und der Backup-Server nun einspringen muss (andere IP)? Dann rennst Du doch zu allen Clients und änderst die Konfiguration, oder wie löst Du das sonst? Doch nicht etwa über eine im Netz stehende Konfigurationsdatei?

Na ja, wenn du von deiner Lösung überzeugt bist, dann ist das ja ok. "Never change a running system". Aber wenn das System vom TE nicht gut läuft, sind erprobte und etablierte Alternativen ('N-Tier', Proxy) doch wohl besser angebracht, als ein: "Bringt doch nix". Mach doch erst einmal Erfahrungen mit mehrschichtigen Anwendungen. Entweder wirst Du deine Meinung bestätigt sehen, oder nicht: Gewonnen hast Du dann auf jeden Fall.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:54 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