1 / 88

Fejlett Programoz ási Technikák 2.

Fejlett Programoz ási Technikák 2. 15 /1. Bilicki Vilmos. bilickiv@inf.u-szeged.hu http://www.inf.u-szeged.hu/~bilickiv Árpád tér 49.-es szoba 3408-as mellék. Követelmények, tudnivalók. Vizsga év végén (80 pont) Gyakorlat: (40 pont) Egy dolgozat (10 pont) Egy projekt (20 pont)

tadeo
Télécharger la présentation

Fejlett Programoz ási Technikák 2.

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. Bilicki Vilmos • bilickiv@inf.u-szeged.hu • http://www.inf.u-szeged.hu/~bilickiv • Árpád tér 49.-es szoba • 3408-as mellék

  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 : http://www.inf.u-szeged.hu/~bilickiv/fpt2 http://www.inf.u-szeged.hu/oktatas/kurzusleirasok/fejlprog2.xml

  4. Hirdetmény • Imagine Cup (http://www.msportal.hu/portal/(xlnvlpfvnhurnfvx2srjmmve)/DesktopDefault.aspx?tabindex=12&tabid=26) • 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. 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. 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. 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. 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. 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. 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: • http://java.sun.com • http://www.theserverside.com/ • http://www.theserverside.net/

  11. Irodalom a mai előadáshoz: • A. Ebenhart, S. Fisher: Java Tools • Wolfgang Emmerich: Engineering Distributed Objects • Jegyzet a weblapon (egyre elavultabb…) • http://www.zalamedia.hu/~kami/html40/diploma-vazlat.html

  12. 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. 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. HOST HOST Komponens … Komponens Komponens … Komponens Hálózati Operációs Rendszer Középréteg (Middleware) Node E Hálózati Operációs Rendszer Hardver Node F Hardver Node D Node A Node C Node B Elosztott rendszer User

  15. 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. 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 • 90000 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 10000 mezei PC • Napi 200 millió keresés • Több 100 millió weboldal (tömörítve, …) • Nagyfokú redundancia

  17. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. Két rétegű • Kliens - megjelenítés • Minden más egy szerveren

  32. 3 rétegű • Kliens – megjelenítés • Webszerver • Adatbázis szerver (Címtár, …)

  33. 4 rétegű • Kliens – megjelenítés • Web szerver • Középréteg (Middleware) • Adatbázis szerverek (Fájl, Adatbázis, Címtár, …)

  34. 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. 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. HTTP 1.1 • Kapcsolatorientált • Részletes proxy specifikáció • 80-as port • URI (Universal Resource Identifier)

  37. URI • Rfc2396 • <protokol>:<protokol specifikus rész> • <protokol>://<azonosítás><elérési-útvonal>?<Lekérdezés> • US-ASCII • Más karaterek: % URL • HTTP specifikus: URL (Universal Resource Locator) • http : // host [ : ] [ port ] [ abszolút-útvonal [ ? query ] ] • ftp://felhasznalo:jelszo@amadea.inf.u-szeged.hu • Relatív útvonal

  38. HTTP üzenetek • Kérés (request) • Válasz (response) • kezdő sor • fejléc sorok • üres sor • az üzenet tartalma

  39. Kérés üzenetek(kezdő sor) • GET • OPTIONS • POST • HEAD • TRACE

  40. GET GET / HTTP/1.1 Host: sirius.cab.u-szeged.hu HTTP/1.1 200 OK Date: Thu, 13 Dec 2001 16:55:37 GMT Server: Apache/1.3.20 (Unix) PHP/4.0.6 Transfer-Encoding: chunked Content-Type: text/html 8a0 <HTML> <HEAD> <TITLE>Irinyi Kabinet</TITLE> </HEAD> <body... </ADDRESS> </BODY> </HTML>

  41. OPTIONS OPTIONS /cgi-bin/szotarE HTTP/1.1 Host: sirius.cab.u-szeged.hu HTTP/1.1 200 OK Date: Mon, 17 Dec 2001 10:05:54 GMT Server: Apache/1.3.20 (Unix) PHP/4.0.6 Content-Length: 0 Allow: GET, HEAD, POST, OPTIONS, TRACE

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

  43. POST POST /teszt/ HTTP/1.1 Host: wiliam.u-szeged.hu adat: research

  44. TRACE TRACE / HTTP/1.1 Host: wiliam.u-szeged.hu Adat: research HTTP/1.1 200 OK Server: Netscape-Enterprise/6.0 Date: Sun, 23 Dec 2001 12:49:45 GMT Content-type: message/http Content-length: 62 TRACE / HTTP/1.1 Host: wiliam.u-szeged.hu Adat: research

  45. Egyéb • CONNECT • DELETE • PUT

  46. Fejléc mezők • Host • If-Modified-Since • User-Agent • Adat: research …

  47. Válasz üzenet • Állapot mező • Válasz fejléc mezők • Erőforrás • erőforrás fejléc • erőforrás tartalom

  48. Állapot mezők • 1xx – Információs • 2xx – Siker • 3xx – Átirányítás • 4xx – Kliens oldali hiba • 5xx – Szerver oldali hiba

  49. Válasz fejléc • WWW-Authenticate • Age • Cache-Control • Expires • Content-Type

  50. 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

More Related