1 Wprowadzenie SYSTEMY SIECIOWE Michał Simiński
2 Rozwój infrastruktury System scentralizowany System sieciowy I System sieciowy II Rozproszony system sieciowy Podsumowanie
System scentralizowany komputer centralny + terminale pasywne 3 Komputer centralny wielodostępny, wielozadaniowy. Realizuje całość procesów przetwarzania i składowania danych. Współdzieli zasoby. Teminale Ich rolą jest jedynie wprowadzanie i wizualizacja danych. Nie przetwarzają ich. Nie posiadają procesora, pamięci, ani dysku.
System sieciowy I (wczesny) serwery zasobów + stacje robocze 4 Serwery głównie udostępniają zasoby, rzadziej świadczą usługi. Przetwarzanie danych ukierunkowane na czynności administracyjne. Stacje robocze wprowadzanie, wizualizacja i przetwarzanie danych. Raczej uboga konfiguracja i brak dysków. Sieć kkomputerowa nastawiona na pasywną transmisję danych na niewielkie odległości.
System sieciowy serwer zasobów + serwer usług + stacje robocze 5 Serwery udostępniają zasoby i świadczą usługi. Pojawiają się serwery aplikacji. Stacje robocze wprowadzanie, wizualizacja i przetwarzanie danych. Zwykle pełna konfiguracja. Zdolne do pracy lokalnej i korzystania z zasobów i usług sieciowych. Sieć komputerowa lokalna transmisja danych z wykorzystaniem urządzeń aktywnych.
Rozproszony system sieciowy dedykowane serwery usług + sieci lokalne 6
7 Rozwój aplikacji Przetwarzanie na komputerze centralnym Wczesna aplikacja sieciowa Dwuwarstwowa architektura klient-serwer Trójwarstwowa architektura klient-serwer Wielowarstwowe architektury klient-serwer
Przetwarzenie na komputerze centralnym 8 Komputer centralny zajmuje się zarówno realizacją operacji systemowych, jak i aplikacyjnych. Przetwarzanie danych odbywa się z pełnym wykorzystaniem zasobów komputera centralnego. Terminal nie uczestniczy w przetwarzaniu danych Model wykorzystywany jest w dużych centrach biznesowych świadczacych usługi. Wykorzystywane są np. Mainframe-y.
Wczesna aplikacja sieciowa stacja robocz + zdalne współdzielone zasoby Serwer pełni rolę zdalnego, współdzielonego dysku. Logika przetwarzania danych realizowana jest przez stacje robocze. Stacja robocza realizuje też funkcję obsługi bazy danych. 9
Dwuwarstwowa architektura klient-serwer 10 Serwer zajmuje się przechowywaniem i obsługą danych. Klient przesyła zlecenia wykoania operacji na danych. Logika przetwarzania danych realizuje warstwa kliencka.
Dwuwarstwowa architektura klient-serwer - podsumowanie 11 Warstwa kliencka i serwerowa mogą pracować różnych lub na tym samym komputerze. Do komunikacji wykorzystywany jest określony protokuł wymiany inforacji, więc obie warstwy nie musza znać swojej specyfikacji fizycznej. Warstwa serwerowa może być rozproszona fizycznie i logicznie. Warstwa serwerowa zwykle jest realizowana przez serwer bazy danych. Realizacja logiki przetwarzania informacji w warstwie klienckiej utrudnia tworzenie spójnych, kompleksowych systemów informatycznych.
Trójwarstwowa architektura klient-serwer - koncepcja 12
Trójwarstwowa architektura klient-serwer - klient 13 W ortodoksyjnej architekturze trójwarstwowej warstwa kliencka powinna realizowaćć tylko funkcje prezentacji i komunikacji z użytkownikiem, tzw. chudy klient (ang. thin client). Zwykle jednak warstwa kliencka realizuje przetwarzanie jakichś danych, np. weryfikacja poprawności danych w formularzu. Czasem funkcje warstwy klienckiej przejmują sporą część przetwarzania danych tzw. gruby klient (ang. fat client).
Trójwarstwowa architektura klient-serwer warstwa aplikacji 14 Warstwa aplikacji realizuje przetwarzanie danych zgodnie z założeniami aplikacji. Zdefiniowane są w niej wszystkie istotne operacje dla aplikacji. Realizuje ona zazwyczej przetwarzanie danych właściwe dla warstwy serwerowej w modelu dwuwarstwowym. W ramach serwera aplikacji pojawia się wiele różnorodnych modułów realizujących różne rzeczy (np. komunikacja, autoryzacja, szyfrowanie).
Wielowarstwowe architektury klient-serwer 15
16 Środowisko WWW Kilka faktów z historii Porotokoły internetowe Protokół HTTP Klient HTTP Serwer HTTP
Kilka faktów z historii 17 Technologie internetowe rozwijają się poza komercyjnym obiegiem niedoceniane przez gigantów rynkowych. Powstaje wiele różnorodnych i niespójnych rozwiązań. Popularność Internetu przykuwa uwagę dużych film próba monopolizacji. Rozwój HTTP i WWW, Internet staje się platformą budowania aplikacji klient-serwer. Niekontrolowany i niespójny rozwój narzędzi dla potrzeb komercyjnych ( i nie tylko) Tworzenie aplikacji internetowych, to zmaganie się z technologią oryginalnie opracowaną dla wymiany prostych informacji. W pewnym sensie tworzenie aplikacji internetowych, to inna bajka niż tworzenie klasycznego oprogramowania. Środowisko webowe = wolna amerykanka
Protokoły internetowe 18 Technologie internetowe rdzennie są rozwiązaniami klient-serwer. Podstawą funkcjonowania tych technologii są protokoły internetowe, które pozwalają na odseparowanie specyfiki współpracujących ze sobą platform. Technologie internetowe nastawione są na współpracę różnych platform.
Protokół HTTP - podstawy 19 HTTP Hypertext Transfer Protocol to podstawowy protokół wymiany informacji wykorzystywany w środowisku WWW. HTTP jest multikulti, dokumenty wymieniane za jego pośrednictwem mogą mieć dowolną postać, pozwala na transmisję informacji różnego typu. Działa pomiędzy klientem, a serwerem. Służy do pobierania informacji z serwera i przesyłanie informacji od klienta. Domyślnie działa na porcie 80. Protokół działa w trybie żądanie/odpowiedź.
Protokół HTTP żądanie/odpowiedź 20 Żądanie wysłane przez klienta do serwera zawiera metodę żądania, adres URI, informację o wersji protokołu, typie zawartości, kliencie oraz potencjalną treść przekazywaną do serwera.
Protokół HTTP żądanie/odpowiedź 21 Odpowiedź przesyła linię statusu, wersję protokołu, kod wykonania żądania, informacje o zasobie udostępnionym przez serwer i potencjalnie ten zasób.
Klient protokołu HTTP 22 Rolę warstwy klienckiej w aplikacjach WWW realizuje zwykle przeglądarka internetowa. Przeglądarka inicjuje połączenie z serwerem i wysyła żądanie. W odpowiedzi otrzymuje jakąś treść, zazwyczaj dokument HTML, style CSS opcjonalnie jakieś dodatkowe pliki, dane etc. Przeglądarka zajmuje się odebraniem i wizualizacją przesłanych treści. Klientem protokołu HTTP może być zupełnie inny program.
Serwer protokołu HTTP 23 Serwer protokołu, to oprogramowanie działające na serwerze internetowym. Jego zadaniem jest obsługa żądań przesyłanych przez klientów. Popularnie nazywany jest serwerem WWW, bo udostępnia dokumenty/strony WWW. TERMINOLOGIA Internet zdecentralizowany, globalny system połączeń między sieciami komputerowymi. WWW zbiór powiązanych ze sobą zasobów i dokumentów HTML połączonych hiperłączami i ulokowanych na różnych serwerach iinternetowcy, udostępnianych przez HTTP. Internet = globalna sieć komputerowa WWW = sieć dokumentów HTML
24 Strony i aplikacje WWW Statyczny model współpracy przeglądarka serwer Technologia po stronie klienta Rozwarstwienie warstwy serwera Architektura wielowarstwowa a serwisy WWW Technologie realizacji aplikacji wielowarstwowych w środowisku internetowym
Statyczny model współpracy przeglądarka serwer 25 Opracowana strona internetowa przesyłana jest na dysk serwera sieciowego. Przeglądarka przesyła żadanie do serwera WWW. Dokument jest lokalizowany, pobierany przez serwer WWW i przesyłany do przeglądarki, która go interpretuje i wizualizuje. Dokumenty są statyczne. Dla ożywienia można dodać programowanie w JavaScript i/lub elementy technologii Flash (teraz się od tego raczej odchodzi). Czasem operacje po stronie przeglądarki są trudne do oprogramowania w JS ze względu na stopień skomplikowania lub bezpieczeństwo. W tych sytuacjach używa się programów uruchamianych w środowisku przeglądarki tzw. aplety, najpopularniejszy język to Java
Statyczny model współpracy przeglądarka serwer 26
Technologia po stronie klienta podstawa 27 HTML definiuje strukturę logiczną i treść prezentowanych informacji. CSS style/kaskadowe arkusze stylów, definiują wizualne elementy dokumentu. Grafiki pliki graficzne gif, jpg, png, SVG. JavaScript/Jscript(M$)/ActionScript skryptowe języki interpretowane przez przeglądarkę wykorzystywane do programowania. JavaScript w połączeniu z DOM (Document Object Model) pozwala na dynamiczne zarządzanie zawartością strony. Aplety programy uruchamiane w przeglądarce, najpopularniejsze są aplety Javy, interpretowane przez jej maszynę wirtualną.
Technologia po stronie klienta RIA 28 RIA (ang. Rich Internet Application) koncepcjaa rozbudowanych aplikacji działających w środowisku przeglądarki. Koncepcja wywodzi się z pakietu Macromedia Flash (obecnie Adobe Flex) i przez niektórych traktowane jest jako pojęcie marketingowe. Koncepcja zakłada tworzenie serwisów internetowych typu one-screenapplication lub też SPA (ang. Single Page Application) Koncepcja RIA obecnie realizowana jest z wykorzystaniem HTML i AJAX. Z pomocą przychodzą także liczne frameworki JavaScript.
Rozwarstwienie warstwy serwera klient-serwer, warstwy 2.5 29 Statyczna strona WWW wykorzystuje model dwuwarstwowy. Aby zawartość serwisu mogła się zmieniać, to treść musi być generowana po stronie serwera przez działające tam oprogramowanie (ang. server side). Gdy klient żąda dokumentu, server side pobiera zawartość zasobów dyskowych i bazy danych, buduje dynamicznie treść dokumentu HTML i odsyła do klienta.
Rozwarstwienie warstwy serwera model trójwarstwowy 30 Oprogramowanie po stronie serwera może być bardzo rozbudowane. Przejmuje na siebie wszystkie ważne funkcje przetwarzania danych i realizuje funkcję warstwy aplikacji, stając się trzecią warstwą w modelu klient-serwer. Gdy klient żąda dokumentu, server side pobiera zawartość zasobów dyskowych i bazy danych, buduje dynamicznie treść dokumentu HTML i odsyła do klienta.
Rozwarstwienie warstwy serwera model wielowarstwowy 31 Oprogramowanie warstwy aplikacji powinno być niezależne od tego, na jakim urządzeniu pracuje warstwa klienta. Tworzenie ostatecznej postaci dokumentu powinno być z niej wyłączone. Przygotowaniem ostatecznej wersji prezentowanych treści, odpowiednio do charakteru klienta zajmuje się warstwa prezentacji.
Architektura wielowarstwowa a serwisy WWW 32 Poszczególne warstwy mogą działać na różnych fizycznych komputerach, mogą też działać na jednej maszynie. W przypadku serwisów WWW zwykle działają na jednej maszynie. W typowych przypadkach warstwa aplikacji i prezentacji działa w środowisku serwera WWW, podział nie zawsze jest jasny i zależy od umiejętności programistów
Technologie realizacji aplikacji wielowarstwowych w 33 środowisku internetowym Historycznie najstarsza technologia CGI. Aktualnie najpopularniejsze podejście (W/L)AMP: Apache + MySQL + PHP w środowisku Windows lub Linux. Technologia JSP Java Server Pages (Sun, Java + biblioteki). Technologia ASP Active Server Pages (Microsoft i ASP.NET). Język Ruby i platforma Rails.