Lagen

Maandag, 11 september 2000
Hoe werkt een drie lagen model? Wat hoort waar thuis? Die vragen kreeg ik de afgelopen week bij het begin van een nieuw project. Bij deze de antwoorden, een persoonlijke zienswijze:

De 3 lagen

1. De GUI laag

De GUI laag is de "bovenste laag". Hierin zitten alle zaken die de user kan zien, aan de 'buitenkant' van het systeem, zoals scherm-layout en navigatie. In de GUI laag zitten technieken als HTML, CSS, Applet, Servlet, JSP, JHTML.

2. De Objecten laag

Dit is het hart van het systeem, de verbindende schakel tussen de andere lagen. In de objecten laag zit kennis vast, op twee manieren:
  1. runtime waarden, zoals bijvoorbeeld de klantnaam "Oxford & Associates" of het factuur nummer "OOA2000w36".
  2. Structurele kennis, qua data en processing.
    Data voorbeeld
    Een klant kan meerdere fakturen ontvangen en een factuur gaat altijd maar naar één klant.
    Proces voorbeeld
    Weten wie wat doet. Elk object kent zijn eigen methodes en die van z'n buurobjecten. In een zuiver OO model praat een object met zijn buren en niemand dan zijn buren.
In de objectenlaag vind je zaken als Classes, objecten, instance variabelen, vectors, primitieven, methods, polymorfisme, encapsulation en inheritance. De Objecten hebben meestal een tijdelijk karakter. Ze "leven" slechts in het geheugen voor de duur van een transactie of sessie.

3. Database Laag

De database laag zorgt voor persistentie. Een object uit de objectenlaag kan zichzelf laten wegschrijven naar één of meerdere tabellen. In de database laag vind je zaken als database, connection, tabel, SQL, result set.

Voordelen

  • Bij een goede opzet spaart het 3 lagen model ontwikkelmankracht. Éénmalige coding van alle functionaliteit, met krachtig hergebruik.
  • Verdeel en heers strategie. Elke laag is op zich vrij makkelijk te ontwikkelen. Liever 3 eenvoudige delen dan 1 complex geheel.
  • Kwaliteit. Voor elke laag kan een specialist zijn expertise inbrengen, een GUI Designer voor de gebruikersinterface, een Java programmeur voor de objectenlaag, en een Database Designer voor de tabellen.
Tot de volgende week!
Henk Jan Nootenboom
Geboren op 9 sep 2000: Mats Joost Rutger Hage (home.planet.nl/~hage0000). Proficat aan m'n nicht Ester!