Wybrane działy Informatyki Stosowanej Dr inż. Andrzej Czerepicki a.czerepicki@wt.pw.edu.pl http://www2.wt.pw.edu.pl/~a.czerepicki 2017
Sprawy organizacyjne Harmonogram zajęć Regulamin przedmiotu Treści programowe Efekty kształcenia (KRK) 2
Harmonogram Studia stacjonarne Wykład: 8-14 tydzień, zaliczenie 15 tydzień Laboratoria: 8-15 tydzień (wstęp, 5 zajęć, 1 kol., 1 popr.) Studia niestacjonarne: Wykład: zjazdy 1 4 Zaliczenie: zjazd 10 Laboratorium: zjazdy 5 8 Zaliczenie: zjazd 9 Poprawa: zjazd 10 3
Regulamin przedmiotu http://www.simt.wt.pw.edu.pl/dydaktyka/?wybranedzialy-informatyki-stosowanej,16 Wykłady: ob. nieobowiązkowa Laboratoria: ob. obowiązkowa Zaliczenie wg tabeli (min 50 pkt. ze 100) Zaliczenie wykładów: test na komputerze Zaliczenie lab.: rozwiązanie zadania (HTML + aplikacja serwerowa) Ocena końcowa = średnia arytmetyczna W + LAB (pod warunkiem że obydwie oceny są przynajmniej dostateczne) 4
Cel przedmiotu WDIS Opanowanie podstaw programowania sieciowego z wykorzystaniem języka Java na platformie J2EE w zakresie tworzenia aplikacji serwerowych oraz usług WWW z wykorzystaniem protokołów HTTP, TCP/IP oraz standardów HTML, XML 5
Treści programowe Wykłady Wstęp do technologii internetowych. Architektura klient-serwer oraz trójwarstwowa. Sieć Internet. Protokół HTTP. Elementy języka HTML oraz XML. Skrypty wykonywane po stronie klienta oraz serwera. Przetwarzanie danych po stronie serwera. Metody programowania dynamicznych aplikacji WWW. Aplikacje typu serwlet. Podstawy komunikowania się z wykorzystaniem protokołu TCP/IP. Usługi WebServices. Rozproszone aplikacje sieciowe. Laboratoria Konfigurowanie serwera usług WWW oraz napisanie prostych aplikacji testowych. Zasady umieszczania serwletów na serwerze. Programowanie aplikacji typu serwlet. Odczyt parametrów przekazywanych przez przeglądarkę. Rozwiązanie równania kwadratowego za pomocą aplikacji serwerowej. Wykorzystanie usług sieciowych w aplikacjach typu aplet oraz Swing. Programowanie aplikacji do wymiany wiadomości tekstowych za pośrednictwem protokołu TCP/IP. 6
Efekty kształcenia - wiedza (Student, który zaliczył przedmiot.) Ma wiedzę o standardach platformy J2EE oraz mechanizmach tworzenia programów wykorzystujących język Java i języki skryptowe Zna zasady budowy programowych standardów platformy J2EE, JSP i tworzenia serwletów programowych w środowisku protokołu HTTP Rozumie zasady i metody programowania sieciowego w zakresie obsługi gniazd wysyłania i odbioru pakietów, adresowania i buforów danych Zna standardy usług sieciowych WebService wykorzystujących stos protokołów SOAP, WSDL i UDDI Zna zasady tworzenia aplikacji w architekturze SOA adresowanej do określonego zakresu usług 7
Efekty kształcenia - umiejętności (Student, który zaliczył przedmiot.) Potrafi zaprojektować stronę internetową lub usługę WWW po stronie serwera z wykorzystaniem języka Java oraz języków skryptowych Potrafi wykorzystać zdobytą wiedzę do tworzenia oraz integracji usług WWW 8
Efekty kształcenia kompetencje społeczne (Student, który zaliczył przedmiot.) Potrafi identyfikować potrzeby wspomagania informatycznego poprzez programowanie zaawansowanych usług w środowisku WWW Potrafi poprzez zdobyte umiejętności integrować usługi adresowane do różnych, profesjonalnych zastosowań 9
Treść wykładów Technologie sieciowe. Pojęcie adresu IP, sieć, Internet, etc. Architektura klient-serwer. Globalna sieć Internet oraz usługa WWW. Protokół HTTP. Format HTML. Strony dynamiczne JSP. Programowanie serwletów. Aplikacje TCP/IP. Usługi webowe. Standard XML. Aplikacje rozproszone. Chmura obliczeniowa. Bezpieczeństwo w sieci. Szyfrowanie danych. Podpis elektroniczny. 10
Wymagania wstępne Przedmiot wymaga wiedzy oraz umiejętności z zakresu: Podstaw programowania Java, w szczególności aplikacji konsolowych Posługiwania się środowiskiem NetBeans Osoby które na studiach inżynierskich nie miały podstaw programowania Java, są proszone o zapoznanie się z treścią ćwiczeń 1-4 z przedmiotu Informatyka 1 http://www2.wt.pw.edu.pl/~mse 11
Czego potrzebujemy do pracy JRE JDK Środowisko uruchomieniowe (zależy od sprzętu oraz systemu operacyjnego) http://www.oracle.com/technetwork/java/javase/download s/jre8-downloads-2133155.html Komponenty programistyczne Java SE 8u151 http://www.oracle.com/technetwork/java/javase/downloads/index.html Środowisko programowania NetBeans 8.2 (wersja All dla wybranego systemu operacyjnego) https://netbeans.org/downloads/ Serwer WWW - środowisko uruchomienia aplikacji 12
Materiały pomocnicze http://www2.wt.pw.edu.pl/~a.czerepicki Źródła uzupełniające (wykłady): http://wazniak.mimuw.edu.pl/index.php?title=zaa wansowane_aplikacje_internetowe Programowanie w Java: C.S. Horstmann, G. Cornell, Core Java 2 podstawy, Helion, Gliwice, 2003 M.Lis, Java ćwiczenia praktyczne, wyd.ii, Gliwice 2006 13
Wykład 1. Wstęp do Wybranych Działów Informatyki Stosowanej. Sieci komputerowe. Adresy IP. Architektury sieciowe. Globalna sieć Internet. 14
Informatyka Stosowana Wybrane Działy Informatyki Stosowanej Wytwarzanie Aplikacje typu desktop Aplikacje mobilne Informatyka I, II Programowanie Administrowanie Usługi sieciowe Strony WWW WDIS Grafika. Sieci Bezpieczeństwo Informatyka (ang. Computer Science) nauka o metodach oraz technologiach pozyskania, przechowywania oraz przetwarzania informacji 15
Sieci komputerowe architektura, protokoły, komunikacja 16
Sieć komputerowa Sieć komputerowa grupa komputerów połączonych przez kanały komunikacyjne oraz współpracujących między sobą w celu: zwiększenia wydajności przetwarzania danych zwiększenia niezawodności całego systemu zwiększenia bezpieczeństwa przechowania danych, wspólnej oraz zdalnej pracy nad obiektami ułatwienia komunikacji pomiędzy użytkownikami 17
Elementy sieci komputerowej Media sieciowej transmisji danych (łącza fizyczne) Urządzenia Protokoły Oprogramowanie
Media sieciowej transmisji danych Kabel koncentryczny Skrętka WiFi Światłowód 19
Topologie sieci komputerowych Sposób połączenia komputerów w sieć na poziomie fizycznym (łącza danych) Magistrala Pierścień Gwiazda 20
Klasyfikacja sieci wg zasięgu PAN (ang. Personal Area Network) sieć personalna LAN (ang. Local Area Network) sieć lokalna CAN (ang. Campus Area Network) WAN (ang. Wide Area Network) sieć rozległa MAN (ang. Metropolitan Area Network) sieć miejska VPN (ang. Virtual Private Network) sieć wirtualna Klasyfikacja jest przybliżona, np. sieci lokalne mogą mieć duży fizyczny zasięg (np. sieć osiedlowa) 21
Klasyfikacja sieci wg sposobu komunikacji pomiędzy węzłami Peer-to-peer Network (P2P) Serwer-based network 22
Warstwy komunikacji sieciowej Użytkownik A Użytkownik B Hello! Warstwa aplikacji > A: Hello! Aplikacja Aplikacja Warstwa transportowa (protokołu) Komputer Komputer łącze łącze Karta sieciowa Warstwa łącza danych (fizyczna) Karta sieciowa 23
Warstwy komunikacji sieciowej Warstwa fizyczna: zapewnia połączenie pomiędzy odbiorcą a nadawcą w sieci (łącza danych) Warstwa transportowa: zapewnia przekazywanie pakietów informacji pomiędzy komputerami użytkowników (nadawca-odbiorca) Warstwa aplikacji: zapewnia sposób oraz interfejs komunikowania się użytkowników (usługa, strona WWW, dialog, pobieranie plików etc.) 24
Warstwa łącza danych Karta sieciowa (NIC Network Interface Card) zamienia sygnały logiczne z komputera na sygnały elektryczne przekazywane przez łącza danych, i odwrotnie Karta sieciowa w komputerze stacjonarnym na złączu PCI Karta sieciowa bezprzewodowa USB 25
Adres MAC karty sieciowej Adres fizyczny karty sieciowej służy do jednoznacznej identyfikacji nadawcy/odbiorcy na poziomie łącza sieciowego Każda karta sieciowa na świecie powinna posiadać swój własny niepowtarzalny adres Struktura adresu MAC: [producent] [rodzaj i numer karty sieciowej] Przykład: E8-2A-EA-04-2F-AF producent numer seryjny 26
Warstwa transportowa Problem adresacji w sieci Problem dostarczenia danych Protokół TCP/IP (ang. Transmission Control Protocol / Internet Protocol) - bazowy protokół współczesnych sieci komputerowych TCP (warstwa transportowa) odpowiada za dialog pomiędzy nadawcą a odbiorcą w trakcie wymiany informacją (połączenie nawiązane może być w każdej chwili przerwane, zadaniem TCP jest ciągłe odpytywanie obu stron w celu zapewnienia dostarczenia danych) IP (warstwa Internetu) organizuje wymianę danych poprzez sieć Internet 27?
Adres IP Adres IP = Adres sieci + Adres urządzenia Protokół IPv4 (klasyczna wersja) wykorzystuje 4 bajty w celu przechowania adresu IP Protokół IPv6 (rozszerzona wersja) wykorzystuje 6 bajtów 1100 0000 1010 000 0000 1010 0000 0001 192. 168. 10. 1 Adres w formacie IPv4
Adres sieci IP Pierwsze 1, 2 lub 3 bajty w adresie IP przechowują adres sieci Liczba bajtów przeznaczonych na adres sieci, określa tzw. klasę sieci: A, B lub C
Maska sieci IP Jak określić podział adresu IP na adres sieci a adres urządzenia? Maska sieci = liczba wskazująca ile bajtów w adresie IP zajmuje adres sieci Adres sieci (3 bajty) Adres urządzenia w sieci (1 bajt) 1111 1111 1111 1111 1111 1111 0000 0000 255. 255. 255. 0
Maska sieci (c.d.) Klasa sieci Maska sieci Adres sieci Zakres adresów Liczba bitów w adresie sieci Liczba sieci Liczba bitów w adresie hosta Liczba hostów w sieci A B C 255.0.0.0 X.0.0.0 0 127 8 127 24 2^24 2 255.255. 0.0 255.255. 255.0 X.X.0.0 128 191 16 16384 16 2 ^ 16 2 X.X.X.0 192-223 24 2097152 8 2 ^ 8 2 = 254
Adres IP przykład prostej sieci Maska sieci: 255.255.255.0 Adres routera: 192.168.1.1 Adres komputera stacjonarnego: 192.168.1.2 Adres laptopa: 192.168.1.3 Adres drukarki sieciowej: 192.168.1.4 Router 192.168.1.1 Komp. stac. 192.168.1.2 Laptop 192.168.1.3 Sieć WiFi Adres sieci: 192.168.1.0 Drukarka 192.168.1.4
Przydzielanie adresów IP Adresy IP w ramach jednej sieci nie mogą się powtarzać każde urządzenie powinno mieć własny adres Metody nadawania adresów IP: Statyczna do każdego hosta jest przydzielany stały adres IP (np. przez administratora sieci) Prosta metoda dla małych sieci Szybkość działania Dynamiczna adres jest nadawany automatycznie przy podłączeniu się hosta do sieci Wymaga dodatkowego urządzenia w sieci: serwera adresów Host otrzymuje za każdym razem adres IP z puli wolnych adresów Protokół DHCP
Protokół DHCP ang. Dynamic Host Configuration Protokol protokół sieciowy do konfiguracji adresów komputerów w sieci DHCP Server komputer na którym zainstalowano oprogramowanie świadczące usługi DHCP DHCP Client komputer lub inne urządzenie sieciowe korzystające z usług serwera DHCP Protokół nie zależy od platformy (!)
Translacja adresów IP Adresacja komputerów poprzez liczby (adresy IP) jest zorientowana na komputer Człowiek posługuje się mnemonicznymi nazwami komputerów (hostów) DNS (ang. Domain Name System) protokół translacji nazw hostów w sieci na adresy IP (i odwrotnie)
Statyczna translacja adresów Każde urządzenie w sieci ma stały adres IP Na każdym komputerze jest przechowywany plik z adresami oraz nazwami pozostałych hostów Przy każdej zmianie konfiguracji sieci należy zmienić wszystkie pliki Własna nazwa komputera: localhost = 127.0.0.1 Adres IP Hostname 192.168.1.1 RouterWiFi 192.168.1.2 LaptopT440 192.168.1.3 DrukarkaSCX4300
Protokół DNS dynamiczna translacja adresów Serwer DNS: dodatkowe urządzenie którego celem jest: Zbieranie danych o adresach oraz IP hostów w sieci Przechowywanie tych danych Udostępnianie danych na żądanie: Wyszukiwanie IP po nazwie hosta Wyszukiwanie nazwy hosta po adresie IP (rzadziej) Rejestracja komputera na serwerze DNS
Zasoby sieciowe Urządzenia sieciowe Komputery, drukarki, streamery, plotery, skanery, kamery, itp. Foldery plików udostępnione w sieci Usługi świadczone przez serwery HTTP, FTP, DNS, DHCP, SMTP, itp. Usługi katalogowe Konta logowania użytkowników, dane użytkowników, wyszukiwarki zasobów, itp. Uprawnienia do zasobów sieciowych
Usługi sieciowe Udostępnianie plików Drukowanie sieciowe Uruchomienie aplikacji sieciowych Dostęp do Internet Poczta elektroniczna Komunikacja Zdalna praca Usługi katalogowe Etc. 39
Porty usług sieciowych Port wirtualny numer usługi świadczonej przez komputer Porty rozwiązują problem współdziałania wielu usług na jednym adresie IP Liczba całkowita 16-bitowa (2 bajty) = 0 65535 Standardowe porty: od 0 do 1024 (ang. well know ports) 21 transfer plików FTP 80 usługa WWW 143 poczta IMAP, 110 poczta POP3 443 HTTPS 1433 SQL Server Etc. 40
Porty usług sieciowych (c.d.) Port 21 Port 80 Aplikacja klienta Serwer IP 41
Sieciowy (serwerowy) system operacyjny Funkcjonalność: Zarządzanie różnorodnymi zasobami oraz urządzeniami w sieci za pomocą protokołów Zarządzanie użytkownikami oraz ich uprawnieniami Zapewnienie bezpieczeństwa sieci (uprawnienia + kopie bezpieczeństwa + kontrola dostępu) Zarządzanie aplikacjami sieciowymi Sieciowy OS tworzy dla użytkownika wirtualne stanowisko pracy udostępniając mu aplikacje oraz usługi zdalne (w odróżnieniu od programów uruchamianych lokalnie) 42
Rodziny sieciowych OS Microsoft Windows Server 2003, 2008, 2012, 2016,. Linux / Unix Istnieje wiele odmian (dystrybucji) SUSE Linux Enterprise Server Ubuntu Server Red Hat Enterprise Linux Oracle Linux Server Etc. Nowell Network Lata 90. XX wieku, obecnie działa w połączeniu z Linux jako Open Enterprise Server 43
Wymagania stawiane sieciowym OS Niezawodność Praca przez dłuższy czas bez restartów systemu Odporność na błędy aplikacji oraz użytkownika Bezobsługowa praca Bezpieczeństwo Nadawanie uprawnień, audyt, uwierzytelnianie użytkowników Rozszerzalność Dostosowanie się do zmieniającego się otoczenia (nowe urządzenia, protokoły, sprzęt, standardy i aplikacje) Kompatybilność Obsługa wielu systemów klienckich (Windows, Linux, etc.) oraz różnych wersji tego samego systemu Wysoka wydajność oraz możliwość rozbudowy 44
Popularność sieciowych OS * Wg stanu z roku 2012 45
Aplikacja sieciowa Aplikacja sieciowa rodzaj oprogramowania działającego w sieci, umożliwiające użytkownikowi wykorzystanie z wybranych usług sieciowych Aplikacja sieciowa korzysta z określonego protokołu W zależności od architektury współdziałania z innymi komputerami w sieci, wyróżniają architekturę aplikacji sieciowych 46
Architektury aplikacji sieciowych Architektura określa sposób współdziałania aplikacji sieciowych, sposób oferowania oraz korzystania z usług Architektura Peer-to-Peer Architektura Klient-Serwer Architektura wielowarstwowa 47
Architektura Peer-to-Peer Nie ma elementu centralnego Każdy z komputerów może świadczyć usługi oraz z nich korzystać Ta sama usługa może być świadczona przez wiele komputerów (lub wcale) Odporna na błędy pojedynczego komputera Problemy z zarządzaniem Kwestie bezpieczeństwa 48
Architektura klient-serwer Polega na podziale zadań przetwarzania informacji pomiędzy dostawcami usług (serwery) oraz konsumentami usług (klienci) Klienci oraz serwery mogą być zarówno urządzeniami fizycznymi tak i oprogramowaniem Sposób komunikowania się pomiędzy serwerem a klientem określa protokół 49
Architektura klient-serwer (c.d.) Scentralizowane zarządzanie usługami w sieci Zmiany konfiguracji serwera nie wymagają wprowadzania zmian na stacjach roboczych Scentralizowane udostępnianie i obróbka danych Wspólny dostęp wielu użytkowników do zasobów sieciowych Zarządzanie konfiguracją sieci z poziomu serwera Bezpieczeństwo Dane na serwerze są lepiej zabezpieczone niż na stacjach roboczych Możliwość przechowania danych użytkowników na serwerze wraz z regularnym wykonaniem kopii zapasowych Możliwość centralnej autentykacji użytkowników sieci Łączy wiele platform i systemów operacyjnych Awaria serwera może unieruchomić cała sieć Zarządzanie serwerem wymaga wysokich kwalifikacji Wysoka wydajność serwera skutkuje wysokimi kosztami jego zakupu oraz utrzymania 50
Architektury wielowarstwowe Architektura wielowarstwowa jest rozwinięciem architektury klient-serwer, w której przetwarzanie danych odbywa się na wydzielonych serwerach (warstwach). Najczęściej stosowaną architekturą jest architektura trójwarstwowa 51
Architektura wielowarstwowa (c.d.) Warstwa prezentacji interfejs aplikacji dla użytkownika końcowego Autoryzacja użytkowników Walidacja danych wprowadzanych przez klienta Prezentacja danych otrzymanych z serwera oraz ich obróbka nie wymagająca ponownego sięgania po dane do serwera (proste sortowanie, wyszukiwanie, podsumowanie itp.) Warstwa logiki biznesowej Przekształcenie danych wprowadzonych przez użytkownika, na zapytania skierowane do bazy danych Przekazanie danych uzyskanych z BD, do warstwy prezentacji Realizacja złożonych algorytmy przekształcania danych Warstwa danych Przechowanie danych oraz ich przetwarzanie Odbywa się po stronie serwera bazy danych 52
Architektura wielowarstwowa (c.d.) Zalety architektury trójwarstwowej Skalowalność Niezależność konfiguracji komponentów poszczególnych warstw Wysokie bezpieczeństwo Wysoka niezawodność Niskie wymagania w stosunku do klientów Wady architektury trójwarstwowej Wyższy koszt opracowania aplikacji Bardziej skomplikowana instalacji oraz konfiguracja aplikacji Wysoki koszt sprzętu oraz oprogramowania 53