Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi 3-Schichtenmodell (https://www.delphipraxis.net/22842-3-schichtenmodell.html)

day 24. Mai 2004 22:56


3-Schichtenmodell
 
Hallo

Ich versuche gerade ein 3-Schichtenmodell aufzubauen. Leider ist das Thema in meinem Buch relativ kurz gehalten. Kennt jemand einen guten link oder sonstige hilfreiche infos darüber?

danke

mschaefer 25. Mai 2004 10:36

Re: 3-Schichtenmodell
 
Moin, moin

Da Du Dich im Bereich Datenbanken befindest fällt mir spontan die 3 Ebenenarchitektur des Datenbestandes nach ANSI SPARC ein. Aber vielleicht meinst Du auch eine
bestimmte Arbeitsteilung von Komponenten. Hm, präzisiere Deine Frage...

Grüße // Martin

day 26. Mai 2004 21:32

Re: 3-Schichtenmodell
 
Hallo

Also ich versuche eine Schnittstelle zu einer Datenbank zu implementieren. (möchte nicht direkt mit den komponenten darauf zugreifen). Jetzt weiss ich aber noch nicht so genau wie ich das realisieren soll. Hat da jemand eine idee??

Mein erste gedanke waren objekte welche die einzelnen tabellen repräsentieren und die daten in listen speichern. Aber mir fehlt da noch irgendwie der durchblick (oder eben die zündende idee)

Bernhard Geyer 27. Mai 2004 07:23

Re: 3-Schichtenmodell
 
Schau dir mal die Infos zum Bridge-Pattern an. Dieses Pattern wird zwar meist zur Abstraktion des Oberflächenzugriffs (Anwendung soll unter Windows, XWindows, ... laufen) verwendet, kann aber Prima zur Kapsellung der Datenbankzugriffsschicht verwendet werden (um auch noch DB-Unabhängig zu werden).

Zusätzlich kannst Du (wenn dein 3-Schichten-Modell darauf abziehlt die DB-Zugriffsschicht auf einen gesonderten Rechner (Server) zu legen) Techniken wie SOAP/Web Services, DCOM/COM+ oder ähnliches verwenden.

Tonic1024 27. Mai 2004 08:32

Re: 3-Schichtenmodell
 
Hi...

Ich muss mschaefer recht geben. Ein bissel mehr infos wären schon net schlecht. Oft macht ein 3-Schichtenmodell (Ich gehe mals davon aus, dass du Datenbankzugriffsschicht, Datenverarbeitungschicht, und Anwendungsschicht meinst) auch garkeinen sinn, weil sie doch ein wenig aufwendig ist und einer gewissen Planung bedarf. besonders wenn du bidirektional arbeiten willst/musst.

Häufig wird die Zugriffsschicht in eine DLL ausgelagert, damit man sie je nach DBMS austauschen kann und die Applikation unabhängig bleibt. Diese Datei kann auch wie schon gesagt wurde komplett auf einem Server liegen, dann müssen noch andere Paramete berücksichtigt werden. - Hab ich persönlich noch nicht gemacht (UDF's zählen nicht, oder?!?)

Die Datenverarbeitungsschicht wird dafür benutzt die Daten, die von der Zugriffsschicht kommen so aufzubereiten, dass sie für den Benutzer einen Sinn geben (Brutto/Netto - Einzel-/Endpreis Berechnungen etc). Die letzte Schicht stellt das Userinterface dar, dass wenn sich der User einmal daran gewöhnt hat beibehalten werden kann, auch wenn sich alles andere ändert.

Ich persönlich neige dazu (zumindest bei kleineren Projekten) zumindest diese Beiden Schichten zusammenzufassen. Es ist nämlich ein nicht zu Unterschätzender Mehraufwand sich eine Schnittstelle auszudenken, die genau auf eine Schicht passt, die auch erst ersonnen werden will... 8)

Ich hoffe ich habe dein Problem überhaup richtig verstanden :lol:

ein paar links:
klick(pdf)
noch'n PDF
sehr Umfangreiches PDF

Bye

Tonic

mschaefer 27. Mai 2004 08:49

Re: 3-Schichtenmodell
 
Moin, moin,


Es hört sich etwas so an als wolltest Du mal versuchen mit der abstrakten Darstellung aus einem allgemeinen Datenbankbuch direkt mit Datenbanken zu arbeitet. Das Ebenenkonzepte nur so ungefähr existieren und oft verschwimmen das ist leider Realität.

Du kannst aber durchaus probieren mit einfachen Datenbanken direkten Zugriff aufzubauen um die Funktionsweise besser Kennenzulenren. So ganz einfach ist dies auch nicht, aber Du kannst einen Blick auf folgende Routinen werfen, die direkten Zugriff auf DBase Dateien liefern.


http://delphi.icm.edu.pl/ftp/d30free/dbf.zip

Grüße // Martin

woki 27. Mai 2004 09:34

Re: 3-Schichtenmodell
 
Hi,

das, was du an Infos gibst ist wirklich sehr knapp. Im Zusammenhang mit Delphi und diesem Thema solltest Du dir mal Das TClientdataset und COM+ anschauen und vielleicht auch nach dem Stichwort 'Microsoft Transaction Server' suchen, auch wenn der jetzt unter COM+ mitläuft.

Bei der Suche könnten auch die Begriffe 'Three Tier' und 'Multi Tier' hilfreich sein.

Grüsse
Woki

day 27. Mai 2004 20:53

Re: 3-Schichtenmodell
 
danke für eure informationen.

Es ist eben schwierig das ganze zu erklären, da ich selber noch nicht genau weiss in welche richtung es gehen soll. Ich versuche eine Schnittstelle zu erstellen, die eine Datenbank (MSSql) abstrahiert. Über diese schnittstelle soll es möglich sein daten zu lesen und zu schreiben. Ich werde mal eure vorschläge durchsehen und mal schauen was sich daraus ergibt. Auch für weitere Anregungen bin ich immer offen :) .

gruss

raeschnix 29. Mai 2004 12:35

Re: 3-Schichtenmodell
 
Hi!

für mich hört sich das ein wenig nach dem Prinzip wie es in der Web-Entwicklung eingesetzt wird. Es ist angelehnt an die 3 Tier Architektur und man könnte es grob ungefähr so beschreiben:

"Präsentation" - Schicht -> Hier wird nur das Ergebnis angezeigt. Also Front-End
"Applikation-logic" - Schicht -> Hier steckt die Logic des Programms. Also Back-End
"Datenbank" - Schicht -> Hier wird der Zugriff auf die Daten geregelt.

Dabei ist zu beachten, das eine Trennung der Schichten(In Deinem Fall der Units) sauber von statten geht, also mit Übergabe Funktionen oder Prozeduren arbeiten. Die Präsentationsschicht kennt dann keine Datenbank-Steuerelemente und ist somit modular aufgebaut. In Delphi könnte man zum Beispiel den Datenbank Zugriff in der Datenbank-Schicht von z.B ADO auf BDE umstellen ohne die anderen Units modifizieren zu müssen. Du musst halt das Prinzip ein bissl abstrahieren, aber ich denk so in etwa könnte es sein was Du Dir vorstellst oder ?

Gruss
raeschnix

day 2. Jun 2004 22:19

Re: 3-Schichtenmodell
 
Hallo

Besser hätte ich es mit den drei schichten nicht vormulieren können. Momentan bin ich eben daran die unterste schicht am designen (definition der schnittstellen). Ist aber eben gar nicht so einfach.


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:50 Uhr.

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