inżynieria oprogramowani11 SNGE46HE6BFAQEDVX7W45WDYC6T7LJBNGFZKRAQ


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ą

ż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



Wyszukiwarka

Podobne podstrony:
Inzynieria oprogramowania w ujeciu obiektowym UML wzorce projektowe i Java iowuje
ZadanieNaZaliczenie, WAT, semestr IV, Inżynieria oprogramowania
Rafał Polak 12k2 lab8, Inżynieria Oprogramowania - Informatyka, Semestr III, Systemy Operacyjne, Spr
zagadnienia egzaminacyjne z przedmiotu inżynieria oprogramowania zIO
Inżynieria oprogramowania Diagramy ERD
2006 06 Wstęp do Scrum [Inzynieria Oprogramowania]
sciąga moja, Informatyka SGGW, Semestr 4, Inżynieria oprogramowania, Od starszego rocznika
Tworzenie oprogramowania, Semestr 5, Inżynieria oprogramowania
2007 05 Mechanizm koncepcji w języku C nowe oblicze szablonów [Inzynieria Oprogramowania]
Inżynieria oprogramowania syllabus IV niestac 07 08, Prywatne, WAT, SEMESTR IV, IO, io, Materiały od
Rafał Polak 12k2 lab9, Inżynieria Oprogramowania - Informatyka, Semestr III, Systemy Operacyjne, Spr
inżynieria oprogramowani5s 3D2LFW6JYNMO6D276CSZQV5ONUNVXOTKWFXHA3A
inżynieria oprogramowani1 2EM7Y2ON72DKTCAQF3UOSCLXHY5636FZE7C7PUQ
inżynieria oprogramowani5 G46UQE27RE6UDINZWBW2TXNEOUUYOYV2MMVZ2NI
2008 06 Java Microedition – metody integracji aplikacji [Inzynieria Oprogramowania]
Inżynieria oprogramowania II
Opracowanie na Inżynierie Oprogramowania
Przykład diagramu sekwencji, Inżynieria oprogramowania
Inżynieria oprogramowania, Studia, Informatyka, Informatyka, Informatyka

więcej podobnych podstron