Co to jest architektura wielowarstwowa?
W informatyce „architektura wielowarstwowa” jest terminem stosowanym do zestawu komponentów lub oprogramowania, w którym różne funkcje wymagane do wykonania operacji są podzielone na osobne podziały fizyczne lub logiczne. Każdy z segmentów większej architektury odpowiada za wykonanie tylko określonego rodzaju zadania i jest w większości nieświadomy wewnętrznych działań otaczających segmentów wykonujących różne zadania. Najczęstszymi i najbardziej podstawowymi działami stosowanymi w architekturze wielowarstwowej są warstwy prezentacji, logiki i danych. Prezentacja jest odpowiedzialna tylko za pokazywanie informacji użytkownikowi, a warstwa danych jest odpowiedzialna tylko za przechowywanie lub pobieranie danych, podczas gdy warstwa logiczna łączy te dwa elementy, stosując logikę programu do danych wejściowych użytkownika z prezentacji i rozumiejąc informacje z warstwy danych . Duże systemy komputerowe wykorzystują architekturę wielowarstwową, ponieważ wyodrębnia ona różne punkty wykonania przepływu sterowania, umożliwiając ukierunkowanie różnych precyzyjnych komponentów do aktualizacji, testowania lub debugowania, pozostawiając pozostałe moduły nietknięte.
Architektura wielowarstwowa może być również określana jako architektura wielowarstwowa, chociaż istnieje różnica. W większości przypadków użycie terminu „architektura wielowarstwowa” oznacza, że osobne komponenty systemu znajdują się na fizycznie innym sprzęcie lub serwerach, podczas gdy system warstwowy może implementować tylko różne aplikacje działające w tej samej przestrzeni fizycznej. Jednak nie wszystkie systemy wielopoziomowe używają osobnego sprzętu; zamiast tego mogą rozdzielać funkcje tylko poprzez podziały logiczne, takie jak różne partycje na jednym dysku.
Większość architektury wielowarstwowej ma trzy odrębne warstwy, chociaż może być ich więcej, w zależności od potrzeb lub konfiguracji systemu. Pierwsza warstwa jest znana jako warstwa prezentacji i jest odpowiedzialna za wyświetlanie przekazywanych do niej informacji, a także zapewnia użytkownikom możliwość wprowadzania danych, najczęściej za pomocą graficznego interfejsu użytkownika (GUI). Warstwa prezentacji łączy się z warstwą logiczną, która jest obszarem, w którym ocenia się dane wejściowe użytkownika, dane są pobierane z warstwy danych i ma miejsce określone przetwarzanie lub obliczenia. Warstwa logiczna jest mniej więcej tym, co tradycyjnie uważa się za standardową aplikację komputerową, chociaż nie ma możliwości bezpośredniego wyświetlania danych wyjściowych i żadnego sposobu bezpośredniego otrzymania danych wejściowych od użytkownika.
Warstwa danych jest odpowiedzialna tylko za zapis i odczyt danych i może przybierać postać tablicy dysków lub systemu zarządzania relacyjnymi bazami danych (RDBMS). Chociaż warstwa danych jest odpowiedzialna za zarządzanie przechowywaniem i wyszukiwaniem danych w konfiguracji architektury wielowarstwowej, nie ma świadomości kontekstu danych i zajmuje się tylko rekordami lub funkcjami wejścia i wyjścia dysku. Cechą definiującą warstwy w architekturze wielowarstwowej jest to, że żaden segment nie wykracza poza granice zadań, które ma wykonywać, więc nie jest dostępna logika biznesowa ani funkcja danych w warstwie prezentacji, a warstwa logiki nie może zapisywać plików bezpośrednio ani bezpośrednio uzyskać dostęp do GUI, za pośrednictwem którego pracuje użytkownik. Wszystkie interakcje odbywają się za pośrednictwem komunikacji typu klient-serwer, przy czym każda warstwa służy w jakiś sposób zarówno jako klient, jak i serwer, w zależności od tego, jaka zachodzi interakcja.
Jednym z powodów, dla których duża sieć komputerowa może korzystać z systemu wielowarstwowego, jest to, że każdy niezbędny krok w przepływie pracy jest modułowy i może być obsługiwany niezależnie od innych części. Oznacza to, że terminale lub GUI, których używają użytkownicy, można zmieniać bez konieczności modyfikowania logiki lub warstw danych. Podobnie, RDBMS lub fizyczne dyski pamięci można zmienić bez wpływu na nic innego. Ta modułowość jest bardzo trudna, jeśli nie niemożliwa, do osiągnięcia z systemem jednowarstwowym, w którym wszystkie aspekty są spawane w jednej skompilowanej aplikacji.