You are on page 1of 12

Architektura i integracja

aplikacji biznesowych
Ćwiczenia 1

mgr Grzegorz Oszuścik


Architektura warstwowa wikipedia

• Architektura wielowarstwowa (ang. multi-tier architecture lub n-tier


architecture) – architektura komputerowa typu klient-serwer,
polegająca na rozdzieleniu interfejsu użytkownika, przetwarzania i
składowania danych na kilka osobnych warstw, które mogą być
oddzielnie rozwijane i aktualizowane, co ułatwia ich utrzymanie i nie
wpływa negatywnie na funkcjonowanie pozostałych warstw.
Architektura jednowarstwowa
• Całe oprogramowanie zamknięte jest w jednej warstwie - proste
aplikacje
• Przykłady:
• Kalkulator,
• Proste gry
Architektura dwuwarstwowa
• Oprogramowanie podzielone jest na dwie warstwy - przykładem
architektury dwuwarstwowej jest klient-serwer. Oprogramowanie
klienta to jedna warstwa a serwera druga.
• Przykłady:
• Internet,
• Sieciowy program fakturujący,
Architektura trójwarstwowa
• O architekturę 3-warstwową opiera się aktualnie wiele aplikacji
biznesowych.
• Warstwy:
• Warstwa prezentacji (ang. presentation tier) - odpowiedzialna za interakcję z
użytkownikiem końcowym (wyświetlanie i wprowadzanie danych). W tej warstwie
działają aplikacje klienckie takie jak np. przeglądarki internetowe Sieciowy program
fakturujący,
• Warstwa biznesowa (ang. business tier) - odpowiedzialna za przetwarzanie danych
(żądań) od użytkownika. Tutaj też przygotowywane są dane wysłane do warstwy
prezentacji (aplikacji klienckich). W tej warstwie realizowane są wszelkiego rodzaju
funkcjonalności biznesowe. Z drugiej strony logika warstwy odpowiedzialna jest za
komunikację z warstwą danych. Warstwa biznesowa stanowi swego rodzaju pomost
pomiędzy warstwą aplikacji i warstwą danych dodając elementy przetwarzania.
• Warstwa danych (ang. persistance tier) - odpowiedzialna za przechowywane danych.
W tej warstwie mamy np. bazę danych.
Architektura trójwarstwowa

• Architektura 3-warstwowa to architektura aktualnie najbardziej


popularna w rozwiązaniach dla aplikacji biznesowych. Systemy
informatyczne mogą być jednak zbudowane z różnej liczby warstw.
Realizujących wymagane specyficzne funkcjonalności.
Architektura wielowarstwowa
• W ramach aplikacji biznesowej można dokonać abstrakcyjnego
podziału modelu 3-warstwowego, np. w warstwie biznesowej
wyróżnić warstwę dostępu do danych (encje + DAO - ang. Data
Access Object) oraz warstwę usługową, w której to zlokalizowana
zostanie logika biznesowa aplikacji.Architeketury
• 4-warstwowe oparte na podejściu podejściu "A Four-Tier Engagement
Platform",
• Model ISO OSI RM (ang. ISO Open Systems Interconnection Reference
Model), gdzie występuje 7 warstw.
Wstęp – architektura wielowarstwowa
Warstwa prezentacji

Warstwa biznesowa

Warstwa integracji

Baza danych
Zalety architektury warstwowej
• modyfikowalność - separacja danego typu funkcjonalności w ramach
pojedynczej warstwy, a zmiany w jednej warstwie nie wymuszają
zmian w pozostałych (przy zachowaniu niezmienności interfejsów
modyfikowanej warstwy)
• prostota wykorzystania warstwy - komunikacja pomiędzy warstwami
odbywa się przez wyznaczone i dobrze zdefiniowane punkty styku
(interfejsy) - sama implementacja mechanizmów warstwy jest ukryta,
co też wpływa ogranicza możliwość popełnienia błędów (np. poprzez
wywoływanie niedozwolonych - wewnętrznych - funkcjonalności)
Zalety architektury warstwowej
• spójność i przejrzystość - każda z warstw realizuje konkretne (spójne
logicznie) funkcje i komunikuje się tylko i wyłącznie z warstwami
znajdującymi się bezpośrednio nad i pod nią
• wielokrotne wykorzystanie - konkretne warstwy można bezpośrednio
wykorzystywać w wielu aplikacjach (np. ta sama warstwa biznesowa i
dwie różne warstwy prezentacji jedna na potrzeby przeglądarki
internetowej a druga aplikacji mobilnej).
Zalety architektury warstwowej
• dodatkowe warstwy mogą wpływać na wydajność aplikacji
(dodatkowe operacje związane z odebraniem danych z poprzedniej
warstwy i przygotowaniem danych do przekazania do kolejnej
warstwy, dodatkowe transakcje i synchronizacja).
• dodatkowe komplikacje projektowy wymuszające stosowanie
pewnych zasad
Zasady projektowania architektury
warstwowej
• Wyznaczenie z góry jakie warstwy i ile warstw powinno mieć dane
rozwiązanie
• Spójność pod względem funkcjonalnym w ramach poszczególnych
warstw - warstwa powinna dostarczać spójnej funkcjonalności
• Hermetyzacja funkcjonalności w ramach poszczególnych warstw -
dostęp do funkcjonalności warstwy realizowany jest tylko przez
wystawione przez warstwę punkty styku (interfejsy)
• Minimalizować punkty styku pomiędzy warstwami - przy czym należy
tutaj pamiętać, aby warstwa nie stała się wąskim gardłem.

You might also like