Budapest University of Technology and Economics, Faculty of Electrical Engineering and Informatics

    Belépés
    címtáras azonosítással

    vissza a tantárgylistához   nyomtatható verzió    

    Internet alkalmazások szoftver elemei

    A tantárgy angol neve: Software Elements of Internet Applications

    Adatlap utolsó módosítása: 2009. április 1.

    Tantárgy lejárati dátuma: 2011. december 16.

    Budapesti Műszaki és Gazdaságtudományi Egyetem
    Villamosmérnöki és Informatikai Kar

    Villamosmérnöki Szak

    BSc képzés

    Szabadon választható tantárgy

    Tantárgykód Szemeszter Követelmények Kredit Tantárgyfélév
    VIIIAV94   3/0/1/v 4  
    3. A tantárgyfelelős személy és tanszék Dr. Szeberényi Imre,
    4. A tantárgy előadója

    Dr. Harangozó József egyetemi docens, Irányítástechnika és Informatika Tanszék.

    Dr. Szeberényi Imre egyetemi docens Irányítástechnika és Informatika Tanszék

    5. A tantárgy az alábbi témakörök ismeretére épít

    Informatika 2. (VIAUA300)

    A programozás alapjai 1. (VIHIA106)

    6. Előtanulmányi rend
    Kötelező:
    NEM KépzésLétezik("5N-08") VAGY
    NEM KépzésLétezik("5N-A8") VAGY
    NEM KépzésLétezik("5N-M8")

    A fenti forma a Neptun sajátja, ezen technikai okokból nem változtattunk.

    A kötelező előtanulmányi rendek grafikus formában itt láthatók.

    Ajánlott:
    -

    A tárgy felvétele elsősorban a villamosmérnöki szak hallgatóinak (BSc-s képzésben résztvevőknek) ajánlott.

    Tematikaütközés miatt a tárgyat csak azok vehetik fel, akik korábban nem hallgatták a következő tárgyakat:

    Neptun-kód       Cím

    A Villamosmérnöki szakon nincs tematikaütközés.

    7. A tantárgy célkitűzése

    Az Interneten elérhető legfontosabb szolgáltatások nyújtásához szükséges hálózati szoftver elemek felépítésének és működésének megismertetése, gyakorlati ismeretek nyújtása ilyen szoftver elemek kifejlesztéséhez.

    8. A tantárgy részletes tematikája

    1.    hét: Bevezetés

    Az Internet mint infrastruktúra és mint szolgáltatások halmaza. Milyen típusú hálózatok vannak az Interneten? Milyen elemekből áll az Internet (a hálózat széle vagy hozzáférési hálózatok, a hálózat közepe vagy magja)? Milyen az Internet felépítése, struktúrája? Számítógép-hálózati architektúra, hivatkozási modellek (rétegek, protokollok, szolgálatok, szolgálati modell, adategységek, relációk a rétegek között, beágyazás, kibontás, kommunikáció két távoli folyamat között, hivatkozási modellek, OSI, TCP/IP)?

     

    2. hét: Az internet alkalmazások alapelvei

     

                Milyen szolgáltatásokat nyújt az Internet (példák)? Hogyan lehet alkalmazást létrehozni? Milyen alkalmazási architektúrák lehetnek? Alkalmazási folyamatok között milyen viszony lehet? Mi a jellemzője egy tiszta kliens-szerver architektúrának (példák)? Mi a jellemzője egy tiszta P2P architektúrának (példák)? Mi a jellemzője egy hibrid architektúrának (példák)? Milyen interfész van az alkalmazást támogató folyamat és a szállítási réteg között? Hogyan érik el egymást a távoli folyamatok (azonosítók használata)? Egy alkalmazási protokoll milyen elemeket specifikál? Mi a különbség az alkalmazás és az alkalmazási protokoll között (példák)? Milyen tulajdonságok határozzák meg a szállítási szolgáltatás minőségét? Melyek a veszteségtűrő alkalmazások? Melyek a sávszélesség-érzékeny alkalmazások? Melyek a késleltetés-érzékeny alkalmazások? Melyek a rugalmas alkalmazások? Az ismert alkalmazások milyen szállítási minőségi követelményeket támasztanak? Az Internet szállítási protokolljai milyen szolgáltatást nyújtanak? Az ismert Internet alkalmazások milyen alkalmazási és szállítási protokollt használnak?

     

    3. hét: TCP-szoketprogramozás

    A hálózati alkalmazások milyen típusú protokollok alapján készülhetnek? Példák.  Melyek a programfejlesztés lépései? Mit neveznek szoketnek? Mit neveznek szoketprogramozásnak? Milyen szállítási szintű szolgálatokon alapulhatnak a szoketprogramok? Mi a különbség a TCP-szoketprogramozás és az UDP-szoketprogramozás között? Mi az adatfolyam? Milyen folyamok vannak a kliens folyamat modelljében? Milyen folyamok vannak a szerver folyamat modelljében? Mi ezek szerepe? A szoketek létrehozásakor mire kell figyelni? Az alkalmazás futtatása milyen lépéseket igényel? Van-e meghatározott sorrend? Példák.

     

    4. hét: UDP-szoketprogramozás

    Mik az UDP-szoketprogramozás sajátosságai? Mit jelent az üzenet alapú szállítás? A kliens programozása különbözik-e a TCP-szoketprogramozásbeli kliens programozásától? Létrehoz-e folyamot? A kliens-szoket osztálya különbözik-e a TCP-szoketprogramozásnál létrehozott kliens-szoket osztályától? A szerver esetén van-e különbség a programozásban? Létrehoz-e folyamot? A szerver-szoket osztálya különbözik-e a TCP-szoketprogramozásnál létrehozott szerver-szoket osztályától? Milyen részekből tevődik össze a csomag elküldés előtt? Miért van ezekre szükség? A szoketek létrehozásakor mire kell figyelni? Az alkalmazás futtatása milyen lépéseket igényel? Van-e meghatározott sorrend? Példák.

     

    5. –  6. hét: A web és a HTTP

    Melyek a web vonzerejének legfontosabb tényezői? Mi a weboldal és az objektum? Milyen reláció van köztük?  Példák. Mi az URL? Példák az URL más protokollokkal történő alkalmazására. Mi az URN? Miért lenne jó? Milyen architektúrájú a web? Melyek a kommunikáló folyamatok, milyen implementációkat ismer? Példák. Milyen szállítási szolgáltató szolgálja ki a webet? Hogyan működik? Mit jelent a HTTP állapotnélkülisége (példán)? Hogyan jellemezhető az időleges HTTP? Példák. Hogyan jellemezhető az állandó HTTP? Példák. Hogyan néz ki a http-kérésüzenet formátuma? Melyek a használatos fontosabb metódusok? Mi ezek funkciója? Példák. Hogyan néz ki a http-válaszüzenet formátuma? Melyek a használatos fontosabb állapotkódok és üzenetek? Mi ezek jelentése? Példák. Mi a szerepe a sütiknek? Megoldására milyen módszert használnak? Hol alkalmazzák? Milyen előnyökkel és hátrányokkal jár alkalmazása? Milyen tipikus alkalmazásoknál van szerepe a sütinek? Milyen a belső szerkezete? Milyen visszaélések lehetségesek a sütikkel? A webszerver kiszolgálási sebességének növelésére milyen módszerek ismeretesek? Hogyan működik a többszálú felépítés v1. változata? Mi az egyes modulok szerepe? Mekkora hatékonyságnövekedés várható? Hogyan működik a többszálú felépítés v2. változata? Mi az egyes modulok szerepe? Mekkora hatékonyságnövekedés várható? A feldolgozómodul a kliens kérésének teljesítésén kívül milyen egyéb tevékenységeket végez? Az egyszálú többlemezes megoldásnak milyen nehézségei vannak? Hogyan működik a szerverfarm? Milyen előnyökkel és milyen gondokkal kell számolni? A gondokra milyen megoldások ismeretesek? A webszolgáltatás teljesítőképességével kapcsolatban milyen gondok vannak? Melyek a teljesítménynövelés fontosabb módszerei? Hogyan történik a webes gyorstárazás? Hogyan növeli ez a szolgáltatás teljesítőképességét? Példa. A hálózatban hol történhet a gyorstárazás? Mi az előnye és a hátránya ezeknek a gyorstárazási helyeknek? Mennyi ideig tárolják a gyorstárak az objektumokat? Milyen módszereket használnak erre a célra? Milyen célt szolgál a feltételes GET HTTP-kérésüzenet? Példák. A webszerver többszörözésére milyen módszereket ismer? Példák. Mi a szerepe a tartalomközvetítő hálózatoknak? Mit nevezünk tartalomnak? Milyen hatékonyságnövelő szerepe van az ilyen hálózatoknak? Példák. Egy tartalomközvetítő hálózat kiépítésének mi a folyamata? Példák. Milyen előfeldolgozás szükséges a tartalomszolgáltató által megadott leíráson tartalomközvetítés végett? Példák. Hogyan történik egy végfelhasználó kiszolgálása tartalomközvetítő hálózaton keresztül, ha a felhasználó egy képet szeretne lekérni? Mi a tartalomszolgáltató és mi a tartalomközvetítő szerepe? Példák.

     

    7. hét: Fájátvitel és az FTP

     

    Mi a fájlátviteli rendszer feladata? Milyen funkciókat valósít meg? Milyen adattípusokat, adatszerkezeteket definiál? Milyen fájlátviteli módokat definiál? A fájlátviteli rendszer milyen elemeket tartalmaz, ezeknek mi a feladata? Az elemek között milyen összeköttetések lehetnek? Ezeknek mi a jellemzője? Hogyan néz ki az FTP-parancsok formátuma? Milyen fontosabb parancsokat ismer? Mi ezek funkciója? Példák. Hogyan néz ki az FTP-válaszok formátuma? Milyen fontosabb válaszokat ismer? Mi ezek jelentése? Példák. A sávon belüli és sávon kívüli vezérlés jellemzése. Példák. Az állapottal rendelkező és az állapotnélküli kapcsolatok jellemzése alkalmazási folyamatok együttműködésénél. Példák. Egy FTP-szerver működése több kliens egyidejű kiszolgálása esetén.

     

    8. – 9. hét: Elektronikus levelezés

    Az elektronikus levelező rendszernek melyek a főbb komponensei? Mi ezek feladata? Hogyan történik a levélüzenet előállítása és továbbítása két felhasználó között? Példák. Az SMTP protokoll modellje. A legfontosabb parancsok és válaszok. Példák a kliens és a szerver közötti együttműködésre. Hogyan történik több üzenet elküldése? Mely tulajdonságok azonosak, és mely tulajdonságok különbözőek a HTTP és az SMTP összehasonlításakor? Hogyan néz ki az SMtp levélüzenet formátuma? Melyek a fejlécben használatos fontosabb sorok? Példák. Multimédia kiterjesztés esetén hogyan történik a fejrész kibővítése? Milyen új sorok szükségesek? A törzs hogyan változik? A fogadott és továbbadott levélüzenet milyen további fejlécsorokat tartalmazhat? Mi a jelentése ezeknek? Milyen gondok merülnek fel a levélüzenetnek levelezőszerverről történő letöltésekor? Hogyan történik a levelekhez való hozzáférés? Példák. Levélkézbesítő (levél-hozzáférést biztosító) protokollok. Mi ezek szolgáltatásai, jellemzői? Képességeik összehasonlítása, előnyös és hátrányos tulajdonságaik. Hogyan történik a webalapú levelező rendszer kialakítása? Mely protokoll alkalmas erre a célra? Hogyan történik a levélüzenet előállítása, továbbítása, kézbesítése ebben a rendszerben? Példák.

     

    10. hét: Körzetnév-kezelés és a DNS

     

    A hosztok azonosítása hogyan történik az internetben? A körzetnév-kezelő rendszer név milyen szolgáltatásokat és protokollt takar? Hogyan történik egy böngésző által adott körzetnév feloldása? Melyek a körzetnév-kezelő rendszer főbb elemei? Melyek ezek funkciói? A DNS-névtér felépítése, szerepe, kapcsolata a DNS adatbázishoz, az erőforrás rekordokhoz és a névszerverekhez. Példák. Mi a szerepe a DNS rekordoknak? Milyen formátumuk van? Milyen típusokat ismer? Példák. Hogyan tudjuk megkeresni saját névszerverünk körzetnevét és IP-címét? Saját webszerverünk körzetnevét és IP-címét? Saját levelező-szerverünk körzetnevét és IP-címét? Saját körzetünk névszervereinek kanonikus nevét? Az elosztott hierarchikus adatbázisban milyen névszervereket ismer? Mi ezeknek a szerepe? Hogyan történik a névfeloldás a hierarchia figyelembevételével? Mi a különbség a gyökér-névszerver, a TLD és a hiteles névszerver között? Mikor melyiket használják? Mi az abszolút és a relatív körzetnév közötti különbség? Mikor melyiket használják? Mi a zónák szerepe? Mi az elsődleges és másodlagos névszerver? Mikor melyiket használják? Mi a hiteles névszerver? Mi a feladata? Mikor használják? Mi a helyi névszerver? Mi a szerepe? Mi az iteratív lekérdezés lényege? Példák. Honnan tudja a névszerver, hogy iteratív lekérdezést várnak tőle? Mi a rekurzív lekérdezés lényege? Példák. Honnan tudja a névszerver, hogy rekurzív lekérdezést várnak tőle? Távoli körzet nevének feloldása hogyan történik? Példák. Hogyan történik a DNS gyorstárazás? Hol történik? Meddig tárolódnak a bejegyzések? Példák. Hogyan néz ki a DNS kérés- és válaszüzentet formátuma? Milyen fontosabb mezőket tartalmaz a fejléc és a törzs? Mi ezek funkciója? Példák. Hogyan tudunk a DNS adatbázishoz hozzáférni, onnan adatot letölteni? Hogyan lehet az adatbázisba adatot bevinni? Hogyan történik az erőforrás rekordok adatainak beírása?

     

    11. hét: P2P alkalmazások

     

    Szétosztási idő számítása nagyméretű fájl sok hosztra történő szétosztása esetén P2P esetben és kliens-szerver esetben? Miért tekintik a P2P architektúrát önskálázónak? A hosztok száma és a szétosztási idő közötti összefüggés a két architektúra esetén? BitTorrent esetén mit neveznek torrentnek? Mi a torrent fájl? Mi a töredék, a boly, a magosztó? Mi a nyomkövető, és mi a szerepe? BitTorrent esetén hogyan történik a fájl szétosztása , továbbítása, vétele és összerakása? Milyen jogokkal és kötelezettségekkel rendelkezik egy társ? Milyen algoritmust használnak a szomszédokkal történő adok-kapok együttműködés során? Milyen indexelési eljárások ismeretesek? Milyen eljárást használnak fájlmegosztás esetén? Milyen megoldást használnak azonnali üzenetküldés esetén? Mi a központosított indexelés lényege? Ez melyik fájlcserélő rendszer jellemzője? Mik az előnyei és hátrányai? Mi az elosztott információkeresés lényege? Ez melyik fájlcserélő rendszer jellemzője, és mik az előnyei és hátrányai? Mi a hierarchikus átlapolás lényege? Melyik fájlcserélő rendszer jellemzője? Mik az előnyei és hátrányai? Milyen felépítésű a Skype rendszer? Milyen elemei vannak, Hogyan történik a bejelentkezés? Hogyan történik a partner megkeresése? Hogyan történik az üzenetek átvitele? Hogyan történik a NAT mögötti társak kommunikációja?

     

    12. – 13. hét: Webalkalmazások

     

    A böngésző hogyan jeleníti meg a HTML-fájlokat és a nem HTML fájlokat? Hogyan a MIME típusú fájlokat? Példák. Hogyan történik a böngésző bővítése bedolgozó (plug-in) modulokkal? Példák. Hogyan történik a böngésző bővítése segédalkalmazással? Példák. Hogyan történik helyi fájlok megjelenítése a böngészővel? Példák. Mi a statikus weblap jellemzője? Hogyan történik az előállítása? Milyen weblap-leíró eszközt ismer? Milyen jellemzői ismeretesek e leíró eszköznek? Alkalmas-e szöveges és egyéb formátumok leírására? Alkalmas-e táblázatok leírására? Alkalmas-e betűtípus, betűnagyság, betűszín, keretező vonal leírására? Melyek a HTML legfontosabb formázó parancsai (címkéi)? Példák. Hogyan történik az űrlap leírása HTML-lel? A leírásnak milyen szerkezete van? Milyen címkék jelölik e részeket? A HTML alkalmas-e a weblap struktúrájának leírására? Melyek az XML és az XSL fontosabb jellemzői? Példák. Miben különbözik az XHTML a HTML 4.0-tól? Mi a szerepe a CSS-nek? Példák. Miben különböznek egymástól a statikus és a dinamikus weblapok? A dinamikus weblapok előállításnak milyen lehetőségei ismeretesek? Honnan tudja a szerver, hogy a klienstől kapott kérésre milyen választ adjon? Hogyan történik a dinamikus weblapok előállítása a szerver oldalán, ha a klienstől kapott kérésben űrlap adatok vannak? Mi a CGI? Mi a CGI-szkript? Hogyan fut a CGI-szkript? Hogyan történik az űrlap feldolgozása CGI-szkripttel? Hogyan történik a dinamikus tartalom előállítása PHP-szkripttel? Példa űrlap kezelésére. Hogyan fut a PHP-szkript a szerveren? Dinamikus tartalom előállítása JSP és ASP alkalmazásával hogyan történik? Hogyan futnak ezek űrlapkezelés esetén? Miben egyeznek ezek a PHP-val és miben különböznek a PHP-től? Dinamikus weblap előállítása a kliens oldalán milyen indokkal, és hogyan történik? Milyen leíró eszköz lehet?  Példa a kliens oldali weblap előállítására JavaScript nyelven. Ez mennyiben HTML? Mennyiben nem? Kliens oldali dinamikus weblap előállítása kisalkalmazással és ActiveX-szel hogyan valósítható meg? Mik ezek jellemzői? Milyen lényeges különbségek vannak a dinamikus weblapok szerver oldali és kliens oldali előállítása között? Példák.

     

    14. hét: Biztonságos internet alkalmazások

     

    Biztonságos Telnet: SSH. Biztonságos fájlátvitel: SCP, SFTP. Biztonságos elektronikus levelezés: PGP, PEM, S/MIME. Biztonságos webszolgáltatás: HTTPS. Biztonságos DNS: DNSsec.

    9. A tantárgy oktatásának módja (előadás, gyakorlat, laboratórium)

    Heti 4 órában félévi átlagban heti 3 óra elmélet és 1 óra gyakorlati anyag kerül feldolgozásra. Az elméleti anyag előadása tanteremben, a gyakorlati anyag, a témakörhöz kapcsolódó feladatok megoldásának bemutatása tanszéki laboratóriumban történik.

    10. Követelmények

    a./ Zárthelyi:

                  - témazáró zárthelyi feladatok megoldása a 7. és a 12. tanulmányi héten

              b./ Otthoni feladat:

                   - egy otthoni feladat megoldása:          kiadása a 3. tanulmányi héten,

                                                                           beadása a 13. tanulmányi héten

    c./ Aláírás:

    - csak az kap aláírást, aki minden félévközi követelménynek a pótlási hét végére eleget tesz.

    d./ Vizsga:

         - írásbeli vizsga

    - aki a zárthelyi feladatokat átlagban legalább 85 % eredménnyel teljesíti és a otthoni feladata kiváló minősítésű, megajánlott jeles osztályzatot kap, nem kell vizsgáznia.

    11. Pótlási lehetőségek

    A szorgalmi időszakban a zárthelyi feladatok egyszer pótolhatók. A pótlási héten egy zárthelyi feladat pótolható, valamint az  otthoni feladat beadása pótolható. A vizsgaidőszakban semmilyen pótlási lehetőség nincs.

    12. Konzultációs lehetőségek

    Igény szerint, előzetes megbeszélés alapján.

    13. Jegyzet, tankönyv, felhasználható irodalom

    Könyv: J.F. Kurose – K.W. Ross: Számítógép-hálózatok működése - alkalmazásorientált megközelítés. Panem Könyvkiadó, 2009.

    Könyv: A. Tanenbaum: Számítógép-hálózatok. Panem Könyvkiadó, 2004

    Az előadások vázlatának elektronikus változata.

     

    14. A tantárgy elvégzéséhez átlagosan szükséges tanulmányi munka
    Kontakt óra56
    Félévközi készülés órákra10
    Felkészülés zárthelyire10
    Házi feladat elkészítése14
    Kijelölt írásos tananyag elsajátítása...
    Vizsgafelkészülés30
    Összesen120
    15. A tantárgy tematikáját kidolgozta
    Név:

     

    Beosztás:

     

    Tanszék, Int.:

     

    Dr. Harangozó József

     

    egyetemi docens

     

    Irányítástechnika és Informatika

     

    Dr. Szeberényi Imre

     

    egyetemi docens

     

    Irányítástechnika és Informatika