AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Doofe Situation mit gemeinsam genutzten Dateiressourcen
Thema durchsuchen
Ansicht
Themen-Optionen

Doofe Situation mit gemeinsam genutzten Dateiressourcen

Ein Thema von QuickAndDirty · begonnen am 5. Dez 2011 · letzter Beitrag vom 6. Dez 2011
Antwort Antwort
QuickAndDirty

Registriert seit: 13. Jan 2004
Ort: Hamm(Westf)
2.058 Beiträge
 
Delphi 12 Athens
 
#1

AW: Doofe Situation mit gemeinsam genutzten Dateiressourcen

  Alt 6. Dez 2011, 08:43
"nicht Ponyhof" = scheiße ????

Für unsere Fatclients kommt sämtliche Konfiguration aus der DB.
Das beinhaltet Labels(inkl. I18), Rechte (natürlich Grants, aber auch alles was damit nicht geht), Konfig- und Steuerdaten, XML in CLOBs, ganze Dateien (z.B. Excel Templates) in BLOBs.
Die Fat Clients (Delphi und c#) haben lediglich einige Command Line Schalter.

Das Beste daran ist die zentrale Pflege dieser ganzen Daten.
Also m.E. spricht alles für eine DB gestützte Konfiguration. Also z.B. mORMot. Wenn die bestehende Lösung in Richtung Filekonfiguration gut gekapselt ist, ist ein manueller "Tausch" gegen DB vlt. gar nicht so aufwendig.
ja vielleicht könnte man die Dateien wirklich einfach in eine
Datenbank mit blobs legen. Nur aus Paradoxzeiten herrscht bei mir irgendwie eine gewisse unsicherheit was blobs angeht vor.
Habe mir überlegt das es vielleicht sinnvoll ist das ganze über einen Syncserver zu machen
ich hätte dann in der Datenbank eine Tabelle mit

ID | DATEIPFAD | ZEITSTEMPELL | BLOB

Der Syncserver würde jede 5 min mal alle Dateien auf aktuallität prüfen und gegebenenfalls neu importieren, vielleicht sogar historisiert. Oder eben wenn der Zeitstempel in der DB Aktueller ist
als die Datei die Datei mit dem Blob überschreiben.

So hätte ich immer noch ein einfaches transportieren von einzelnen Kundenspezifischen Reports und Makros. Und immer sowas wie eine Kopie falls die Blobs mal kaputt sind.

Nachteil wäre natürlich das man immer ganze Blobs lesen und schreiben müsste.
Andreas
Nobody goes there anymore. It's too crowded!
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#2

AW: Doofe Situation mit gemeinsam genutzten Dateiressourcen

  Alt 6. Dez 2011, 08:57
Das mit dem SyncServer ist dann aber auch mehr durch die Brust ins Auge.

Und sauber ist das auch nicht, da es zu viele "nur wenn" gibt.

Aus diesem Grund packt man das besser in eine DB und jeder Client kann die Daten lesen und schreiben, wie er gerade lustig ist.
Beim Zugriff auf die Daten prüft man nur schnell, ob der Zeitstempel des Objekts noch aktuell ist und aktualisiert das Objekt im Bedarfsfall.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
QuickAndDirty

Registriert seit: 13. Jan 2004
Ort: Hamm(Westf)
2.058 Beiträge
 
Delphi 12 Athens
 
#3

AW: Doofe Situation mit gemeinsam genutzten Dateiressourcen

  Alt 6. Dez 2011, 11:28
Beim Zugriff auf die Daten prüft man nur schnell, ob der Zeitstempel des Objekts noch aktuell ist und aktualisiert das Objekt im Bedarfsfall.
Aktuell gemessen an der Datei oder aktuell in bezug auf einen Cache?
Andreas
Nobody goes there anymore. It's too crowded!
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#4

AW: Doofe Situation mit gemeinsam genutzten Dateiressourcen

  Alt 6. Dez 2011, 11:43
Beim Zugriff auf die Daten prüft man nur schnell, ob der Zeitstempel des Objekts noch aktuell ist und aktualisiert das Objekt im Bedarfsfall.
Aktuell gemessen an der Datei oder aktuell in bezug auf einen Cache?
Ich sprach ja jetzt davon, alle Daten in einer DB zu halten.

Wenn du mORMot einsetzt, dann gibt es bei jedem Objekt (TSQLRecord) eine Eigenschaft "InternalState".
Der Server hat auch einen InternalState, der bei jeder DB-Änderung hochgesetzt wird.

Somit muss man nur diese beiden Werte vergleichen und wenn sich die unterscheiden, dann einmal einen Refresh, ansonsten ist alles schick.

Macht allerdings nur dann Sinn, wenn man eine eigene Konfigurations-DB einsetzt - in der Produktions-DB wird es ja wohl laufend Änderungen geben.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#5

AW: Doofe Situation mit gemeinsam genutzten Dateiressourcen

  Alt 6. Dez 2011, 09:01
Mach doch einfach mit Deiner CLient Architektur / Connectivity einen Schreiblesetest für CLOB/BLOB.
Wenn das klappt ist doch alles ok. BLOB ist ja kein Voodoo mehr, Paradox ist lang her.
Wenn Du es auf die Spitze treiben willst, kannst Du natürlich deine ganzen Konfig files zippen und in einen Selfextractor packen. Die Clients behalten ihre File basierte KOnfiguration, speichern das aber lokal.
Ein "ganzes BLOB" ist aber auch nicht so ein Thema, manche DB-Clients komprimieren hier bereits bei der Übertragung. Und so aus dem Bauch würde ich sagen, dass der "normale" Datenverkehr bei TDataset Operationen Browse,Edit,Insert,Update mehr Overhead erzeugt, als mal ein BLOB runterzuladen.

Stehen in den Konfigdaten auch individuelle Benutzereinstellungen? Dann müsste man sicher etwas filigraner vorgehen.
Gruß, Jo
  Mit Zitat antworten Zitat
QuickAndDirty

Registriert seit: 13. Jan 2004
Ort: Hamm(Westf)
2.058 Beiträge
 
Delphi 12 Athens
 
#6

AW: Doofe Situation mit gemeinsam genutzten Dateiressourcen

  Alt 6. Dez 2011, 11:27
Stehen in den Konfigdaten auch individuelle Benutzereinstellungen? Dann müsste man sicher etwas filigraner vorgehen.
Ja !
Es gibt eben eine baum artige Konfigurationsdatein mit userspezifischen Zweigen...
Ich persönlich würde mir speziell diese Datei durch schreibend wünschen...sprich das jede änderung
sofort wirksam wird...habe schon mal angedacht eine "Teile Tabelle" dafür zu nehmen...
Aber ein erster schritt wäre sicher alles in blobs zu packen.
Andreas
Nobody goes there anymore. It's too crowded!
  Mit Zitat antworten Zitat
Antwort Antwort


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 15:30 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