Vývoj informačních systémů Námět na praktické cvičení Klient – Server (nepovinné)

Slides:



Advertisements
Podobné prezentace
Počítač je stroj, který vykonává pouze předem dané příkazy. Příkazy neboli instrukce jsou vykonávány procesorem, sled instrukcí neboli program ve strojovém.
Advertisements

ŘÍDÍCÍ STRUKTURY - PODMÍNKY
Vytváření, použití dávkových souborů
VISUAL BASIC Práce se soubory.
Semestrální práce KIV/PT Martin Kales Hana Hůlová.
ALGO – Algoritmizace 1. cvičení
Návrh a tvorba WWW Cvičení 6
Programování v C++ Cvičení.
UŽITEČNÉ PROGRAMY – MŮJ PRVNÍ SKRIPT Spustíme více prográmků najednou. SPŠ Teplice - 3.V.
Příklady z Matlabu 4 Příklady na řídící příkazy , IF , SWITCH , FOR , WHILE , příkazy vstupu a výstupu INPUT a DISP.
Vyhledávání dat podle určených kritérií Máte za úkol vytvořit databázi klientů v bance s jejich osobními údaji, čísly účtů a konečnými zůstatky na těchto.
Orbis pictus 21. století Tato prezentace byla vytvořena v rámci projektu.
Vyučovací hodina 1 vyučovací hodina: Opakování z minulé hodiny 5 min Nová látka 20 min Procvičení nové látky 15 min Shrnutí 5 min 2 vyučovací hodiny: Opakování.
13AMP 6. přednáška Ing. Martin Molhanec, CSc.. Co jsme se naučili naposled Synchronizace procesů Synchronizace procesů Producent-Konzument Producent-Konzument.
Aplikační proxy Centrum pro virtuální a moderní metody a formy vzdělávání na Obchodní akademii T.G. Masaryka, Kostelec nad Orlicí Autor:
Internet, WWW, HTML a spol.. Hlavní zásady inženýrství reprodukovatelnost měřitelnost a parametrizovatelnost přenositelnost typizace a standardizace dokumentace.
Architektura databází Ing. Dagmar Vítková. Centrální architektura V této architektuře jsou data i SŘBD v centrálním počítači. Tato architektura je typická.
Objektové programování
Informatika / programování
Jedenácté cvičení Vlákna. Java cv112 Vlákna Operační systém Mutitasking – více úloh se v operačním programu vykonává „současně“ Java Multithreading -
Práce se soubory Soubory se používají pro ukládání dat pro pozdější použití. Dalším a lepším způsobem jak ukládat data je použití databáze. Soubory se.
Současný svět Projekt č. CZ /3. 1
Síťové programování Informační technologie - praxe SPŠE V úžlabině Jan Klepal, Mgr. Radka Müllerová Verze 2.
Protokoly a adresy na internetu
Algoritmizace a programování Třídící algoritmy - 12
Jazyk PHP Programovací jazyk PHP (Hypertext preprocessor) je skriptovací jazyk, který běží na straně serveru. KLIENT - SERVER Server posílá do vašeho počítače.
VISUAL BASIC PRALG.
Uživatelské profily, vlastnosti uživatelského účtu
Databázové systémy I Cvičení č. 8 Fakulta elektrotechniky a informatiky Univerzita Pardubice 2013.
WWW – hypertextový informační systém
UNIX — doplňky Informatika pro ekonomy II přednáška 9.
Firewall.
AJAX nejmodernější webová technologie… seminář pro učitele ZŠ a SŠ Mgr. Marek Osuchowski Ostravská univerzita © 2011.
Úvod do JavaScriptu JavaScript je p JavaScript je programovací jazyk, který se používá na webových stránkách. JavaScript je typu KLIENT - KLIENT To znamená,
7. Typ soubor Souborem dat běžně rozumíme uspořádanou množinu dat, uloženou mimo operační paměť počítače (na disku). Pascalský soubor je abstrakcí skutečného.
URL v HTML URL - Unique Resource Locator Příklad:
Tento výukový materiál vznikl v rámci Operačního programu Vzdělávání pro konkurenceschopnost Číslo projektu: CZ.1.07/1.5.00/ Číslo materiálu: VY_32_INOVACE_PSK-4-16.
Orbis pictus 21. století Tato prezentace byla vytvořena v rámci projektu.
1 Počítače a programování 1 13.přednáška. 2 Obsah přednášky Vstupy a výstupy – 1.část.
Internet.
Seminář 12 Obsah cvičení Transportní služby Utilita nestat
Příklady v jazyku C – část 8. Napište program, který inicializuje 2-rozměrné pole uživatele (5 řádků, 2 sloupce) a naplní ho hodnotami (první sloupec.
Soubory BI-PA1 Programování a algoritmizace 1, ZS Katedra teoretické informatiky © Miroslav Balík Fakulta informačních technologií České vysoké.
Principy fungování sítě Název školyGymnázium Zlín - Lesní čtvrť Číslo projektuCZ.1.07/1.5.00/ Název projektuRozvoj žákovských.
Databázové systémy I Cvičení č. 8 Fakulta elektrotechniky a informatiky Univerzita Pardubice 2015.
Úloha 4 Ovládání motoru pomocí detekce zvuku a ultrazvuku Projekt CZ.1.07/1.1.16/ Bc. Jaroslav Zika 2014.
Úloha 1 Měření úrovně zvuku pomocí zvukového senzoru na vstupu mikroprocesoru Projekt CZ.1.07/1.1.16/ Bc. Jaroslav Zika 2014.
© Aastra Integrovaný DHCP server. © Aastra DHCP server DHCP server je určen pro distribuci IP adres a konfiguračních parametrů pro telefony.
Aktivní prvky ochrany sítí ● Filtrace, proxy, firewall ● Filtrace přenosu, zakázané adresy, aplikační protokoly ● Proxy, socks, winsocks ● Překlad adres.
 = jedná se o vzájemné propojení lokálních počítačových sítí pomocí vysokorychlostních datových spojů  vznikl spojením mnoha menších sítí  v každé.
FTP-SSL FTP-SSL Martin Dušek Martin Fúsek Josef Vlček.
Transportní vrstva v TCP/IP Dvořáčková, Kudelásková, Kozlová.
IP adresa Gymnázium a Jazyková škola s právem státní jazykové zkoušky Zlín Tematická oblastInternetové technologie, programování Datum vytvoření2012 Ročník2.
Paměti PC HDD, CD/DVD, USB Flash RAM a ROM Vnější paměť Disková paměť
Inf Bezpečný počítač.
NÁZEV ŠKOLY: S0Š Net Office, spol. s r. o., Orlová Lutyně
Linux - skripty Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Ing. Libor Otáhalík. Dostupné z Metodického portálu ISSN: 
Výukový materiál zpracován v rámci projektu
Typový příklad 3 – zadání 1
Dávkové soubory Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Ing. Libor Otáhalík. Dostupné z Metodického portálu ISSN: 
Programování v jazyce C++
Operační systémy 9. Spolupráce mezi procesy
Tato prezentace byla vytvořena
Příkazy cyklu (1) Umožňují vícekrát (nebo ani jednou) pro-vést určitý příkaz Jazyk C rozlišuje příkaz cyklu: s podmínkou na začátku: obecný tvar: while.
Průvodní list Šablona: III/2 Inovace a zkvalitnění výuky prostřednictvím ICT   Vzdělávací materiál: Prezentace – zápis pro žáky Určen pro: 4. ročník oboru.
Linux-příkazový řádek
Propojování sítí (1) Propojování sítí je možné realizovat, např. pomocí: Repeater: zesilovač, který předává veškeré informace z jedno-ho síťového segmentu.
Práce s procesy Centrum pro virtuální a moderní metody a formy vzdělávání na Obchodní akademii T.G. Masaryka, Kostelec nad Orlicí Autor:
TELNET, FTP.
Opakování ze 4. cvičení int a; printf("Zadej číslo: ");
Transkript prezentace:

Vývoj informačních systémů Námět na praktické cvičení Klient – Server (nepovinné)

Zadání Vytvoříme jednoduchý multithread HTTP server v jazyce Java Spustíme si ho na lokálním počítači A otestujeme ho Zdrojový kód je v cles/Networking/Webserver/WebServerco de.html cles/Networking/Webserver/WebServerco de.html cles/Networking/Webserver/WebServerco de.html

Hlavní myšlenky (1) Hlavní thread inicializuje server a spustí řadu pracovních threadů, které budou obsluhovat klientská spojení Pracovní thread čeká v klidovém stavu (idle), dokud se nepřipojí klient Hlavní thread přijme spojení od klienta, předá spojení pracovnímu threadu a čeká na dalšího klienta.

Hlavní myšlenky (2) V Javě je inicializace threadu spojena s řadou činností, a tedy pomalá. Proto thready nainicializujeme jen jednou, na začátku. Protože pracovní thready jsou vesměs v klidovém stavu Object.wait(), nepotřebují moc výkonu procesoru

Properties Vlastnosti HTTP serveru se nastaví v souboru:

Komentáře (1) WebServer.loadProps() (řádky 48-93) Tato metoda načte vlastnosti serveru ze souboru www-server.properties, který musí být v podadresáři lib umístěném v JAVA_HOME (=adresář, ve kterém je na vašem počítači interpreter Java)

Komentáře (2) root root je adresář, ve kterém HTTP server bude hledat soubory. Jinými slovy, root se připojí před jakoukoliv cestu k souboru, kterou zadá klient

Komentář (3) workers říká serveru, kolik pracovních threadů se má vytvořit při inicializaci. Současně to také znamená, kolik klientů může HTTP server obsluhovat současně.

Komentář (4) timeout udává počet milisekund, které má pracovní thread čekat při čtení z klientského spojení. Potom thread vygeneruje timeout a spojení ukončí. Kdyby to tak nebylo, klient by mohl server zablokovat tím, že by nekonečně dlouho otálel s příkazem

Komentář (5) log je to název souboru, do kterého se má ukládat protokol (log) práce serveru. Když není zadáno žádné jméno, protokol se vypisuje na standardní výstup.

Komentář (6) WebServer.main() zde se server inicializuje. Načte properties a vytvoří pole pracovních threadů. Poté naváže ServerSocket na lokální port našeho HTTP serveru a spustí smyčku. V ní přijímá klientská spojení a předává je pracovním threadům.

Komentář (7) třída Worker (řádky ) Třída implementuje java.lang.Runnable Běží uvnitř pracovního threadu, kde vykonává konkrétní práci se soubory. Protože v Java alokace paměti může být časově náročná, buffer (byte array) alokujeme jen jednou v konstruktoru a používáme ho opakovaně

Komentář (8) Worker.run() Pracovní thready stráví většinu života čekáním na řádce 162 ve wail(). Když přijde klientské spojení, pracovní thread se probudí a obslouží ho

Komentář (9) Worker.setSocket() (řádky ) Když přijde spojení od klienta, hlavní thread najde neaktivní pracovní thread (řádky ) a zavolá setSocket() na Worker, čímž se na Worker vyvolá notify() Tím se pracovní thread probudí z wait() setSocket() musí být synchronized, aby fungovala notify().

Komentář (10) Worker.handleClient() (řádky ) Smyčka, která načte 1. řádek klientova HTTP dotazu. Obvykle má formu GET /foo/bar/baz.html HTTP/1.0 Java nemá goto, a tak se jméno souboru musí analyzovat trochu složitěji. Jsou tam na to dvě smyčky (pokrač…)

…pokračování Vnější smyčka while() je čtecí a vnitřní smyčka for() prochází jednotlivé byty a hledá znaky konce řádku. break je sice ve vnitřní smyčce, ale fakticky způsobí i opuštění vnější smyčky.

Komentář (11) třída Worker (řádky , ) Je důležité, aby se sockety i soubory vždycky správně uzavřely (i při chybách)

Komentář (12) Worker.handleClient() (řádek 303) IP adresu klienta a který soubor požaduje, zapíšeme do logu. IP získáme voláním s.getInetAddress().getHostAddress(), kdyby se zde volala …getHostName(), bylo by to pomalé (inverzní DNS look-up) Kdo potřebuje HostName, může si to později vyhledat.

Ladění Pro ladění je skvělý HTTP header viewer, protože umí sledovat skutečnou síťovou komunikaci: – – viewer.html?noprint=true

The End