Einzelnen Beitrag anzeigen

Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.607 Beiträge
 
#8

AW: Wer nutzt denn alles DataSnap?

  Alt 15. Feb 2011, 22:21
ich vermute mal ihr nutzt data abstract. das ist eine art middle tier bzw mapping für db-zugriff, korrekt? eigene funktionen damit abzubilden scheint mir zumindest im video nicht vorzukommen. auch benötigt man ja häufig unabhängig der datenbank funktionen welche zB einfach nur rechnen und ein ergebnis zurückgeben.
Das Mapping ist nur ein kleiner Aufgabenteil von DataAbstract. Der Schwerpunkt liegt selbstverständlich auf der Implementierung eigener Business-Logik in einer skalierbaren Schicht. Du kannst eigene Funktionen sowohl im Code als auch mittels Scripting implementieren. Wahlweise eins von beidem oder auch in Kombination. Je nach belieben. Scripting hat hierbei den Vorteil, dass die Scripte auch zur Verifizierung noch an den Client übertragen werden können und dort eine Vor-prüfung durchführen können um unnötiges Übertragen von Daten zu verhindern.

eine weitere anforderung ist ja zB caching. der application server soll daten zwischencachen damit die datenbank nicht ständig durch abfragen belastet wird, welche immer das gleiche ergbnis an die clients liefert (statusinformation). wenn es änderungen an daten gibt, meldet der db-server dies dem app-server, dieser fragt die daten neu ab und meldet den clients, dass diese ihre neuen informationen jetzt beziehen können.
Nicht wirklich. Cacheing macht in N-Tier-Umgebungen nahezu überhaupt keinen Sinn. Das Problem ist durch die Skalierbarkeit gegeben. Was für einen Sinn macht es, wenn der Application Server auf Maschine 1 Daten cached, die auf Maschinen 2, 3 und 4 gerade (ggf. gegensätzlich) verändert wurden? Um die Caches immer über alle Maschinen aktuell zu halten würde man so viel Synchronisierungs-Overhead erzeugen, das es keinen Sinn mehr machen würde das überhaupt in eine Separate Logik-Schicht auszulagern. Die Datenbank cached schon genug, daher besteht keine Notwendigkeit eine weitere Cache-Schicht einzuziehen. Um Datenbanken über die Verwendung größerer Cluster hinaus zu skalieren muss man anfangen, Daten zu partitionieren. Auch hier macht Cacheing gar keinen Sinn.
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat