Inżynieria oprogramowania - 11 Slide 1
Architektury systemów
rozproszonych
Projektowanie architektoniczne
oprogramowania, które wykonuje
się na więcej niż jednym procesorze
Inżynieria oprogramowania - 11 Slide 2
Cele
. Wyjaśnienie zalet wad architektur systemów
rozproszonych
. Opis różnych podejść do opracowywania
systemów klient-serwer
. Wyjaśnienie różnic pomiędzy architekturą klient-
serwer a architekturą obiektów rozproszonych
Inżynieria oprogramowania - 11 Slide 3
Zawartość
. Architektury wieloprocesorowe
. Architektury klient-serwer
. Architektury obiektów rozproszonych
Inżynieria oprogramowania - 11 Slide 4
Systemy rozproszone
. Praktycznie wszystkie współczesne wielkie
systemy komputerowe są systemami
rozproszonymi
. Przetwarzanie informacji jest wykonywane na
kilku komputerach a nie na pojedynczej maszynie
. Inżynieria oprogramowania rozproszonego jest
obecnie bardzo ważna
Inżynieria oprogramowania - 11 Slide 5
Typy systemów
. Systemy osobiste które nie są rozproszone i są
przeznaczone do pracy na komputerze osobistym
lub stacji roboczej
. Systemy wbudowane które działają na jednym
procesorze lub zintegrowanej grupie procesorów
. Systemy rozproszone gdzie oprogramowanie
systemowe działa na luźno zintegrowanej grupie
współpracujących procesorów połączonych siecią
Inżynieria oprogramowania - 11 Slide 6
Charakterystyki systemu rozproszonego
. Współdzielenie zasobów
. Otwartość
. Współbieżność
. Skalowalność
. Odporność na awarie
. Przezroczystość
Inżynieria oprogramowania - 11 Slide 7
Wady systemów rozproszonych
. Złożoność
. Zabezpieczenie
. Zarządzanie
. Nieprzewidywalność
Zagadnienia projektowania systemów rozproszonych
Zagadnienie
projektowe
Opis
Identyfikacja
zasobów
Komunikacja
Jakość usług
Architektury
oprogramowania
Zasoby systemu rozproszonego są rozmieszczone na różnych komputerach,
należy więc opracować schemat nazewnictwa, aby użytkownicy mogli
znajdować i wykorzystywać potrzebne im zasoby. Przykładem takiego
schematu jest URL (Uniform Resource Locator - jednolity lokalizator
zasobów) służący do identyfikacji stron WWW. Jeśli nie zastosuje się
znaczącego i powszechnie rozumianego schematu, to wiele zasobów będzie
niedostępnych dla użytkowników systemu
Powszechna dostępność Sieci i efektywna implementacja jej protokołu
komunikacyjnego TCP/IP oznacza, że jest to najskuteczniejszy sposób
komunikacji komputerów w wypadku większości systemów rozproszonych.
Tam gdzie występują szczególne wymagania efektywnościowe,
niezawodnościowe itd., można skorzystać z innych mechanizmów
komunikacji
Jakość usług oferowanych przez system odzwierciedla jego efektywność,
dostępność i niezawodność. Mają na nią wpływ także inne czynniki, takie jak
przydział procesów do procesorów systemu, rozproszenie zasobów w ramach
systemu, sprzęt sieciowy i systemowy oraz zdolność systemu do adaptacji
W architekturze oprogramowania opisuje się, jak funkcjonalność programu
użytkowego rozproszono na kilku logicznych komponentach oraz jak te
komponenty rozproszono na procesorach. Wybór odpowiedniej architektury
programu użytkowego jest zasadniczym warunkiem osiągnięcia pożądanej
jakości usług
Inżynieria oprogramowania - 11 Slide 9
Architektury systemów rozproszonych
. Architektury klient-serwer
. Usługi rozproszone są wywoływane przez klientów. Serwery
dostarczające usługi są traktowane odmiennie niż klienci
korzystający z usług
. Architektury obiektów rozproszonych
. Nie istnieje rozróżnienie między klientami i serwerami. Każdy
obiekt w systemie może zarówno dostarczać jak i korzystać z
usług
Inżynieria oprogramowania - 11 Slide 10
Śródprogram (middleware)
. Oprogramowanie które zarządza i wspiera różne
komponenty systemu rozproszonego. W gruncie
rzeczy oprogramowanie to umiejscowione jest w
środku systemu
. Śródprogram to oprogramowanie które zwykle się
kupuje niż specjalnie pisze
. Przykłady
. Monitory transakcyjne
. Przetworniki danych
. Sterowniki komunikacyjne
Inżynieria oprogramowania - 11 Slide 11
Architektury wieloprocesorowe
. Najprostszy model systemu rozproszonego
. System składa się z wielu procesów które mogą
(lecz nie muszą) działać na oddzielnych
procesorach
. Model architektoniczny wielu dużych systemów
czasu rzeczywistego
. Przydział procesów do procesorów może być z
góry zadany lub może być pod kontrolą
dyspozytora
Inżynieria oprogramowania - 11 Slide 12
System wieloprocesorowy do kierowania
ruchem
Traffic lights
Light
control
process
Traffic light control
processor
Traffic flow
processor
Operator consoles
Traffic flow sensors
and cameras
Sensor
processor
Sensor
control
process
Display
process
Proces
sterujący
światłami
Proces
wyświetla-
jący
Proces
sterujący
detektorem
Procesory
detektorów
Procesory
natężenia ruchu
Procesory
sterujące
światłami
Konsole
operatorów
Detektory natężenia
ruchu i kamery
Światła
Inżynieria oprogramowania - 11 Slide 13
Architektury klient serwer
. Aplikacja jest modelowana jako zbiór usług
dostarczanych przez serwery i zbiór klientów
korzystających z tych usług
. Klienci znają serwery lecz serwery nie muszą
znać klientów
. Klienci i serwery są logicznymi procesami
. Odwzorowanie procesorów do procesów nie musi
być w stosunku jak 1:1
Inżynieria oprogramowania - 11 Slide 14
System klient - serwer
s2
k4
s1
s3
s4
k3
k2
k1
k5
k6
k7 k8
k9
k10
k11
k12
proces klienta
proces serwera
Inżynieria oprogramowania - 11 Slide 15
Komputery w sieci klient - serwer
komputer
klienta
komputer
serwera
KK1
KK2
KK3
SK1
KK6
KK5
KK4
SK2
k1 k2
k3, k4
s3, s4
k10, k11, k12
k8, k9
k5, k6, k7
s1, s2
Inżynieria oprogramowania - 11 Slide 16
Warstwowa architektura aplikacji
. Warstwa prezentacji
. Zajmuje się przedstawianiem informacji użytkownikowi
systemu i zbieraniem danych wejściowych użytkownika
. Warstwa przetwarzania
. Zajmuje się dostarczaniem specyficznej funkcjonalności, np. w
systemie bankowym - otwieranie i zamykanie rachunku (konta)
. Warstwa zarządzania danymi
. Zajmuje się zarządzaniem bazami danych systemu
Inżynieria oprogramowania - 11 Slide 17
Warstwy programu użytkowego
Warstwa zarządzania danymi
Warstwa przetwarzania
Warstwa prezentacji
Inżynieria oprogramowania - 11 Slide 18
Model klienta cienkiego i klienta
grubego
. Model klienta cienkiego
. W modelu klienta cienkiego, przetwarzanie i zarządzanie
danymi ma miejsce na serwerze. Jedynym zadaniem klienta jest
uruchomienie oprogramowania prezentacyjnego
. Model klienta grubego
. W modelu klienta grubego, serwer odpowiedzialny jest jedynie
za zarządzanie danymi. Oprogramowanie u klienta
implementuje logikę programu użytkowego i kontakt z
użytkownikiem systemu
Inżynieria oprogramowania - 11 Slide 19
Klient cienki i klient gruby
klient Zarządzanie danymi
Przetwarzanie
klient
Serwer
Zarządzanie danymi
Serwer
Prezentacja
Prezentacja
Przetwarzanie Model
klienta
grubego
Model
klienta
cienkiego
Inżynieria oprogramowania - 11 Slide 20
Model klienta cienkiego
. Używany w systemach odziedziczonych
ewoluujących w kierunku architektur klient-
serwer
. Interfejs użytkownika tych systemów jest przenoszony na
komputer osobisty, a program użytkowy działa jako serwer
. Podstawową wadą modelu klienta cienkiego jest
duże obciążenie przetwarzaniem zarówno sieci
jak i serwera
Inżynieria oprogramowania - 11 Slide 21
Model klienta grubego
. W modelu tym przekazuje się klientowi
przetwarzanie związane z logiką programu
użytkowego
. Bardziej odpowiedni dla nowych systemów typu
klient-serwer gdzie możliwości systemu klienta
znane są z wyprzedzeniem
. Bardziej złożony niż model klienta cienkiego,
szczególnie dla zarządzania. Nowe wersje
aplikacji muszą być zainstalowane na każdym
komputerze klienta
Inżynieria oprogramowania - 11 Slide 22
System klient - serwer do obsługi
bankomatów
Monitor
przetwarzania
zdalnego
Serwer kont
Baza danych
kont klientów Bankomat
Bankomat
Bankomat
Bankomat
Inżynieria oprogramowania - 11 Slide 23
Architektury trójwarstwowe
. W architekturach trójwarstwowych, każda z
warstw może być wykonywana na oddzielnym
procesorze
. Pozwala to na lepszą wydajność niż w modelu
klienta cienkiego i prostsze zarządzanie niż to ma
miejsce w modelu klienta grubego
. Architektura bardziej skalowalna - gdy wymaga
rozszerzenia to mogą być dodane dodatkowe
serwery
Inżynieria oprogramowania - 11 Slide 24
Architektura trójwarstwowa
klient - serwer
Prezentacja
klient Przetwarzanie
użytkowe
Serwer
Zarządzanie
danymi
Serwer
Inżynieria oprogramowania - 11 Slide 25
Internetowy system bankowy
Zapytanie
SQL
klient
Obsługa konta
Serwer WWW
Baza danych
kont klientów
Serwer bazy danych
SQL
klient
klient
klient
Komunikacja HTTP
Inżynieria oprogramowania - 11 Slide 26
Zastosowania architektur klient-serwer
Architektura Zastosowania
Architektura
dwuwarstwowa
klient-serwer z
klientami cienkimi
Architektura
dwuwarstwowa
klient-serwer z
klientami grubymi
Architektura
trójwarstwowa lub
wielowarstwowa
klient-serwer
Systemy odziedziczone, w których oddzielenie przetwarzania użytkowego od
zarządzania danymi jest niepraktyczne
Programy użytkowe wykonujące dużo obliczeń, ale w małym stopniu (albo
wcale) zarządzające danymi, np. kompilatory
Programy użytkowe dużo korzystające z danych (przeglądanie zapytywanie),
ale wykonujące mało (albo wcale) obliczeń użytkowych
Programu użytkowe w których obliczenia są wykonywane u klienta przez
COTS (komponenty z półki), np. Microsoft Excel
Programy użytkowe wymagające złożonego obliczeniowa przetwarzania
danych, np. przedstawiania graficznego danych
Programy użytkowe ze względnie stabilną funkcjonalnością oferowaną
użytkownikowi, stosowane w środowisku ze starannie ustalonym
zarządzaniem systemem
Ogromne programy użytkowe z setkami lub tysiącami użytkowników
Programy użytkowe, w których zarówno dane jak i programy są płynne
Programy użytkowe, w których integruje się dane z wielu źródeł
Inżynieria oprogramowania - 11 Slide 27
Architektury obiektów rozproszonych
. W architekturach obiektów rozproszonych nie istnieją
różnice pomiędzy klientami i serwerami
. Każda jednostka jest obiektem, który dostarcza usług
do innych obiektów i otrzymuje usługi od innych
obiektów
. Komunikacja pomiędzy obiektami odbywa się za
pośrednictwem śródprogramów zwanych
pośrednikami zleceń obiektowych (szyna
programowa)
. Większa złożoność przy projektowaniu niż systemu
klient-serwer
Inżynieria oprogramowania - 11 Slide 28
Architektura obiektów rozproszonych
Szyna programowa
o1
U(o1)
o2
U(o2)
o3
U(o3)
o4
U(o4)
o5
U(o5)
o6
U(o6)
Inżynieria oprogramowania - 11 Slide 29
Zalety architektury obiektów rozproszonych
. Umożliwia projektantowi systemu odłożenie decyzji,
gdzie i jak oferować usługi
. Jest architekturą bardzo otwartych systemów, która
umożliwia dodawanie nowych zasobów w miarę
potrzeby
. System jest elastyczny i skalowalny
. W miarę potrzeby można dynamicznie zmieniać
konfigurację systemu przez migrację obiektów w
sieci
Inżynieria oprogramowania - 11 Slide 30
Wykorzystanie architektury obiektów
rozproszonych
. Jako logiczny model który pomaga w ustaleniu
struktury i organizacji systemu. W tym przypadku
trzeba zastanowić się, jak zapewnić funkcjonalność
użytkową jedynie w kategoriach usług i ich kombinacji
. Jako elastyczne podejście do implementacji systemów
klient-serwer. Model logiczny systemu odpowiada
architekturze klient serwer lecz zarówno klienci jak i
serwery mają postać obiektów rozproszonych
komunikujących się za pośrednictwem szyny
programowej
Inżynieria oprogramowania - 11 Slide 31
System eksploracji danych
Baza danych 1
Baza danych 2
Baza danych 3
Generator
raportów
Prezenter
Wyświetlacz
Integrator 1
Integrator 2
Inżynieria oprogramowania - 11 Slide 32
System eksploracji danych
. Logiczny model systemu nie polega na
zapewnieniu usługi i zarządzanie danymi nie jest
w nim wydzielone
. Architektura umożliwia zwiększenie liczby
wykorzystywanych baz danych bez przerywania
pracy systemu
. Architektura umożliwia eksplorację nowych
rodzajów związków przez dodanie nowych
obiektów integratorów
Inżynieria oprogramowania - 11 Slide 33
CORBA
. CORBA jest międzynarodowym standardem dla
Pośredników Zleceń Obiektowych - śródprogramów
do zarządzania komunikacją pomiędzy obiektami
rozproszonymi
. Dostępnych jest kilka implementacji standardu
CORBA
. DCOM to alternatywne podejście do pośredników
zleceń obiektowych zaimplementowane w firmie
Microsoft
. CORBA został zdefiniowany przez OMG (Object
Management Group)
Inżynieria oprogramowania - 11 Slide 34
Struktura programu użytkowego
. Obiekty użytkowe
. Obiekty standardowe zdefiniowane przez OMG
na użytek specyficznej dziedziny, np.
zabezpieczenia
. Główne usługi CORBA takie jak katalogi i
zarządzanie zabezpieczeniami
. Poziome udogodnienia takie jak ułatwienia
interfejsu użytkownika
Inżynieria oprogramowania - 11 Slide 35
Struktura programu użytkowego
opartego na CORBA
Udogodnienia
poziome CORBA
Usługi CORBA
Pośrednik zleceń obiektowych
Udogodnienia
dziedzinowe
Obiekty
użytkowe
Inżynieria oprogramowania - 11 Slide 36
. Obecnie niemal wszystkie nowe wielkie systemy są
systemami rozproszonymi
. Systemy rozproszone wspierają współdzielenie
zasobów, otwartość, współbieżność, skalowalność,
odporność na awarie i przezroczystość
. Architektury klient-serwer są zbiorem usług
oferowanych procesom klientów przez serwery
. Oprogramowanie interfejsu użytkownika zawsze
działa u klienta, a zarządzanie danymi leży w gestii
serwera
Główne tezy
Inżynieria oprogramowania - 11 Slide 37
Główne tezy
. W architekturze obiektów rozproszonych nie ma
rozróżnienia na klientów i serwery
. Systemy obiektów rozproszonych potrzebują
śródprogramów do obsługi komunikacji obiektów
. CORBA jest zbiorem standardów dla
śródprogramów do obsługi architektur obiektów
rozproszonych