Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

1 Fejlett Programozási Technikák 2. 15/1. Fejlett Programozási Technológiák 2. 2 Bilicki Vilmos

Hasonló előadás


Az előadások a következő témára: "1 Fejlett Programozási Technikák 2. 15/1. Fejlett Programozási Technológiák 2. 2 Bilicki Vilmos"— Előadás másolata:

1 1 Fejlett Programozási Technikák 2. 15/1

2 Fejlett Programozási Technológiák 2. 2 Bilicki Vilmos Árpád tér 49.-es szoba 3408-as mellék

3 Fejlett Programozási Technológiák 2. 3 Követelmények, tudnivalók Vizsga év végén (80 pont) Gyakorlat: (40 pont)  Egy dolgozat (10 pont)  Egy projekt (20 pont)  Egy zárthelyi (10 pont) Órai aktivitás 10 pont Weboldal :

4 Fejlett Programozási Technológiák 2. 4 Hirdetmény Imagine Cup ( ) )  Szoftvertervezés  Office tervezés kategória  Algoritmus  Rövidfilm  Technológiai üzleti terv  Animáció  IT  Web fejlesztés  Vizuális játék

5 Fejlett Programozási Technológiák 2. 5 A tantárgy célkitűzése Modern technológiák bemutatása, megismerése  Menedzselt kódra épülő rendszerek  Webes rendszerek  Elosztott rendszerek  Skálázható, robosztus rendszerek

6 Fejlett Programozási Technológiák 2. 6 Tematika I. 1,2 Előadás  Elosztott Rendszerek  Alapok  Technológiák: HTTP, HTML, XML, XSD, XPATH, XSLT 3. Előadás menedzselt kód (Java 1.5)  JVM  JAR 4. Előadás  Java hibakezelés  Java szálkezelés 5. Előadás  Ant  JUnit  CVS  Log4J  JMeter  Eclipse

7 Fejlett Programozási Technológiák 2. 7 Tematika II. 6. Előadás  Java Swing 7. Előadás  Java Applet  JDBC 8. Előadás  Java és a biztonság 9. Előadás  Java Servlet 10. Előadás  Java Server Pages 11. Előadás  Middleware problémák és megoldások  Perzisztencia, Távoli objektum elérés, …  Corba

8 Fejlett Programozási Technológiák 2. 8 Tematika III. 12. Előadás  J2EE, EJB 13. Előadás  Webes szolgáltatások 14. Előadás .NET 15. Előadás  ADO.NET

9 Fejlett Programozási Technológiák 2. 9 A Mai előadás tartalma Elosztott rendszerek  Mik az elosztott rendszerek?  Példák elosztott rendszerekre  Elosztott rendszerek követelményei  Átlátszóság az elosztott rendszerekben HTTP  Felépítése  Biztonság  HTTPS HTML  Funkciója  Megjelenítés  Események  Adatbevitel XML  Funkciója  Kapcsolatos technológiák

10 Fejlett Programozási Technológiák Irodalom a tantárgyhoz Könyvek:  Wolfgang Emmerich: Engineering Distributed Objects  A. Ebenhart, S. Fisher: Java Tools  Ed Roman: Mastering Enterprise Java Beans  Don Box: Essential XML Web:   

11 Fejlett Programozási Technológiák Irodalom a mai előadáshoz: A. Ebenhart, S. Fisher: Java Tools Wolfgang Emmerich: Engineering Distributed Objects Jegyzet a weblapon (egyre elavultabb…) -vazlat.html -vazlat.html

12 Fejlett Programozási Technológiák Számítógép rendszerek 1950 katonai célok  Titkosítás, visszafejtés 1960 kötegelt feldolgozás  Nem interaktív 1970 Mainframe  Időosztásos interaktív 1980 PC  Az asztali gép felé irányult a figyelem  Elosztott információ feldolgozás (Autonóm rendszerek) 1990 Vállalati információs rendszerek (Enterprise Computing)  Megbízható adatátvitel (sávszélesség, válaszidő)  Központi fájl, Adatbázis, Alkalmazás szerverek + PC-k  Elosztott rendszerek

13 Fejlett Programozási Technológiák Elosztott rendszer Az elosztott rendszer ismérvei:  Skálázhatóság – a rendszer tetszőlegesen bővíthető  Nyílt rendszer – képes más rendszerekkel is együttműködni, a régi elemekkel is  Heterogén – Több különböző alkalmazás, platform is képes az együttműködésre  Erőforrás megosztás  Hibatűrés – kritikus komponensek többszörözése, …  … Definíció:  Autonóm gépek olyan halmaza melyek számítógép hálózattal vannak összekötve. Minden gép szoftver komponenseket futtat és egy olyan középréteget üzemeltet mely lehetővé teszi a különböző komponensek koordinálását úgy, hogy a felhasználók számára a rendszer egy gépnek tűnik. (Áttetszőség) Leslie Lamport:  „Olyan rendszer melyben a munkám olyan komponensek hibája érinti melyek létezéséről nem is tudtam”

14 Fejlett Programozási Technológiák Elosztott rendszer User Node B Node C Node F Node E Node A Node D Komponens … Hálózati Operációs Rendszer Hardver HOST Komponens … Hálózati Operációs Rendszer Hardver HOST Középréteg (Middleware)

15 Fejlett Programozási Technológiák Elosztott vs. Központosított rendszer Központosított rendszer  A komponensek nem autonómok  Homogén technológia (hatékony kommunikáció)  Több felhasználó is használhatja egy időben  Akár egy processzben és egy szálban futó alkalmazás  Egy központi vezérlés, hiba pont (ritka a kommunikációs hiba) Elosztott rendszer  Autonóm komponensek, nincs mester komponens  Heterogén technológia  Komponensek között eloszlik a terhelés, a komponensekhez exkluzív használati jog is tartozhat  Párhuzamos végrehajtás (komponensenként vagy ezeken belül is)  Több meghibásodási pont

16 Fejlett Programozási Technológiák Példák: SZTE – LanStore: Elosztott tárolás (.NET C#)  200 gép x 20 Gbyte = 4 TByte  Párhuzamos hozzáférés -> nagyságrendekkel gyorsabb mint egy fájlszerver  Pl.: Video On Demand Video-on-Demand (Java, C++)  Hong Kong  előfizető Repülő konfiguráció menedzsment (meglévő komponensekből építette fel)  Boeing  Minden gép minden alkatrésze, javításnál azonnal szükség van az adott dokumentumokra  1,5 milliárd alkatrész évente (3 millió gépenként)  A MainFrame nem bírta a terhelést Google  Több mint mezei PC  Napi 200 millió keresés  Több 100 millió weboldal (tömörítve, …)  Nagyfokú redundancia

17 Fejlett Programozási Technológiák Skálázhatóság Tervezés (pl. elektromos rendszer) A terhelés mértéke: Online user, tranzakció szám, … Elektromos rendszer – elvárjuk az állandó szolgáltatást A szolgáltatás minőség fontos! A szoftver rendszereket is így kellene tervezni… Skálázható egy rendszer ha a ma még nem látható terhelésnövekedéseket is elviseli Internet, e-business, B2C, …

18 Fejlett Programozási Technológiák Nyílt rendszer Könnyen bővíthető, módosítható A tervezésnél szabványos technológiák, megoldások (pl.: tervezési minták,…)  Jól definiált interfészek  Jól definiált szolgáltatások Együtt fejlődik az intézménnyel Az egyszer befektetett idő/pénz ne menjen veszendőbe

19 Fejlett Programozási Technológiák Heterogén rendszer Külön-külön vásárolt komponensek  Hardver  OS  Hálózati protokoll  Programozási nyelv Gyakran autonóm egységeknek kell együttműködniük Heterogén komponensek integrálása

20 Fejlett Programozási Technológiák Erőforrás hozzáférés és megosztás Erőforrás  Hardver  Szoftver  Adat Többen használhatnak egy erőforrást  Biztonsági megfontolások  Ki mikor, hogyan férhet hozzá Elosztott objektum foglalja magába az erőforrást N rétegű alkalmazás

21 Fejlett Programozási Technológiák Hibatűrés Merevlemez 2-5 év a várható élettartam Hibatűrő az a rendszer amely hibák fellépése esetén is folytatni tudja működését Ideális esetben emberi beavatkozás nélkül (pl.: EJB tároló, cluster) Redundáns elemek, replikáció

22 Fejlett Programozási Technológiák Az elosztott rendszer tulajdonságai ANSA 1989, ISO/IEC 1996 International Standard on Open Distributed Processing  Helyszín áttetszőség  Hozzáférés áttetszőség  Replikáció áttetszőség  Hiba áttetszőség  Párhuzamosság áttetszőség  Migráció áttetszőség  Feladat áttetszőség  Teljesítmény áttetszőség  Skálázás áttetszőség  Programozási nyelv áttetszőség Az elosztott rendszer mérőléce (middleware mérőléce) (Áttetszőség – Transparency)

23 Fejlett Programozási Technológiák Hozzáférés áttetszőség A helyi és a távoli hozzáférés interfész azonos Pl.: NFS – a helyi gépen lévő erőforrásokat ugyanúgy érem el mint a távoliakat (azonosak a függvényhívások is) Az ilyen komponensekre épülő komponensek könnyen áthelyezhetőek egyik helyről a másikra

24 Fejlett Programozási Technológiák Helyszín áttetszőség Nem kell tudnunk a komponens pontos helyét, van egy olyan mechanizmus mellyel megtaláljuk és megcímezzük Pl.: NFS – a felhasználóknak nem kell tudniuk a szerver IP címét

25 Fejlett Programozási Technológiák Migráció áttetszőség A komponensek tetszés szerint mozgathatóak a hostok között anélkül, hogy a felhasználó ezt érzékelné és módosítanunk kellene más komponenseket Függ helyszín és hozzáférés áttetszőségtől

26 Fejlett Programozási Technológiák Replikáció áttetszőség Replikák Adott komponens több helyen is megtalálható Replikáció Ha állapottal rendelkezik akkor ezt szinkronizálni kell minden példányban A felhasználó és a többi komponens nem veszi észre, hogy másolatot használ Nagyobb teljesítmény, hibatűrés

27 Fejlett Programozási Technológiák Párhuzamosság áttetszőség Az egyes komponensek egy időben használhatják a megosztott erőforrásokat anélkül, hogy ez fennakadást okozna. A felhasználó nem veszi észre, hogy más ia használja a rendszert Jó esetben sem az alkalmazás tervező sem a felhasználó sem foglalkozik vele (a middleware feladata)

28 Fejlett Programozási Technológiák Teljesítmény áttetszőség Sem az alkalmazás fejlesztő sem a felhasználó nem tudja hogyan éri el a rendszer az adott teljesítményt Middleware dolga (ma még kevés tudja autómatikusan)  Replikáció  Load Balancing

29 Fejlett Programozási Technológiák Hiba áttetszőség Sem a felhasználó sem az alkalmazás fejlesztő nem tudja hogyan kezeli a rendszer a hibákat Nem veszik észre a hibákat Pl.: bank automata

30 Fejlett Programozási Technológiák Internet, Web alkalmazások architektúrája N rétegű architektúrák Vékony kliens Biztonsági megfontolások Skálázhatóság

31 Fejlett Programozási Technológiák Két rétegű Kliens - megjelenítés Minden más egy szerveren

32 Fejlett Programozási Technológiák rétegű Kliens – megjelenítés Webszerver Adatbázis szerver (Címtár, …)

33 Fejlett Programozási Technológiák rétegű Kliens – megjelenítés Web szerver Középréteg (Middleware) Adatbázis szerverek (Fájl, Adatbázis, Címtár, …)

34 Fejlett Programozási Technológiák Középréteg Tranzakció orientált középréteg  Tranzakciók integrálása több különböző adatbázis-kezelőn, adatbázison át  IBM CISC, Tuxedo Üzenet orientált középréteg  Megbízható üzenetküldés  IBM MQSeries, MSMQ Objektum Orientált középréteg  Corba  RMI  COM …

35 Fejlett Programozási Technológiák HTTP (Hyper Text Transfer Protocol) Kliens-szerver modell Állapotmentes Alkalmazásszintű protokol Megbízható átviteli közegre épül Új fogalmak:  Webszerver  Proxy szerver

36 Fejlett Programozási Technológiák HTTP 1.1 Kapcsolatorientált Részletes proxy specifikáció 80-as port URI (Universal Resource Identifier)

37 Fejlett Programozási Technológiák URI Rfc2396 : :// ? US-ASCII Más karaterek: % URL HTTP specifikus: URL (Universal Resource Locator) http : // host [ : ] [ port ] [ abszolút-útvonal [ ? query ] ] Relatív útvonal

38 Fejlett Programozási Technológiák HTTP üzenetek Kérés (request) Válasz (response)  kezdő sor  fejléc sorok  üres sor  az üzenet tartalma

39 Fejlett Programozási Technológiák Kérés üzenetek(kezdő sor) GET OPTIONS POST HEAD TRACE

40 Fejlett Programozási Technológiák GET GET / HTTP/1.1 Host: sirius.cab.u-szeged.hu HTTP/ OK Date: Thu, 13 Dec :55:37 GMT Server: Apache/ (Unix) PHP/4.0.6 Transfer-Encoding: chunked Content-Type: text/html 8a0 Irinyi Kabinet

41 Fejlett Programozási Technológiák OPTIONS OPTIONS /cgi-bin/szotarE HTTP/1.1 Host: sirius.cab.u-szeged.hu HTTP/ OK Date: Mon, 17 Dec :05:54 GMT Server: Apache/ (Unix) PHP/4.0.6 Content-Length: 0 Allow: GET, HEAD, POST, OPTIONS, TRACE

42 Fejlett Programozási Technológiák HEAD HEAD /teszt/ HTTP/1.1 Host: wilma.cab.u-szeged.hu HTTP/ OK Server: Microsoft-IIS/5.0 Cache-Control: max-age=86400 Expires: Tue, 18 Dec :47:33 GMT Content-Location: Date: Mon, 17 Dec :47:33 GMT Content-Type: text/html Accept-Ranges: bytes Last-Modified: Mon, 17 Dec :03:32 GMT ETag: "fc50cd9c387c11:88e" Content-Length: 83

43 Fejlett Programozási Technológiák POST POST /teszt/ HTTP/1.1 Host: wiliam.u-szeged.hu adat: research

44 Fejlett Programozási Technológiák TRACE TRACE / HTTP/1.1 Host: wiliam.u-szeged.hu Adat: research HTTP/ OK Server: Netscape-Enterprise/6.0 Date: Sun, 23 Dec :49:45 GMT Content-type: message/http Content-length: 62 TRACE / HTTP/1.1 Host: wiliam.u-szeged.hu Adat: research

45 Fejlett Programozási Technológiák Egyéb CONNECT DELETE PUT

46 Fejlett Programozási Technológiák Fejléc mezők Host If-Modified-Since User-Agent Adat: research …

47 Fejlett Programozási Technológiák Válasz üzenet Állapot mező Válasz fejléc mezők Erőforrás  erőforrás fejléc  erőforrás tartalom

48 Fejlett Programozási Technológiák Állapot mezők 1xx – Információs 2xx – Siker 3xx – Átirányítás 4xx – Kliens oldali hiba 5xx – Szerver oldali hiba

49 Fejlett Programozási Technológiák Válasz fejléc WWW-Authenticate Age Cache-Control Expires Content-Type

50 Fejlett Programozási Technológiák Biztonság HTTP -> magas rendelkezésre állás Más szempontok: adatok titkossága adatok megbízhatósága egyének azonosítása Azonosítási eljárások Basic Authentication Digest Authentication

51 Fejlett Programozási Technológiák Basic Authentication UID Password Realm HTTP/ Authorization Required

52 Fejlett Programozási Technológiák Példa HTTP/ Authorization Required Date: Fri, 28 Dec :24:32 GMT Server: Apache/ (Unix) PHP/4.0.6 X-Powered-By: PHP/4.0.6 WWW-Authenticate: Basic realm="My Realm" Transfer-Encoding: chunked Content-Type: text/html Authorization: Basic base64(user:pass)

53 Fejlett Programozási Technológiák Hátrányok Nem biztonságos  Lehallgatható  Nem titkosított  Nincs megoldva a jelszó elosztása Használata mellőzendő, veszélyes Ha mégis akkor: Csak generált jelszavakkal szabad

54 Fejlett Programozási Technológiák Digest Authentication challenge-response nonce  URI  Idő  Véletlen szám … Kivonatoló függvény (hash) MD5 Nehéz visszafejteni

55 Fejlett Programozási Technológiák Előnyök Titkosított jelszó Szótáras támadás védhető(cnonce) Megvéd a replay támadásoktól Biztosít bizonyos adatbiztonságot

56 Fejlett Programozási Technológiák Hátrányok Nem mond semmit a jelszó kiosztásáról Nincs titkosítva a tartalom Limitált integritás védelem A nonce használatának teljesítménybeni korlátai vannak

57 Fejlett Programozási Technológiák Felhasznált technológia Szimmetrikus kulcsú titkosítás  Gyors  Probléma a közös kulcs eljuttatása Aszimmetrikus (nyilvános) kulcsú titkosítás  Lassú  Nem jelent problémát a kulcs publikálása Digitális Aláírás Digitális Bizonyítvány

58 Fejlett Programozási Technológiák Új megoldások Két megközelítési mód: Új réteg:  TLS Módosított HTTP  SHTTP

59 Fejlett Programozási Technológiák SHTTP Felülről kompatibilis a HTTP protokollal Üzenetek becsomagolása CMS,MOSS Digitális aláírás MAC nonce Kulcssere és titkosítás Üzenet integritás és küldő azonosítás Aktualitás ellenőrzése Sok titkosító algoritmus

60 Fejlett Programozási Technológiák SHTTP Hasonló üzenet mint a HTTP protokollnál: Kérés: Secure * Secure-HTTP/1.4 Válasz: Secure-HTTP/ OK

61 Fejlett Programozási Technológiák TLS (Tranport Layer Security) Új réteg bevezetése: Netscape SSL Microsoft PCT IETF TLS

62 Fejlett Programozási Technológiák TLS felosztása I. TLS Handshake  Session identifier  Peer certificate  Compression method  Cipher spec  Master secret  Is resumable

63 Fejlett Programozási Technológiák TLS felosztása II. TLS Record  Fragmentálás  Tömörítés  Tartalom védelem  Titkosítás

64 Fejlett Programozási Technológiák Kapcsolat felépítés 1. Hello üzenetcsere 2. Rejtjelezési paraméter csere 3. Bizonyítvány csere 4. Főkulcs 5. Adatcsere

65 Fejlett Programozási Technológiák A HTML nyelv Megjelenítésre koncentrál Gépek számára nehezen értelmezhető Tag-ek segítségével épül fel a dokumentum( ) Böngésző elrejti a kódot Jelenleg HTML Felépítése:  információ a HTML verziójáról  fejrész (header)  törzs (body)

66 Fejlett Programozási Technológiák Egy egyszerű HTML oldal Ez a fejléc Hello világ!

67 Fejlett Programozási Technológiák Táblázatok Egyik legfontosabb pozicionáló elem Minta táblázat 1. oszlop 2. oszlop 3. oszlop 1. sor, 1. cella 1. sor, 2. cella 1. sor, 3. cella 2. sor, 1. cella 2. sor, 2. cella 2. sor, 3. cella

68 Fejlett Programozási Technológiák Űrlapok  action  method get post  name

69 Fejlett Programozási Technológiák Elemek  text  password  file  hidden  radio  checkbox  button  submit  reset  size  multiple  name  option  name  rows  cols

70 Fejlett Programozási Technológiák Példa I. rész … … Keresztnév: Nem:

71 Fejlett Programozási Technológiák Példa II. rész … A osztály B osztály …