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