Microsoft PowerPoint - ZSW_10_niestac.ppt [tryb zgodno

Transkrypt

Microsoft PowerPoint - ZSW_10_niestac.ppt [tryb zgodno
Semantyczne komponenty WWW
Zarządzanie
systemami
webowymi
• WWW ma trzy główne semantyczne komponenty:
– Uniform Resource Identifiers (URI)
– Hypertext Markup Language (HTML)
– Hypertext Transfer Protocol (HTTP)
• URI – uniwersalny mechanizm do identyfikacji
zasobu w Webie
• HTML – język do tworzenia dokumentów
hipertekstowych
dr inż. Ziemowit Nowak
Uniform Resource Identifiers -1/2
• Definicja w dokumencie RFC 2396.
• Każde żądanie zasobu identyfikowanego przez URI, w
zależności od metody żądania (pobranie, zmiana,
usunięcie) oraz momentu, w którym następuje żądanie
może powodować zwrócenie innej odpowiedzi.
• URI jest nadzbiorem URL i URN:
– URL – Uniform Resource Locator – wskazuje lokalizację kopii
tego samego zasobu (RFC 1738).
– URN – Uniform Resource Name – reprezentuje jedynie nazwę
zasobu (RFC 1737).
• HTTP – protokół umożliwiający komunikację
między klientami i serwerami webowymi
Uniform Resource Identifiers – 2/2
• Składa się zwykle z trzech części:
– protokołu do komunikacji z serwerem,
– nazwy serwera,
– nazwy zasobu na tym serwerze,
• Jeżeli URI składa się z wszystkich części mówimy o
absolutnym (bezwzględnym) URI.
• Jeżeli URI składa się jedynie z
– drugiej części,
– trzeciej części,
– drugiej i trzeciej części,
mówimy o relatywnym (względnym) URI.
HyperText Markup Language
HyperText Transfer Protocol
• Wywodzi się z bardziej ogólnego standardu: Standard
Generalized Markup Language (SGML).
• Pozwala formatować tekst, osadzać w nim m.in. pliki
graficzne, wstawiać hipertekstowe odnośniki do innych
dokumentów.
• Prosty dokument HTML (bez specjalnego formatowania
odnośników do innych zasobów) jest niewiele większy niż jego
odpowiednik ASCII.
• Jest wiele narzędzi do tworzenia dokumentów HTML bez
znajomości składni języka.
• Dokumenty HTML są przeznaczone do interpretacji raczej
przez programy, np. przeglądarki internetowe, niż
bezpośrednio przez człowieka.
• Zdefiniowany w RFC1945 (wersja 1.0) i RFC 2616 (wersja 1.1).
• Definiuje format i znaczenie wiadomości wymienianych między
aplikacjami Weba, takimi jak klienty i serwery.
• Definiuje składnię i sposób interpretacji pól w poszczególnych liniach
wiadomości.
• Działa w ten sposób, że klient wysyła wiadomość zawierającą
żądanie, a następnie serwer zwraca wiadomość zawierającą
odpowiedź.
• Klient jest zwykle wyzwalany przez użytkownika poprzez kliknięcie
hipertekstowego odnośnika lub zatwierdzenie wpisanego URI w
oknie przeglądarki.
• HTTP jest protokołem bezstanowym, tzn. klient i serwer traktują
każdą wymianę wiadomości niezależnie i nie wymagają
utrzymywania żadnego stanu między żądaniami i
odpowiedziami.
1
Popularne terminy związane z
WWW/Webem
• WWW/Web – World Wide Web – wszelkie informacje
dostępne poprzez połączone w sieć komputery;
• hipertekst (hypertext) – tekst posiadający odnośniki do
innych dokumentów;
• Internet – ogólnoświatowa kolekcja połączonych ze sobą
sieci używających protokołu IP;
• strona WWW/webowa (Web page) – dokument dostępny
w Webie poprzez URI;
• serwis WWW/webowy (Web site) – kolekcja powiązanych
ze sobą dokumentów webowych;
• przeglądarka (browser) – aplikacja zdolna do żądania i
prezentowania zasobów Weba;
Terminy związane z programowymi
komponentami Weba
• agent użytkownika (user agent) – program kliencki
inicjujący żądanie, np. przeglądarka;
• klient webowy (Web client) – program wysyłający żądanie
HTTP do serwera webowego;
• serwer webowy (Web server) – program odbierający
żądanie HTTP od klienta webowego i wysyłający odpowiedź
• serwer źródłowy (origin server) – serwer, gdzie znajduje się
żądany zasób (tylko tam), lub gdzie jest tworzony zasób;
• pośrednik (intermediary) – komputer na ścieżce pomiędzy
agentem użytkownika a serwerem źródłowym;
• proxy/pośrednik (proxy) – pośredniczący program, który
funkcjonuje jako serwer względem klienta i jako klient
względem serwera;
Terminy związane z ruchem w sieci
i wydajnością Weba
• opóźnienie (latency) – czas między inicjacją żądania i
nadejściem początku odpowiedzi;
• opóźnienie postrzegane przez użytkownika
(user-perceived latency) – czas między akcją użytkownika i
rozpoczęciem wyświetlania zawartości odpowiedzi;
• szerokość pasma (bandwidth) – całość ruchu, która może
być przenoszona w jednostce czasu;
• obciążenie (workload) – wielkość danych wejściowych
otrzymanych przez komponent Weba w określonym czasie;
• log (log) – zapis danych o transakcji wykonanej przez
komponent Weba;
Terminy związane ze sposobem
dostępu do zawartości Weba
• zasób (resource) – obiekt (dane) lub serwis w sieci
identyfikowany przez URI;
• wiadomość (message) – podstawowa jednostka
komunikacji w HTTP;
• nadawca/odbiorca (sender/receiver) – komponent
odpowiedzialny za wysyłanie/odbieranie wiadomości;
• nagłówek (header) – sterująca część wiadomości;
• jednostka/encja (entity) – informacja przesyłana w
ciele (body) wiadomości;
• upstream/downstream – terminy pokazujące
kierunek przepływu wiadomości (od nadawcy do
odbiorcy/od odbiorcy do nadawcy);
Terminy związane z Internetem
(leżące u podstaw Weba)
• host – komputer lub urządzenie przyłączone do sieci;
• pakiet (packet) – podstawowa jednostka komunikacji w internecie;
• IP - Internet Protocol – protokół koordynujący przekazywanie
poszczególnych pakietów między hostami;
• adres IP (IP address) – 32-bitowy, numeryczny adres identyfikujący
hosta w Internecie;
• nazwa hosta (hostname) – nieczuły na wielkość liter ciąg znaków
identyfikujący hosta w Internecie;
• DNS (Domain Name System) – rozproszona infrastruktura
pozwalająca tłumaczyć nazwę hosta na adres IP i vice versa;
• TCP (Transmission Control Protocol) – protokół zapewniający
abstrakcję niezawodnego, dwukierunkowego połączenia;
• połączenie (connection) – logiczny kanał komunikacyjny między
dwoma hostami;
Terminy związane ze składowaniem
• składowanie/keszowanie (cache) –
magazynowanie wiadomości w celu zredukowania
opóźnienia postrzeganego przez użytkownika oraz
odciążenia sieci i serwera;
• spójność składowania/keszowania (cache
coherency) – własność kesza redukująca ilość
zwracanych wiadomości „dokument
przeterminowany”;
• replikacja (replication) – powielanie zasobów na
rozproszonych serwerach webowych;
• rozpraszanie treści (content distribution) –
dostarczanie zasobów w imieniu serwera źródłowego;
2
Zawartość WWW
Sposób działania Weba
• Pobieranie strony webowej pociąga za sobą oddzielne
transmisje HTTP dla każdego zasobu.
• Każda transmisja HTTP składa się z dwóch wiadomości:
• Web składa się z kolekcji zasobów lub obiektów
rozproszonych w całym Internecie.
• Każdy zasób jest dostępnym przez sieć dokumentem lub
serwisem, sformatowanym na różne sposoby, np. HTML,
PostSript, RealAudio.
• Zasób może być statycznym plikiem lub może być
generowany dynamicznie podczas żądania.
• Każda transmisja HTTP dotyczy pojedynczego zasobu
identyfikowanego przez URI w wiadomości zawierającej
żądanie.
• Strona webowa składa się najczęściej ze zbioru
zasobów, np. plik HTML może zawierać odnośniki do
osadzonych w nim zasobów, takich jak obrazy, animacje,
dźwięki.
– klient wysyła wiadomość zawierającą żądanie,
– serwer zwraca wiadomość zawierającą odpowiedź.
• Klient jest nadawcą wiadomości zawierającej żądanie i
odbiorcą wiadomości zawierającej odpowiedź.
• Serwer jest odbiorcą wiadomości zawierającej żądanie i
nadawcą wiadomości zawierającą odpowiedź.
• Wiadomość jest sekwencją bajtów zaczynającą się
opcjonalnym nagłówkiem, który zawiera informację sterującą.
• Nagłówki HTTP są w formacie ASCII.
• Oprócz nagłówków wiadomość zawiera ciało reprezentujące
zasób.
Programowe komponenty weba
]
Co mówią?
• Klienty webowe (Web clients)
– Zawsze zaczynamy!
• Serwery webowe (Web servers)
– Wciąż czekamy!
• Pośredniki webowe (Web proxies)
Klienty webowe
• Przeglądarki (browsers)
• Roboty (robots)
• Inteligentne agenty (intelligent
agents) i przeglądarki do specjalnych
celów (special-purpose browsers).
– Jak się doczekamy, to zaczynamy!
Jak działa klient?
Kroki na drodze klient-serwer
• formułuje żądanie HTTP,
• wysyła żądanie do serwera,
• odbiera odpowiedź,
• dokonuje parsingu odpowiedzi,
• wyświetla odpowiedź lub formułuje
kolejne żądanie HTTP
3
Cechy przeglądarki
Transmisje audio „przez”
przeglądarkę
• Aby formułować i wysłać żądania, musi
umieć analizować URL w celu
stwierdzenia, czy i z jakim serwerem ma
się połączyć.
• Może korzystać z własnej pamięci
podręcznej (cache)
• Musi radzić sobie z protokołami których
standardowo nie obsługuje.
Dynamika po stronie klienta
• Przeglądarka powinna umożliwiać
prezentowanie dynamicznych elementów
stron webowych:
– Java applets
– Javascript
– Ajax
– ActiveX controls
– Visual Basic Script
– Jscript
– inne
Wymiana „cookie” między
klientem a serwerem
Wspieranie transakcji
• Mechanizm „cookie”
• Problem prywatności „cookie”
• A jeśli nie ma „cookie” lub jest
wyłączone?...
Roboty
• Inne określania: Wędrowcy (Wanderers),
Pełzaki (Crawlers), Robaki (Worms),
Pająki (Spiders), Mrówki (Ants)
• Roboty są to programy używane do
uzyskiwania części lub całości zasobów z
jednego lub wielu serwisów webowych.
• Roboty są „narzędziami w rękach”
wyszukiwarek. Służą do budowania tzw.
„indeksów odwrotnych”
4
Problem etyki robotów
• plik robots.txt
UserUser-agent: *
Inteligentne agenty
• meta wyszukiwarki
• agenty aukcyjne
Disallow: /priv/
Disallow: /cgi/cgi-bin/
...
• nagłówek w kodzie HTML strony webowej:
<META NAME=”robots”
CONTENT=”noindex, nofollow”>
Serwery webowe
• Są to programy, które generują i wysyłają
odpowiedzi do klientów żądających zasobów
webowych.
• Obsługa żądań klienta jest procesem
wieloetapowym:
– parsing żądania (wiadomości HTTP pochodzącej od
klienta),
– sprawdzenie, czy żądanie jest autoryzowane (autoryzacja),
– asocjacja URL-a zawartego w żądaniu z nazwą
konkretnego pliku,
– konstrukcja odpowiedzi (wiadomości HTTP pochodzącej od
serwera)
– wysłanie odpowiedzi do klienta, który jej żądał,
Web site ≠ Web server
Przeglądarki do specjalnych celów
• co-browsers
• offline browsers
Generowanie odpowiedzi
• Serwer może generować odpowiedzi do
klienta na różne sposoby:
– serwer znajduje plik „pasujący” do URL-a i
zwraca jego zawartość klientowi,
– w celu skonstruowania odpowiedzi dla klienta
serwer wywołuje skrypt (program), który
komunikuje się z innym serwerem
(serwerami) lub bezpośrednio z bazą danych
(bazami danych).
Netcraft.com:
Witryny we wszystkich domenach
• Serwis webowy (Web site) składa się z
kolekcji stron webowych skojarzonych z
konkretną nazwą hosta,
• Serwer webowy (Web server) jest
programem, który obsługuje żądania
klienta o zasoby webowe.
5
Netcraft.com:
Rynek popularnych serwerów WWW
Sposoby kompletowania strony WWW
• Otrzymanie przez klienta kompletnej strony
webowej może być związane z użyciem kilku
serwerów webowych, skryptów i baz danych.
– http://www.host.com/page.html
– http://www.host.com/image.png
– http://images.host.com/image.png
– http://www.images.com/host/image.png
Kroki obsługi żądania klienta
1. Czytanie i parsing żądania (wiadomości HTTP)
2. Translacja URL do nazwy pliku
– http://www.host.com/page.html
– /htdocs/host/page.html
3. Autoryzacja żądania
– adres IP, domena klienta
– login, hasło
4. Generowanie odpowiedzi
– wiadomość o błędzie lub przekierowanie
– wiadomość OK wraz z nagłówkami sterującymi i
żądanym zasobem
Wiele serwisów WWW
na jednym komputerze
(wirtualne serwery webowe)
• HTTP 1.0: każdy serwis ma swoją aplikację
serwera webowego, która zużywa osobny
adres IP
• HTTP 1.1: każdy serwis wykorzystuje tą
samą aplikację serwera webowego
przypisaną do jednego adresu IP
Składowanie po stronie serwera
(serwer-side caching)
• dzielenie tej samej odpowiedzi
(wiadomości HTTP) miedzy żądania
klientów
• dzielenie „metadanych” pomiędzy żądania
klientów
– translacja URL na nazwę pliku
– informacje identyfikujące zasób (deskryptory
plików)
– nagłówki protokołu HTTP
• aktualny czas na serwerze
• rozwiązana nazwa klienta na IP
Pośredniki webowe (web proxy)
• Podział na wyższym poziomie
– pośredniki keszujące (caching proxies)
– pośredniki przezroczyste (transparent
proxies)
– pośredniki nieprzezroczyste (nontransparent proxies)
– rozróżnienie adresu serwera webowego
następuje na podstawie obowiązkowego
nagłówka Host: wprowadzonego w protokole
HTTP/1.1
6
Serwer proxy jako pośrednik
miedzy klientem a serwerem
Zastosowania proxy
współdzielenie (sharing) dostępu do Weba
buforowanie/keszowanie odpowiedzi
anonimizacja klientów
transformacja żądań i odpowiedzi (np.
kompresja)
• interfejs do systemów nie
wykorzystujących protokołu HTTP
• filtrowanie żądań i odpowiedzi
•
•
•
•
Pośrednik jako cache oraz brama
do serwera FTP i serwera poczty
Kroki na drodze
przeglądarka-pośrednik-serwer
Łańcuch pośredników w Webie
Protokół
HTTP
7
Umiejscowienie HTTP
w stosie protokołów
Struktura transakcji HTTP
<linia inicjacyjna - inna dla Ŝądania
i dla odpowiedzi>
Nagłówek_1: wartość_1
Nagłówek_2: wartość_2
Nagłówek_3: wartość_3
...
<opcjonalnie, PO JEDNEJ PUSTEJ LINII,
zaczyna się ciało wiadomości, np.
zawartość pliku lub dane Ŝądania;
ciało moŜe mieć dowolną długość i
zawierać dane binarne>
Linie inicjacyjne
Statusy odpowiedzi
• żądania (reqest)
GET /path/to/file/index.html HTTP/1.0
• odpowiedzi (response)
czasami nazywana linią statusu
HTTP/1.0 200 OK
lub
HTTP/1.0 404 Not Found
Linie nagłówkowe
Header1: some
some-longlong-valuevalue-1a, somesome-longlong-valuevalue-1b
HEADER1: somesome-longlong-valuevalue-1a,
somesome-longlong-valuevalue-1b
Przykłady:
• Klient
From: [email protected]
UserUser
-agent: Mozilla/8.0
• Serwer
Server: Apache/7.4b6Apache/7.4b6-dev
LastLast
-Modified: Fri, 31 Dec 2000 23:59:59 GMT
•
•
•
•
•
•
1xx – odpowiedź ma charakter informacyjny;
2xx – odpowiedź zakończyła się sukcesem;
3xx – przekierowanie klienta pod inny URL;
4xx – błąd po stronie klienta;
5xx – błąd po stronie serwera;
Przykłady:
200 OK
404 Not Found
301 Moved Permanently
302 Moved Temporarily
500 Server Error
Nagłówki ciała wiadomości
• ContentContent-Type:
– nagłówek specyfikuje typ danych, np.
text/html lub image/gif.
image/gif
• ContentContent-Length:
– nagłówek podaje długość ciała wiadomości w
bajtach
8
Przykład transakcji HTTP 1.0
• Klient: http://www.somehost.com/path/file.html
GET /path/file.html HTTP/1.0
From: [email protected]
UserUser-Agent: HTTPTool/1.0
[pusta linia]
• Serwer:
HTTP/1.0 200 OK
Date: Fri, 31 Dec 2010 23:59:59 GMT
ContentContent-Type: text/html
ContentContent-Length: 1354
[pusta linia]
<html>...
<html>...
</html>
Najważniejsze udoskonalenia
HTTP 1.1
Eksperymenty z HTTP
telnet www.somehost.com 80
GET /path/file.html HTTP/1.0
[tu moŜna wpisać nagłówki]
[pusta linia (2x Enter)]
HTTP Persistent connection
(trwałe połączenia)
• możliwość prowadzenia wielu transakcji podczas
jednego połączenia TCP:
persistent connection oraz pipelining;
• lepsza obsługa serwerów cache;
• możliwość przesyłania obiektów w częściach
zanim zostaną w całości wygenerowane
chunked encoding;
• obsługa wielu domen przypisanych do jednego
IP;
HTTP Pipelining
(potok)
Nowe cechy klienta
• dołączanie do każdego żądania nagłówka Host:;
• akceptowanie odpowiedzi, w której dane są
podzielone na części;
• domyślne wspieranie trwałych połączeń lub w
przeciwnym wypadku dołączanie nagłówka
Connection: close;
• możliwość generowania nagłówka Expect:
100-continue oraz obsługa odpowiedzi 100
Continue;
9
Wirtualne serwery,
czyli nagłówek Host:
Nowe cechy serwera
•
•
•
•
•
•
•
•
•
obsługa żądania z nagłówkiem Host:;
akceptowanie żądania z bezwzględnym (pełnym) URL;
możliwość generowania odpowiedzi we fragmentach;
domyślne wspieranie trwałych połączeń i obsługa
odpowiedzi z nagłówkiem Connection: close;
możliwość generowanie odpowiedzi 100 Continue;
dołączanie do każdej odpowiedzi nagłówka Date:;
obsługa żądań z nagłówkami If-Modified-Since: oraz
If-Unmodified-Since:;
obsługa żądań (przynajmniej) z metodami GET, HEAD,
POST;
obsługa żądań HTTP 1.0;
Klastrowe systemy
webowe
GET /path/file.html HTTP/1.1
Host: www.host1.com
[pusta linia]
GET /path/file.html HTTP/1.1
Host: www.host2.com
[pusta linia]
Architektura klastrowego
systemu webowego
serwer
WWW #1
żądanie
HTTP
stosowane
mechanizmy
LAN
INTERNET
klient
rozdzielacz
sieciowy
serwer
WWW #s
serwer
WWW #S
klastrowy system webowy
Mechanizmy przekierowywania
żądań
• W klastrowych systemach webowych mechanizm
zależy od warstwy stosu protokołowego
ISO/OSI, na której rozdzielacz sieciowy
przekierowuje pakiety przychodzące od klienta
do docelowego serwera WWW.
• Można wyróżnić dwa rodzaje rozdzielaczy
sieciowych:
– czwartej warstwy sieciowej,
– siódmej warstwy sieciowej.
Rozdzielacze sieciowe czwartej
warstwy sieciowej
• Przeprowadzają przekierowanie „ślepe”
na treść żądania użytkownika, ponieważ
rozdzielacz podejmuje decyzje o
przekierowaniu żądania w momencie
gdy klient prosi o nawiązanie połączenia
z serwisem poprzez wysłanie pakietu
TCP SYN.
10
Rozdzielacze sieciowe siódmej
warstwy sieciowej
• Mogą podejmować decyzje o
przekierowaniu żądania użytkownika na
podstawie nagłówka HTTP żądania.
• Klient nawiązuje połączenie TCP z
rozdzielaczem, rozdzielacz analizuje
żądanie HTTP w warstwie aplikacyjnej i
przekierowuje żądanie do wybranego
serwera.
Własności mechanizmów
przekierowywania żądań
• Mechanizm przekierowywania żądań siódmej
warstwy sieciowej jest znacznie mniej
wydajny od mechanizmu czwartej warstwy,
lecz pozwala na zastosowanie bardzie
wyszukanych algorytmów rozdziału żądań.
• Wybór mechanizmu przekierowania żądań ma
zasadniczy wpływ na wybór algorytmu
rozdziału żądań, ponieważ dostępne
informacje w obu rodzajach rozdzielaczy są
całkiem różne.
Architektury połączeń systemów
klastrowych
• We wszystkich rozwiązaniach pakiety
płynące od klienta muszą przejść przez
rozdzielacz sieciowy, natomiast serwer
WWW może wysłać pakiety z odpowiedzią
bezpośrednio do klienta.
• Ze względu na powyższą własność
wyróżnia się architektury:
– dwukierunkową,
– jednokierunkową,
Architektura dwukierunkowa
serwer
WWW #1
obiekt
LAN
INTERNET
klient
żądanie
HTTP
rozdzielacz
sieciowy
serwer
WWW #s
serwer
WWW #S
klastrowy system webowy
Architektura jednokierunkowa
serwer
WWW #1
obiekt
LAN
INTERNET
klient
żądanie
HTTP
rozdzielacz
sieciowy
serwer
WWW #s
serwer
WWW #S
Architektura
jednokierunkowa vs dwukierunkowa
• Zazwyczaj architektury jednokierunkowe są bardziej
złożone.
• Architektury jednokierunkowe umożliwiają uzyskanie
wyższej wydajności klastra, ponieważ przez rozdzielacz
sieciowy przechodzą jedynie pakiety przychodzące od
klienta.
• Architektury dwukierunkowe są łatwiejsze do
zaimplementowania.
• Rozdzielacz sieciowy dwukierunkowy może stać się
„wąskim gardłem” serwisu ze względu na fakt, że musi
przetwarzać pakiety zarówno przychodzące jak i
wychodzące.
klastrowy system webowy
11
Czwarta warstwa sieciowa – I
• Rozdzielacze sieciowe czwartej warstwy
sieciowej pracują na poziomie warstw TCP/IP.
• Na tym poziomie rozdzielacz sieciowy zarządza
całymi połączeniami TCP.
• Aby możliwe było prawidłowe przekierowywanie
pakietów pochodzących z tego samego
połączenia TCP do odpowiedniego serwera
WWW, rozdzielacz sieciowy (przełącznik
webowy) wykorzystuje tablice połączeń (ang.
binding table).
Czwarta warstwa sieciowa – II
• Gdy przychodzi pakiet TCP od klienta
do rozdzielacza, analizowany jest
nagłówek pakietu:
– jeśli pakiet należy do już istniejącego
połączenia to przesyłany jest do
odpowiedniego serwera WWW zgodnie z
tablicą połączeń,
– jeśli pakiet ma dopiero utworzyć
połączenie (jest pakietem typu SYN):
1) wybierany jest docelowy serwer WWW
(zgodnie z algorytmem rozdziału żądań),
2) dodawany jest zapis do tablicy połączeń,
3) pakiet przesyłany jest do serwera.
Czwarta warstwa sieciowa
Czwarta warstwa sieciowa – III
Architektura dwukierunkowa - I
•
• Zwykle, w każdym wierszu tablicy
połączeń zawarte są następujące
dane:
–
–
–
–
adres IP klienta,
port TCP klienta,
adres IP serwera WWW,
port TCP przełącznika webowego w
połączeniu z serwerem.
•
•
•
W architekturze tej wszystkie serwery w
klastrze posiadają własne adresy IP.
Stosuje się tu mechanizm dwukrotnego
przepisywania pakietów (ang. packet
double-rewriting).
Pakiety przychodzące od klienta jak i
wychodzące z serwisu przechodzą przez
przełącznik webowy i są w nim
przepisywane.
Technika ta znana jest również pod nazwą
NAT (ang. Network Address Translation).
Czwarta warstwa sieciowa
Czwarta warstwa sieciowa
Architektura dwukierunkowa - II
Architektura dwukierunkowa
Dwukrotne przepisywanie pakietów
serwer
WWW #1
– docelowy, własny adres VIP (ang. Virtual IP) na adres
serwera WWW,
– źródłowy adres klienta na adres VIP,
obiekt
LAN
INTERNET
klient
żądanie
HTTP
• W pakietach przychodzących od klienta przełącznik
webowy przepisuje:
rozdzielacz
sieciowy
serwer
WWW #s
serwer
WWW #S
• W pakietach przychodzących od serwera WWW
przełącznik webowy przepisuje:
– Docelowy, własny adres VIP na adres klienta,
– źródłowy adres serwera WWW na adres VIP,
• Wszystkie pakiety przychodzące i wychodzące mają
przeliczane sumy kontrolne pakietów w warstwie
trzeciej (IP) i czwartej (TCP).
klastrowy system webowy
12
Czwarta warstwa sieciowa
Czwarta warstwa sieciowa
Architektura jednokierunkowa - I
Architektura jednokierunkowa-II
serwer
WWW #1
• W architekturze tej:
– pakiety przychodzące przechodzą przez
przełącznik webowy,
– pakiety wychodzące kierowane są
bezpośrednio z serwera WWW do klienta.
• Technika ta umożliwia stosowanie
wysokoprzepustowej sieci dla pakietów
wychodzących.
obiekt
LAN
INTERNET
klient
serwer
WWW #s
rozdzielacz
sieciowy
żądanie
HTTP
serwer
WWW #S
klastrowy system webowy
Czwarta warstwa sieciowa
Czwarta warstwa sieciowa
Architektura jednokierunkowa-III
Architektura jednokierunkowa
Jednokrotne przepisywanie pakietów
•
Istnieją trzy mechanizmy umożliwiające
wykorzystanie architektury
jednokierunkowej:
– jednokrotne przepisywanie pakietów
(ang. packet single-rewriting);
– tunelowanie pakietów
(ang. packet tunneling);
– przesyłanie pakietów
(ang. packet forwarding);
• Przełącznik webowy:
– przepisuje w każdym pakiecie przychodzącym
docelowy adres IP z VIP serwisu na adres
docelowego serwera WWW (nie zmienia adresu
źródłowego),
– przesyła pakiet do serwera WWW.
• Serwer WWW:
– przepisuje w każdym pakiecie wychodzącym
źródłowy adres IP ze swojego na VIP serwisu
(nie zmienia adresu docelowego),
– wysyła pakiet z odpowiedzią bezpośrednio do
klienta.
Czwarta warstwa sieciowa
Czwarta warstwa sieciowa
Architektura jednokierunkowa
Architektura jednokierunkowa
Tunelowanie pakietów
Przesyłanie pakietów – I
• Przełącznik webowy:
– opakowuje pakiet IP otrzymany od klienta w
kolejny pakiet IP z adresem docelowym serwera
WWW,
– wysyła pakiet do serwera WWW.
• Serwer WWW:
– wyłuskuje pierwotny pakiet i wysyła go na swój
drugi interfejs sieciowy o adresie takim
samymadresie jak VIP,
– wysyła pakiet z odpowiedzią bezpośrednio do
klienta przez drugi interfejs sieciowy (bez
podmiany adresów).
• Architekturę tę można stosować pod
pewnymi warunkami:
– serwery oraz przełącznik webowy
znajdują się w jednej sieci LAN,
– wszystkie urządzenia mają przypisany
wirtualny adres IP serwisu (VIP),
– serwery mają wyłączony protokół ARP
(ang. Address Resolution Protocol).
13
Czwarta warstwa sieciowa
Czwarta warstwa sieciowa
Architektura jednokierunkowa
Architektura dwukierunkowa
Przesyłanie pakietów – II
Wady i zalety
• Przesyłanie pakietów odbywa się na poziomie
drugiej warstwy sieciowej:
– Przełącznik webowy przesyła otrzymany pakiet
do wybranego serwera WWW wykorzystując
adresację MAC (ang. Media Access Control)
[ignoruje zasady adresacji warstwy 3 i 4]
– Serwer wysyła pakiet z odpowiedzią
bezpośrednio do klienta wykorzystując adresację
warstwy 3 i 4 (nie musi dokonywać żadnych
zmian w adresach warstwy 3 i 4).
– przełącznik webowy może stać się
wąskim gardłem (musi przepisywać
również pakiety wychodzące, których
jest o wiele więcej niż pakietów
przychodzących),
+nie wymaga modyfikacji
oprogramowania serwerów.
Czwarta warstwa sieciowa
Architektura jednokierunkowa
Wady i zalety
– przepisywanie adresów przez serwery WWW:
– powoduje dodatkowe ich obciążenie,
– wymaga modyfikacji ich stosu protokołowego;
– tunelowanie pakietów wymaga, aby serwery
miały zaimplementowany mechanizm tunelowania
(nie jest to standardem w wielu systemach
operacyjnych)
– przesyłanie pakietów ograniczone jest do
zasięgu segmentu sieci lokalnej.
Siódma warstwa sieciowa
• rozdzielacze sieciowe siódmej warstwy
sieciowej pracują w warstwie aplikacji
• decyzja o przekierowaniu żądania
użytkownika może być podjęta w oparciu
o zawartość żądania
+ przełącznik webowy nie stanowi wąskiego gardła.
Siódma warstwa sieciowa
Siódma warstwa sieciowa
Przesyłanie pakietów
1. Klient:
–
–
nawiązuje połączenie TCP z przełącznikiem
webowym,
przesyła żądanie HTTP do przełącznika webowego,
na tle warstwy czwartej
przełącznik WWW
czwartej warstwy serwer
klient
WWW
sieciowej
–
–
w oparciu o żądanie klienta wybiera docelowy
serwer WWW,
nawiązuje połączenie TCP z serwerem WWW,
przesyła do serwera WWW żądanie HTTP.
przełącznik WWW
siódmej warstwy serwer
WWW
sieciowej
SYN
SYN
SYN
2. Przełącznik WWW:
–
klient
ACK, SYN
ACK, SYN
żądanie
HTTP
.
.
.
ACK, SYN
żądanie
HTTP
żądanie
HTTP
.
.
.
.
.
.
SYN
ACK, SYN
żądanie
HTTP
.
.
.
14
Siódma warstwa sieciowa
Siódma warstwa sieciowa
Architektura dwukierunkowa
Architektura jednokierunkowa
• oddanie połączenia TCP (ang. TCP handoff);
• brama TCP (ang. TCP gateway)
– przełącznik WWW działa jak inteligentny serwer
proxy;
– dane przychodzące i wychodzące z serwisu
przechodzą przez warstwę aplikacji przełącznika;
• splot TCP (ang. TCP splicing)
– dane przychodzące od klienta do serwisu
przechodzą przez warstwę aplikacji rozdzielacza i
trafiają przez drugie połączenie do serwera;
– pakiety z serwera do klienta przechodzą przez
warstwę czwartą przełącznika, gdzie są
przepisywane (zmieniany jest adres źródłowy i
docelowy pakietu),
– po nawiązaniu połączenia klienta z przełącznikiem i wybraniu
serwera WWW rozdzielacz przekazuje połączenie serwerowi;
– pakiety płynące od klienta przechodzą przez warstwę aplikacji
rozdzielacza i są wysyłane do serwera;
– pakiety z serwera dostarczane są bezpośrednio do klienta;
– rozwiązanie wymaga modyfikacji stosu protokołowego
zarówno rozdzielacza jak i serwerów WWW.
• przeskok połączenia TCP (ang. TCP connection
hop);
– gdy klient nawiąże połączenie z rozdzielaczem, połączenie to
jest przekazywane do serwera poprzez opakowywanie
pakietów IP w pakiety RPX (ang. Resonate Packet
eXchange),
– każdy serwer musi posiadać pozorny wirtualny adres serwisu.
Siódma warstwa sieciowa
Architektura dwukierunkowa
Wady i zalety
Sódma warstwa sieciowa
Architektura jednokierunkowa
Wady i zalety
– przełącznik webowy może stać się
wąskim gardłem (musi przepisywać
również pakiety wychodzące, których
jest o wiele więcej niż pakietów
przychodzących),
– ograniczenie do konkretnego rozwiązania
firmowego - patrz protokół RPX
+nie wymaga modyfikacji
oprogramowania serwerów.
+przełącznik webowy nie stanowi wąskiego
gardła.
Taksonomia mechanizmów
przekierowywania żądań w klastrach WWW
klastrowe
systemy
webowe
przełączniki WWW
czwartej warstwy
sieciowej
architektury
jednokierunkowe
architektury
dwukierunkowe
przełączniki WWW
siódmej warstwy
sieciowej
architektury
dwukierunkowe
architektury
jednokierunkowe
Algorytmy rozdziału
żądań
w klastrach serwerów
WWW
jednokrotne tunelowani przesyłanie dwukrotne brama splot oddanie przeskok
przepisywanie e pakietów pakietów przepisywanie TCP TCP połączeni połączeni
pakietów
a TCP
a TCP
pakietów
15
Cechy algorytmów rozdziału
żądań WWW
Cele rozdziału żądań
Mała złożoność obliczeniowa
•
– równoważenie obciążeń (ang.
load balancing) serwerów – taki
rozdział żądań, aby wszystkie były
jednakowo obciążone,
– dzielenie obciążenia (ang. load
sharing) – taki rozdział żądań, aby
żaden z serwerów nie był
przeciążony.
– ponieważ decyzje o przekierowaniu żądania muszą
być podjęte w czasie rzeczywistym, algorytm
powinien mieć znacznie krótszy czas podejmowania
decyzji od czasu obsługi żądania przez serwer.
Kompatybilność
•
– ze standardami panującymi w Internecie, a w
szczególności w usłudze WWW.
Lokalność informacji
•
– wszystkie informacje potrzebne do podjęcia decyzji o
przekierowniu żądania powinny być dostępne w
przełączniku lub w jednym z elementów klastra.
Taksonomia algorytmów
rozdziału żądań WWW
Alg. rozdziału
żądań
Czwarta warstwa sieciowa
Algorytmy statyczne
•
Random
–
algorytmy
przełączania
połączeń czwartej
warstwy sieciowej
algorytmy
przełączania
połączeń siódmej
warstwy sieciowej
•
Round-Robin (RR)
–
algorytmy
statyczne
algorytmy
dynamiczne
algorytmy
dynamiczne
–
algorytmy
posiadające
informacje o
kliencie
algorytmy
posiadające
informacje o
serwerze
algorytmy
posiadające
informacje o
kliencie i serwerze
algorytmy
posiadające
informacje o
kliencie
while (prawda)
pobierz następne żądanie r
n := (n+1) mod N
wyślij r do serwera o numerze n
tworzona jest lista serwerów oraz wskaźnik do
ostatnio wybranego serwera np. sn,
każde kolejne żądanie przydzielane jest następnemu
z listy serwerowi sn+1.
algorytmy
posiadające
informacje o
kliencie i serwerze
Czwarta warstwa sieciowa
Przykład algorytmu RR
• r - żądanie HTTP,
• n - numer wybranego,
• N - liczba serwerów w klasterze,
rozdziela żądania równomiernie na wszystkie
serwery z równym prawdopodobieństwem wyboru
każdego z serwerów.
Algorytmy statyczne – c.d.
•
Static
Weighted
(static WRR)
Round-Robin
– poszczególne serwery mają przypisane wagi
(wn) wyrażone w procentach, które określają
procent liczby żądań, które powinny być
przekierowane do poszczególnych serwerów.
16
Czwarta warstwa sieciowa
Przykład alg. static WRR
• Numer kolejnego serwera wybierany jest na
podstawie liczby q generowanej losowo:
while (prawda)
pobierz następne żądanie r;
repeat
losuj q;
n := (n+1) mod N
until ( q ≤ wn )
wyślij r do serwera o numerze n;
– klienty rozróżniane są na podstawie adresu IP oraz
portu TCP
– tym samym klientom przydzielane są te same
serwery WWW
– zalety:
• zakupy trafiaja do tego samego koszyka ☺,
• żądania klientów o pewnych adresach IP mogą być
kierowane do wybranych serwerów,
– wady:
• często zdarza się, że klienty korzystają z serwerów Proxy
lub pracują za ścianą ogniową
Czwarta warstwa sieciowa
Czwarta warstwa sieciowa
Algorytmy dynamiczne
posiadające informację o serwerze
jakie miary obciążenia serwerów są potrzebne,
jak często pobierać informacje z serwerów,
w jaki sposób przesyłać informacje
czy informacja jest aktualna
• Miary obciążenia serwerów dzieli się na trzy
grupy:
– miary wejściowe (ang. input indexes),
– miary serwera (ang. server indexes),
– miary ekspediowane (ang. forward indexes).
• Miary wejściowe
– obliczane są przez przełącznik,
– nie wymagają przesyłania jakichkolwiek
informacji z serwera,
– przykłady miar:
• czas obsługi żądania, mierzony przez przełącznik
WWW.
• liczba aktywnych połączeń z danym serwerem.
Czwarta warstwa sieciowa
Czwarta warstwa sieciowa
Algorytmy dynamiczne
posiadające informację o serwerze
Algorytmy dynamiczne
posiadające informację o serwerze
• Miary serwera
– przesyłane są z serwera na rozdzielacz,
– dane zbierane są na serwerze periodycznie
przez wyspecjalizowanie oprogramowanie,
– przykłdowe miary:
•
•
•
•
•
• Client partition – algorytm posiadający
informacje o kliencie.
Algorytmy dynamiczne
posiadające informację o serwerze
• Problemy z osiągnieciem informacji o stanie
serwerów:
–
–
–
–
Algorytmy dynamiczne
posiadające informację o kliencie
obciążenie procesora,
obciążenie dysku,
obciążenie karty sieciowej,
wielkość dostępnej pamięci operacyjnej,
liczba procesów na serwerze,
• Miary ekspediowane
– uzyskiwane są poprzez wysłanie z
przełącznika na serwer próbnych żądań HTTP,
– często wykorzystywane są w architekturze
jednokierunkowej,
– przykłady miar:
• czas obsługi żądania, mierzony przez przełącznik
WWW.
17
Czwarta warstwa sieciowa
Czwarta warstwa sieciowa
Algorytmy dynamiczne
posiadające informację o serwerze
Algorytmy dynamiczne
posiadające informację o serwerze
• Algorytm Least Loaded
– wybierany jest zawsze serwer, dla którego wartość
określonej miary obciążenia serwera jest mniejsza niż
dla pozostałych serwerów,
– wykorzystywane miary obciążenia serwera:
•
•
•
•
• Weighted Round-Robin (WRR)
– wybiera serwery ze statycznie utworzonej listy z
prawdopodobieństwem wyboru zależnym od wagi przypisanej
serwerowi,
– wagi zmieniają się dynamicznie w zależności od obciążenia
poszczególnych serwerów,
– stosowane miary obciążeń serwerów:
•
•
•
•
•
•
obciążenie procesora,
dysku,
karty sieciowej,
liczba aktywnych połączeń TCP na poszczególnych
serwerach (Least Connections),
– inna odmiana: Fastest Response
obciążenie procesora,
dysku,
liczba aktywnych połączeń,
liczba procesów serwera (ponoć najlepsza miara),
dostępna pamięć,
średni czas odpowiedzi,
– dobór miary zależy od:
• rodzaju serwerów pracujących w klasterze,
• rodzaju obiektów pobieranych przez użytkowników z serwisu.
• przełącznik wybiera serwer o najkrótszym czasie obsługi
zmierzonym w oknie czasowym.
Czwarta warstwa sieciowa
Czwarta warstwa sieciowa
Algorytmy dynamiczne
posiadające informację o kliencie i serwerze
• Client affinity
– łączy w sobie cechy algorytmu Client partition
oraz algorytmów posiadających informacje o
serwerze,
– nowe klienty przekierowywane są do serwerów
najmniej obciążonych,
– klienty korzystające z serwisu od jakiegoś czasu
przekierowywane są do serwerów, na których już
przeprowadzały transakcje,
– informacje pochodzące od klientów i informacje o
stanie serwerów mają różne wagi,
– informacje o klientach mają zwykle wyższy
priorytet w procesie podejmowania decyzji.
Podsumowanie
• W przełącznikach wykorzystujących
rozdzielacze czwartej warstwy
sieciowej:
– algorytmy statyczne
• są najszybszymi i najmniej obciążającymi
rozdzielacz metodami doboru serwera,
• w zadowalającym stopniu umożliwiają
równoważenie obciążeń na serwerach,
– algorytmy dynamiczne:
• umożliwiają uzyskanie jeszcze większej
wydajności klastra serwerów,
• w prymitywny sposób wspomagają stałe
połączenia klienta z serwerem,
Czwarta warstwa sieciowa
Czwarta warstwa sieciowa
Podsumowanie
Podsumowanie
Algorytmy
przełączania
połączeń czwartej
warstwy sieciowej
• Algorytmy dynamiczne cd.:
– występują trudności związane z:
Od powyższych czynników w zasadniczy
sposób zależy wydajność klastra serwerów
algorytmy
dynamiczne
algorytmy
statyczne
• wyborem miar obciążenia serwerów,
• sposobem przekazywania wartości tych miar do
przełącznika,
• doborem częstości przesyłania wartości miar,
algorytmy
posiadające
informacje o
kliencie
Random
Round-Robin
(RR)
Static
Weighted
RR
Client
partition
algorytmy
posiadające
informacje o
serwerze
Weighted
RR
algorytmy
posiadające
informacje o kliencie
i serwerze
Least
Loaded
Client
affinity
18
Taksonomia algorytmów
rozdziału żądań WWW
Alg. rozdziału
żądań
algorytmy
przełączania
połączeń czwartej
warstwy sieciowej
algorytmy
statyczne
algorytmy
posiadające
informacje o
kliencie
algorytmy
przełączania
połączeń siódmej
warstwy sieciowej
algorytmy
dynamiczne
algorytmy
dynamiczne
algorytmy
posiadające
informacje o
serwerze
algorytmy
posiadające
informacje o
kliencie i serwerze
algorytmy
posiadające
informacje o
kliencie
algorytmy
posiadające
informacje o
kliencie i serwerze
Siódma warstwa sieciowa
Algorytmy dynamiczne
• Wszystkie algorytmy na tym poziomie
wykorzystują do podjęcia decyzji informację
zawartą w żądaniu,
– są dużo bardziej skomplikowane,
– wymagają większych nakładów obliczeniowych.
• Pro: zaspokojenie wzrastających wymagań
użytkowników,
• Contra: wzrost prawdopodobieństwa
powstawania „wąskiego gardła” na
przełączniku WWW.
Siódma warstwa sieciowa
Siódma warstwa sieciowa
Algorytmy dynamiczne – nowe cechy
Algorytmy dynamiczne – nowe cechy
1. Elastyczne lokowanie zawartości
serwerów WWW
• Przełącznik zapoznaje się z żądaniem
klienta i wysyła żądanie na serwer WWW,
który posiada żądane informacje.
• Nie jest konieczne wykonywanie i
utrzymywanie całej kopii zawartości
serwisu WWW na wszystkich serwerach.
2. Wspomaganie stałego połączenia
Przełączanie warstwy siódmej
umożliwia utrzymywanie stałego
połączenia w następujących
przypadkach:
transakcja płacenia poprzez sieć,
złożone wyszukiwanie w sieci,
wykonywanie zakupów (koszyk),
inne.
–
–
–
–
Siódma warstwa sieciowa
Siódma warstwa sieciowa
Algorytmy dynamiczne – nowe cechy
Algorytmy dynamiczne – nowe cechy
3. Podwyższona wydajność grupy
serwerów
• Znając żądanie klienta rozdzielacz może
wysłać żądanie HTTP na serwer, który
już udostępniał żądany obiekt.
• Obiekt pobierany jest pamięci
podręcznej serwera.
• W ten sposób uzyskuje się
przyspieszenie działania klastra.
4. Poprawione działanie grupy
serwerów
•
•
•
•
Rozwiązanie problemu HTTP 1.1
polegającego na utrzymywaniu połączeń
TCP
Następuje rozbijanie ciągu żądań z jednego
połączenia TCP na pojedyncze żądania
Każde żądanie może być przekazane innemu
serwerowi WWW.
Uzyskuje się lepsze zbalansowanie obciążeń
oraz skrócenie czasu obsługi żądań.
19
Siódma warstwa sieciowa
Siódma warstwa sieciowa
Algorytmy dynamiczne – nowe cechy
Algorytmy dynamiczne – cele działania
5. Identyfikacja użytkownika
•
•
Znając treść nagłówka HTTP przełącznik
może jednoznacznie identyfikować
użytkowników
Można zastosować podział
użytkowników na klasy, np.:
•
•
użytkownicy powracający do serwisu (stali
klienci),
użytkownicy płacący za usługę,
będą obsługiwani są szybciej i bardziej
niezawodnie.
1. Dzielenie obciążenia: wygładzenie
przelotnych szczytowych przeciążeń
serwerów.
2. Specjalizacja serwerów: wykorzystanie
cech i różnic jakości pracy serwerów w celu
minimalizacji czasu obsługi żądania.
3. Zwiększenie trafialności w cache:
zwiększenie prawdopodobieństwa
występowania obiektu w pamięci operacyjnej
serwera.
4. Identyfikacja użytkownika: precyzyjna
identyfikacja użytkowników.
Siódma warstwa sieciowa
Algorytmy dynamiczne
posiadające informację o kliencie
Algorytmy siódmej
warstwy
• Session identifiers
algorytmy
dynamiczne
algorytmy
adaptacyjne
– identyfikuje sesje użytkownika
– do wyboru serwera wykorzystuje najczęściej dwie
strategie:
• Cookie-Based Scheduling
algorytmy
posiadające
informacje o kliencie
identyfi- specjali- zwiększenie
kacja
zacja
użytkow- serwerów trafialności w
nika
cache
dzielenie
obciążenia
algorytmy
posiadające
informacje o kliencie
i serwerze
algorytmy
posiadające
informacje o kliencie
i serwerze
– rozpoznawani na podstawie nagłówka cookie użytkownicy dzieleni są
na klasy, które
» mogą być przydzielane do szybszych i bardziej niezawodnych
serwerów,
» mają dostęp do dodatkowych zasobów.
• Persistence
zwiększenie
trafialności w
cache
dzielenie
obciążenia
dzielenie
obciążenia
zwięk- specjalizacja
szenie
trafial- serwerów
lności w
cache
– gdy występuje konieczność łączenia użytkownika zawsze z tym
samym serwerem, np. koszyk z zakupami
– istnieją dwie odmiany:
» Cookie-based persistence – gdy wykorzystywane jest cookie
» SSL persistence – gdy wykorzystywany jest identyfikator SSL
Siódma warstwa sieciowa
Siódma warstwa sieciowa
Algorytmy dynamiczne
posiadające informację o kliencie
Algorytmy dynamiczne
posiadające informację o kliencie
• Service partitioning
– Pewne klasy obiektów mogą znajdować się (być
generowane) tylko na wyspecjalizowanych serwerach, np.:
• obiekty HTML statyczne,
• obiekty HTML dynamiczne,
• obiekty multimedialne.
– Na podstawie żądania HTTP, przełącznik ustala typ
żądanego obiektu i przesyła żądanie do odpowiedniego
serwera.
– Efektywność algorytmu w dużej mierze zależy od
przystosowania serwerów do obsługi konkretnych typów
obiektów.
• Hash
– Rozdział zasobów na serwery odbywa się poprzez
funkcje mieszające.
– Przełącznik przekazując żądanie do odpowiedniego
serwera kieruje się nazwą zasobu oraz mapą powstałą
podczas rozdziału zasobów.
– Zalety:
• równomiernie dociążone serwery.
• podwyższona trafialność pamięci cache serwerów.
– Wady:
• Gdy pobierane są części stron WWW, niektóre serwery mogą
być silniej obciążane (obniża się ich wydajność).
– Algorytm ten przeznaczony jest dla serwisów
obsługujących zasoby statyczne.
20
Siódma warstwa sieciowa
Siódma warstwa sieciowa
Algorytmy dynamiczne
posiadające informację o kliencie
Algorytmy dynamiczne
posiadające informację o kliencie
• SITA-E
– Żądania użytkowników rozdzielane są na
podstawie wielkości żądanych obiektów
statycznych.
– Każdy serwer ma przyporządkowany pewien
zakres wielkości obiektów.
– Przełącznik określa wielkość żądanego obiektu na
podstawie tabeli <nazwa, wielkość> i na tej
podstawie wybiera serwer.
– Aby algorytm spełniał swój cel, należy starannie
ustalić zakresy wielkości obiektów.
– Zakresy powinny zmieniać się wraz ze zmianami
upodobań użytkowników (trzeba je śledzić!).
• CAP (Client-Aware Policy) lub
MC-RR (Multi-Class Round-Robin)
– popularny podział zasobów:
• publikacje WWW – zasoby statyczne oraz w
małym stopniu obciążajce serwer zasoby
dynamiczne,
• transakcje WWW – zasoby, które w dużym
stopniu obciążają dysk i procesor serwera
(konieczność korzystania z bazy danych),
• multimedia – zasoby audio i video.
Siódma warstwa sieciowa
Siódma warstwa sieciowa
Algorytmy dynamiczne
posiadające informację o kliencie
Algorytmy dynamiczne
posiadające informację o kliencie
• klasyfikacja zasobów zastowana w
algorytmie CAP:
– N – statyczne i lekko dynamiczne
publikacje WWW
– DB – serwisy obciążające dysk,
– CB – serwisy obciążające procesor,
– DCB – serwisy obciążające dysk i
procesor.
• rozdzielacz przełącza cyklicznie żądanie
z każdej z klas do innego serwera
WWW tak, aby żaden serwer nie był
przeciążony (procesor i dysk),
• każdy z serwerów WWW może obsłużyć
każde z prawidłowych żądań,
• wszystkie serwery otrzymują podobną
liczbę żądań należących do tej samej
klasy,
Siódma warstwa sieciowa
Siódma warstwa sieciowa
Algorytmy dynamiczne
posiadające informację o kliencie
Algorytmy dynamiczne
posiadające informację o kliencie
N N N DB CB CB
żądania HTTP
przełącznik
WWW
N N DB CB DCB
serwer
WWW #1
serwer
WWW #2
• Przykład:
– serwer #1 ma w kolejce trzy rodzaje żądań typu N,
jedno typu DB i dwa typu CB,
– serwer #2 otrzymał poprzednio dwa żądania typu N,
i po jednym z typu DB, CB, DCB,
N N N DB CB CB
serwer
WWW #1
CB DB N
N N DB CB DCB
żądania HTTP po przekierowaniu
przez rozdzielacz
serwer
WWW #2
N DCB DB
CB N DCB DB DB N
żądania HTTP
przełącznik
WWW
• Przykład c.d.:
– do serwisu WWW przyszły kolejno żądania:
N, DB, DB, DCB, N, CB.
– CAP przydzielił pierwsze dwa żądania serwerowi #2,
następne trzy serwerowi #1 i ostatnie ponownie #2.
– w ten sposób każdy serwer obsłużył podobną liczbę
żądań każdej klasy.
21
Siódma warstwa sieciowa
Siódma warstwa sieciowa
Algorytmy dynamiczne
posiadające informację o kliencie i serwerze
Algorytmy dynamiczne
posiadające informację o kliencie i serwerze
• Cache manager
– specjalny program nazywany zarządcą pamięci
podręcznej posiada informacje o zawartości
pamięci podręcznej poszczególnych serwerów.
• gdy przychodzi żądanie i obiekt jeszcze nie znajduje
się w pamięci cache żadnego z serwerów, to
wybierany jest serwer najmniej obciążony.
• gdy przychodzi żądanie i obiekt znajduje się w pamięci
podręcznej serwerów, to wybierany jest ten serwer
(spośród serwerów posiadających obiekt), który jest
najmniej obciążony... ale ...
• Cache manager, c.d.:
– jeśli jednak obciążenie wybranego serwera jest większe
niż ε procent w stosunku do najmniej obciążonego
serwera w klastrze, to wybierany jest serwer najmniej
obciążony w całym klasterze,
– wartość ε dobierana jest przez administratora serwisu w
zależności od liczby serwerów oraz wielkości ich pamięci
operacyjnej,
• jeśli wartość ε jest równa 0, to zawsze wybierany będzie serwer
najmniej obciążony w całym klasterze bez względu na zawartości
pamięci podręcznych serwerów,
• jeśli wartość ε jest równa 100, to nie będzie brane pod uwagę
obciążenie serwerów.
Siódma warstwa sieciowa
Siódma warstwa sieciowa
Algorytmy dynamiczne
posiadające informację o kliencie i serwerze
Algorytmy dynamiczne
posiadające informację o kliencie i serwerze
• LARD (Basic Locality-Aware Request
Distribution)
– jako obciążenie serwera brana jest pod uwagę
liczba aktywnych połączeń na danym serwerze
• jeśli obiekt pobierany jest po raz pierwszy, przekieruj
go na najmniej obciążony serwer,
• jeśli obiekt pobierany jest po raz kolejny, przekieruj go
na serwer, z którego był już pobierany o ile serwer nie
jest przeciążony (nie ma dużej różnicy między
obciążeniem tego serwera a innymi),
• jeśli obiekt pobierany jest po raz kolejny i serwer, z
którego był już pobierany jest przeciążony, przekieruj
go na najmniej obciążony serwer.
• LARD (Basic Locality-Aware Request
Distribution) c.d.
– poprawnie balansuje obciążenia serwerów
– zwiększa trafialność w pamięć cache serwerów.
• przykład rozdziału żądań dla algorytmu
LARD
serwer WWW
AAAAA
A A B C B B AAA
#1
Przełącznik
żądania HTTP
BCBB
żądania http po przekierowaniu przez
rozdzielacz
serwer WWW
#2
Siódma warstwa sieciowa
Siódma warstwa sieciowa
Algorytmy dynamiczne
posiadające informację o kliencie i serwerze
Algorytmy dynamiczne
Podsumowanie
• Algorytmy wykorzystujące informacje pochodzące
jedynie od klienta umożliwiają szybkie
podejmowanie decyzji z uwzględnieniem
charakterystycznych cech obsługiwanych obiektów.
• Algorytmy wykorzystujące informacje pochodzące z
serwera oraz od klienta są zazwyczaj bardziej
złożone i przy strategiach tych pojawiają się
zazwyczaj problemy związane z doborem i
sposobem przekazywania wartości miar obciążenia
serwerów.
• Odmiana LARD – Locality-Aware Request
Distribution with Replication
– różnica polega na tym, że jeden zasób może być
pobierany z kilku serwerów naraz, jeżeli bardzo wielu
użytkowników pobiera ten sam obiekt jednocześnie.
– jeśli poprzednie serwery zostały przeciążone w czasie,
gdy obsługiwały żądania dotyczące jakiegoś obiektu do
jego obsługi włączany jest kolejny serwer.
• LARD jest jednym z najskuteczniejszych
algorytmów podnoszących wydajność klastra
serwerów.
– algorytmy te mają jednak przewagę na poprzednimi,
ponieważ nie dopuszczają do dużego niezrównoważenia
obciążeń na serwerach.
22