Table of Contents
Szoftverarchitektúrák alapjai
A szoftverarchitektúra a szoftverrendszer magas szintű szerkezetére utal, amely meghatározza, hogyan kommunikálnak az egyes komponensek és modulok egymással. Az architektúra célja a rendszerek karbantarthatóságának, újrafelhasználhatóságának és méretezhetőségének biztosítása.
Rétegekre bontás (Layered Architecture)
- Definíció: A rétegelt architektúra a szoftver különböző funkcióit különálló rétegekbe szervezi. Minden réteg csak a közvetlen alatta lévő réteggel kommunikál, ami jól szervezett és karbantartható rendszert eredményez.
Példák a rétegekre
- Prezentációs réteg: Ez a réteg felelős a felhasználói interfészért és az interakciók kezeléséért. Például egy webes alkalmazásban ez lenne a front-end rész (HTML, CSS, JavaScript).
- Üzleti logikai réteg: Ez a réteg tartalmazza a rendszer üzleti szabályait és funkcióit. Ez a réteg dolgozza fel a felhasználói kéréseket, és itt történik az adatfeldolgozás.
- Adathozzáférési réteg: Ez a réteg felelős az adatok mentéséért és lekérdezéséért az adatbázisból, így elválasztja az adathozzáférést az üzleti logikától.
Előnyök: Könnyű karbantartás, különálló fejlesztés a rétegek között, jól definiált interfészek és nagyobb újrafelhasználhatóság.
Kliens-szerver modell
Definíció: A kliens-szerver modell egy olyan struktúra, ahol a kliens eszközök küldik el a kéréseiket egy központi szervernek, amely feldolgozza a kéréseket és visszaküldi az eredményt.
Fő jellemzők:
- Kliens: Az a végpont, amely a felhasználói kéréseket továbbítja a szerver felé, például egy böngésző.
- Szerver: A központi entitás, amely a kérések feldolgozását végzi, például egy webes szerver, amely a kérések alapján adatokat szolgáltat vagy feldolgozást végez.
Példa: Webes alkalmazások, ahol a böngésző (kliens) elküldi a kéréseket a szervernek, amely HTML oldalakat vagy adatokat küld vissza.
Előnyök: A központosított szerver egyszerűsíti a karbantartást és biztonsági felügyeletet, a kliens és szerver komponensek különböző helyeken futtathatók.
Többrétegű architektúrák (n-tier Architecture)
Definíció: Az n-tier architektúra kiterjeszti a kliens-szerver modellt, több rétegre bontva a rendszert, így a kliens és szerver között további rétegek, például köztes szoftverek helyezhetők el.
Példa: 3 rétegű architektúra, ahol az alkalmazás három fő rétegre bomlik:
- Prezentációs réteg: A felhasználói interfészt és megjelenítést kezeli.
- Üzleti logikai réteg: A fő üzleti logikát és folyamatokat futtatja.
- Adatbázis réteg: Az adatok tárolásáért és kezeléséért felelős
Előnyök: A rétegek közötti feladatok elkülönítése növeli a skálázhatóságot és a biztonságot, mivel minden réteg csak a közvetlenül szomszédos rétegekkel kommunikál. Az egyes rétegek függetlenül fejleszthetők és tesztelhetők.
Mikroszervizek (Microservices Architecture)
Definíció: A mikroszervizek architektúra a rendszert kisebb, független szolgáltatásokra bontja, amelyek külön-külön fejleszthetők és futtathatók.
Fő jellemzők:
- Minden szolgáltatás egy adott feladatot lát el, és önállóan fejleszthető, tesztelhető és méretezhető.
- A szolgáltatások API-kon keresztül kommunikálnak egymással, tipikusan HTTP protokoll segítségével.
Példa: Egy nagyobb webes alkalmazás, ahol a felhasználókezelés, a rendeléskezelés és a számlázás külön-külön mikroszervizként működik.
Előnyök: Fokozott rugalmasság, könnyebb skálázás és az egyes komponensek független fejlesztése és karbantartása.