Title: Systemy rozproszone
1Systemy rozproszone
Uniwersytet Lódzki Katedra Informatyki
W. Bartkiewicz
- Wyklad 2. Wprowadzenie do architektur systemów
rozproszonych
2Systemy jednostanowiskowe
3Centralne zarzadzanie zasobami
- Wspóldzielenie zasobów
- Integracja zasobów
- Redukcja nadmiarowosci zasobów
- Integralnosc zasobów
4Architektura monolityczna(mainframe)
- Skupienie przetwarzania na wylacznie na jednym
komputerze - Ograniczenia w skalowalnosci aplikacji
- Ograniczenie do znakowego interfejsu uzytkownika
5Architektura oparta na serwerze plików
- Aplikacje na PC wspóldziela dane za posrednictwem
serwera plików - Duzy ruch w sieci
- Koniecznosc synchronizacji dostepu
- Ograniczenie do ok. 12 uzytkowników
- Desktopowa obsluga zbiorów danych
6Architektura klient-serwer
- Centralne zarzadzanie danymi
- Niezaleznosc danych i aplikacji
- Zmniejszenie ruchu sieciowego transport
wylacznie odpowiedzi na zapytania, a nie calych
plików
7Architektura dwuwarstwowa(gruby klient)
- Interfejs uzytkownika (zarzadzanie dialogiem i
prezentacja wyników) - Zarzadzanie danymi
- Logika aplikacji (przetwarzanie danych,
wykonywanie obliczen, itp.)
Interfejs uzytkownika Logika aplikacji
8Architektura dwuwarstwowa(gruby klient)
- Skalowalnosc do okolo 100 uzytkowników
- Dalsze zmniejszenie ruchu sieciowego
- Wieksze obciazenie serwera
Interfejs uzytkownika Logika aplikacji
9Architektura dwuwarstwowa(cienki klient)
- Aplikacje klienckie sa ladowane z serwera
- Nie ma potrzeby ich dystrybucji
- Nie ma potrzeby ich instalacji
- Nie ma potrzeby wersjonowania dla róznych
systemów operacyjnych
Interfejs uzytkownika (webowy)
10Architektura dwuwarstwowa(cienki klient)
- Zwiekszone obciazenie serwera
- Brak zarzadzania stanem
- Architektura dobrze dostosowana do lekkich
aplikacji dla duzej liczby klientów w sieci
rozleglej
Interfejs uzytkownika (webowy)
11Architektura dwuwarstwowa(klient wzbogacony)
- Cienki klient - formularze HTML
- Skrypty strony klienta (JavaScript, VBScript)
- Obiekty (komponenty), np.. kontrolki Active-X
- Aplety Javy
- Kontrolki webowe .NET (renderowane jako
HTMLskrypty)
Interfejs uzytkownika (webowy)
12Architektura dwuwarstwowa(oprogramowanie serwera)
- Skrypty CGI
- Skrypty serwerowe (PHP, ASP, JSP, ASP.NET)
- Obiekty serwerowe (serwelety Javy, komponenty
.NET) - Rozszerzenia serwera (np. filtry ISAPI)
Interfejs uzytkownika (webowy)
13Skrypty CGI
- Aplikacje natywne dla systemu operacyjnego
serwera HTTP lub skryptowe wykonywane przez
interpreter dzialajacy poza serwerem HTTP (czyli
jako skrypt CGI) - Uruchamiane przez serwer HTTP jako nowe procesy
- Serwer HTTP przekazuje dane od klienta na wejscie
standardowe aplikacji CGI lub poprzez zmienne
srodowiskowe - Problemy efektywnosciowe - uruchamianie i
konczenie procesów wymaga zarzadzania wieloma
zasobami systemowymi maszyny serwera - Problemy z bezpieczenstwem aby serwer mógl
uruchomic skrypt CGI uzytkownika zdalny musi miec
uprawnienia do wykonywania programów w folderze
skryptu
14Skrypty serwerowe (PHP, JSP, ASP, ASP.NET)
- Skrypty interpretowane poprzez interpreter
dzialajacy zwykle w trybie rozszerzenia serwera - Wymagaja mniejszej ilosci zasobów systemowych
wykonuja sie w kontekscie serwera - Po pierwszym wykonaniu zazwyczaj kompilowane do
kodu posredniego - Uzytkownik uruchamiajacy skrypt nie musi miec
nadanych uprawnien do wykonywania programów w
niektórych serwerach HTTP do uruchamiania
skryptów - Umieszczane jako wstawki miedzy elementami HTML
lub jako odrebne moduly programowe (Code Behind
Page)
15Obiekty (komponenty) serwerowe
- Kompilowane do kodu posredniego komponenty
osadzane w srodowisku serwera (i srodowisku
komponentowym) - Serwelety Javy i komponenty .NET
- Tworzone jako odrebne aplikacje lub kompilowane
ze skryptów serwerowych (JSP serwelety, ASP.NET
komponenty .NET)
16Rozszerzenia serwera HTTP
- Moduly kodu natywnego dla maszyny na której
dziala serwer HTTP, uruchamiane w kontekscie jego
dzialania - Dostarczane w postaci bibliotek dynamicznych lub
komponentów natywnych, które proces serwera
potrafi uruchomic (a wiec o pewnej standardowej
strukturze) - Typowe przyklady interpretery skryptów
serwerowych, filtry ISAPI komponenty COM
rozszerzajace funkcjonalnosc serwera IIS
17Grube klienty
- Odciazenie serwera (rozproszenie przetwarzania),
- Zwiekszenie ruchu sieciowego (przesylanie calych
wyników zapytan) - Dla róznych interfejsów uzytkownika (np. webowy i
aplikacyjny) niezbedne jest zbudowanie w zasadzie
dwu róznych aplikacji
Klienty
Serwer DBMS
Inne aplikacje
18Cienkie klienty
- Zmniejszenie ruchu sieciowe-go (przesylanie
wylacznie wyników przetwarzania) - Zwiekszanie obciazenia serwera, z którego
korzystac moga równiez inne aplikacje - Zmiana interfejsu uzytkownika wymaga jedynie
zbudowania nowego klienta
Klienty
Serwer DBMS
Inne aplikacje
19Architektura trójwarstwowa
Klienty
- Logika aplikacji umieszczona jest w warstwie
posredniej miedzy serwerem danych i klientem
(serwer aplikacji) - Umozliwia to korzystanie z zalet cienkiego
klienta bez koniecznosci obciazania serwera bazy
danych
Serwer aplikacji
Serwer DBMS
Inne aplikacje
20Architektura trójwarstwowa z warstwa posrednia na
serwerze HTTP
- Struktura warstwy posredniej
- uslugi fasady wiazace warstwe posrednia z
interfejsem uzytkownika) - glówne uslugi logiki aplikacji (np. kod
przetwarzajacy zamówienia, dane klientów, itp.) - uslugi dostepu do danych (zarzadzajace
przesylaniem zapytan do serwera SQL i pobieraniem
ich wyników)
21Architektura trójwarstwowa z warstwa posrednia na
serwerze HTTP
- Metody dostepu do danych
- natywne biblioteki zwiazane z konkretnym jezykiem
programowania - ODBC
- ADO
- ADO.NET
- JDBC
22Problem stanu aplikacji webowej
- W architekturze dwuwarstwowej serwer DBMS jest
serwerem polaczeniowym - Serwer HTTP jest serwerem bezpolaczeniowym
- w tradycyjnych prostych aplikacjach webowych
informacja o stanie jest zbedna - w bardziej zlozonych aplikacjach trójwarstwowych
informacja o stanie jest czesto podstawowa
23Problem stanu aplikacji webowej
- Przechowywanie stanu
- w warstwie srodkowej (plikach na serwerze HTTP)
- w warstwie bazy danych
- Przesylanie stanu do warstwy klienta
- zetony cookies
- ukryte zmienne formularzy
24Serwisy webowe
- Standardowe aplikacje webowe komunikuja sie z
klientem poprzez komunikaty HTML (np. generuja i
przesylaja do klienta strony HTML) - Komunikaty HTML moga byc odbierane równiez przez
klienty aplikacyjne wymaga to jednak analizy
przeslanej strony i wydlubania danych - Web serwisy rodzaj komponentów serwerowych
komunikujacych sie z klientem aplikacyjnym
poprzez komunikaty SOAP
25Serwisy webowe
- SOAP (Simple Object Access Protocol) oparty na
XML-u sposób kodowania wywolan zdalnych
podprogramów - SOAP umozliwia realizacje RPC (Remote Procedure
Call) - klient wywoluje funkcje
- jej nazwa parametry wywolania kodowane sa w
formacie SOAP i przesylane do serwera HTTP - serwer uruchamia komponent (web serwis), który
wykonuje zakodowana funkcje. Wynik jej dzialania
w formacie SOAP przesylany jest do klienta
26Rozproszone architektury Enterprise
- Komponenty i obiekty rozproszone. Standardowe
formaty - CORBA
- COM/DCOM
- Java Beans
- .NET
- Serwisy webowe
- Koordynator transakcji rozproszonych (np. MTS)
- Uslugi kolejkowania komunikatów (np. MSMQ)
27Rozproszone architektury Enterprise
- Najbardziej znane srodowiska typu Enterprise
- CORBA
- Enterprise Java Beans
- COM/DNA
- .NET
- Web Sphere