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 4810-es mellék

3 Fejlett Programozási Technológiák 2. 3 Követelmények, tudnivalók Vizsga év végén (50 pont)  Egy zárthelyi (10 pont) Gyakorlat: (40 pont)  Egy dolgozat (10 pont)  Egy projekt (20 pont)  Egy ZH (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 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 XML  Funkciója  Kapcsolatos technológiák DTD

7 Fejlett Programozási Technológiák 2. 7 A 2. előadás tartalma: XSD XPath XSLT

8 Fejlett Programozási Technológiák 2. 8 A 3. előadás tartalma: Java Virtual Machine  Memória kezelés  Szemét gyűjtő  Hiba keresés támogatás  Fordító Java nyelv alapjai  Változók  Operátorok, Vezérlő szerkezetek  Osztályok  Interfészek  RTTI  Reflexió  Alap objektumok  Csomagok JAR fájlok

9 Fejlett Programozási Technológiák 2. 9 A 4. előadás tartalma: Az 5.0-ás Java (Tiger)  Generics  Metaadatok  Új ciklus  Enum kezelés  Statikus import Újdonságok a 6.0-ás (Mustang) Java-ban  Új API-k: GIF kezelés PDF kezelés P2P API BLOG API GOOGLE WEB API Hibakezelés  Egyszerű kivételek  Kivétel elfogása  Saját kivételek gyártása  Bármely kivétel elfogása  Finally Többszálúság  Motiváció  Szálkezelés alapjai  Megosztott erőforrások kezelése  Szál állapotok  Együttműködés szálak között

10 Fejlett Programozási Technológiák Az 5. előadás tartalma: CVS, SVN  Miért van rá szükségünk?  Használata  Címkézés  Ágak kezelése JUnit  Tesztelés  TestCase  TestSuit Log4J  Miért nem println()?  Log  Log4J Ant

11 Fejlett Programozási Technológiák A 6. előadás tartalma: JFC és Swing  Múlt  Felépítés  Java Bean  Felső szintű konténerek  Középső szintű konténerek  Elemek  Eseménykezelés  Rajzolás

12 Fejlett Programozási Technológiák A 7. előadás tartalma: Java Applet  Felépítése  Tulajdonságai  Paraméterátadás JDBC  Típusai  Kapcsolat típusok  Statement objektumok  RecordSet  Tranzakciók

13 Fejlett Programozási Technológiák A 8. előadás tartalma: Számítógépes biztonság Jáva és a biztonság  Biztonsági architektúra Titkosító architektúra  JCE  JAAS  JSSE  GSSE

14 Fejlett Programozási Technológiák A 9. előadás tartalma Java Servlet  Servlet Interfész  Servlet Context  Request  Response  Filter  Session  Web Application

15 Fejlett Programozási Technológiák A 10. előadás tartalma Probléma a Java Servlet-tel Template eszközök Java Server Pages  Áttekintés  Elemei  Életciklusa  Objektumok  Java Beanek használata  Java Standard Tag Library  Custom Tag Library Java Server Faces  Feladata  Elemei  Navigáció  Támogató Bean

16 Fejlett Programozási Technológiák A 11. előadás tartalma: J2EE  JNDI  RMI Corba

17 Fejlett Programozási Technológiák A 12. előadás tartalma: Java Enterprise Edition  EJB specifikáció (2.0)  EJB komponensek Remote, Home, Local, Local Home interfész Session Bean  Stateless  Statefull Entity Bean  BMP  CMP Message Driven Bean  Durable  Non Durable EJB 3.0

18 Fejlett Programozási Technológiák Tematika: 13. Előadás  Webes szolgáltatások 14. Előadás .NET 15. Előadás  ADO.NET

19 Fejlett Programozási Technológiák 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 XML  Funkciója  Kapcsolatos technológiák

20 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:   

21 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…)

22 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

23 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”

24 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)

25 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

26 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

27 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, …

28 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

29 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

30 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

31 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ó

32 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)

33 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

34 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

35 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

36 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

37 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)

38 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

39 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

40 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

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

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

43 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, …)

44 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 …

45 Fejlett Programozási Technológiák XML aktuális a téma? Microsoft: Az XML alapú technológiák adnak lehetőséget a komponensek együttműködésére. Oracle: Az OTN magazin több mint 1/3-ad része webes technológiákkal foglalkozik. Integráció

46 Fejlett Programozási Technológiák Dokumentum leíró nyelvek SGML (bonyolult) HTML  Előre definiált elemkészlet  Csak megjelenítés  Hibakezelés (, 30%)

47 Fejlett Programozási Technológiák Megoldás: XML Nincs nyelvtana Nincs elemkészlete Tetszőleges nyelvtan Tetszőleges elemkészlet Nagyon rugalmas Saját jelölő nyelv

48 Fejlett Programozási Technológiák indok az XML használatára 1. Meta nyelv 2. Szöveg alapú 3. Ideális struktúrált dokumentumaink számára 4. Megjelenítés semleges 5. Többnyelvű 6. Segít az üzleti alkalmazások integrálásában 7. Nyitott szabvány

49 Fejlett Programozási Technológiák Feladatok melyeket XML-el érdemes megoldani Adatok elosztása cégen belül Konfigurációs állományok Ideiglenes adatok átvitele (EDI, B2B) Adatgyűjtés, feldolgozás Kliensfüggő kimenet

50 Fejlett Programozási Technológiák Feladatok melyekre nem az XML a legalkalmasabb Nagy mennyiségű adat tárolása a merevlemezen Olyan adatok kezelése egy alkalmazáson belül melyek nem kerülnek ki Függvény hívásnál paraméterként

51 Fejlett Programozási Technológiák XML nyelvcsalád XML Adatleíró nyelv DTD XML Shema XSL, XSLT Xpath XQL XML/EDI XML-RPC …

52 Fejlett Programozási Technológiák XML Feladata az adatok strukturált leírása. XML az ASCII a 21. század számára Minimális formai követelmények Kardos Katalin Nagy Emese

53 Fejlett Programozási Technológiák XML Szabályok Jelölőelemeket használ Minden kezdőelemhez tartozik záró Az elemek egymásba ágyazhatóak Nem metszhetik egymást az elem párok Kötelező a gyökér elem US-ASCII kódolás, ha nem azt jelezni kell Érzékeny a kis és nagy betűkre Nem kötelező de jó ha van hozzá DTD és azt betartja Jól formázott Érvényes

54 Fejlett Programozási Technológiák Szerkezet Kardos Katalin Nagy Emese Fejléc Törzs PI DTD Gyökér elem

55 Fejlett Programozási Technológiák Elemek érték Nyitó elem Záró elem Záróelem nélküli elem

56 Fejlett Programozási Technológiák Elemek tulajdonságai A tulajdonságok nem tartalmazhatnak egyszerre több adatot (a gyermek elemek igen). A tulajdonságok nem bővíthetők olyan egyszerűen, mint a gyermek elemek. A tulajdonságok adatai nem rendezhetők struktúrákba (a gyermek elemek adatai igen) A tulajdonságokat nehezebb kezelni a programokban. A tulajdonságok helyességet nehezebb ellenőrizni Tulajdonságot akkor érdemes használni ha az a feldolgozás szempontjából jelent plusz információt 1) Anna Smith 2) nő Anna Smith

57 Fejlett Programozási Technológiák Karakterek megkülönbözteti a kis és nagy betűket XML értelmezők nem veszik ki az adatokból a többszörös kihagyás jellegű (white space) karaktereket. Elemek nevei tartalmazhatnak bármilyen karaktert, a következő szabályok figyelembevételével:  Elem név nem tartalmazhat kihagyást (space).  Elem név nem kezdődhet számmal valamint aláhúzás karakterrel.  Elem név nem kezdődhet az XML karakter sorozattal  Elem névben nem ajánlott a mínusz (-) és a pont (.) karakter valamint a szintén nem ajánlott a kettőspont (:) mert speciális jelentése van.  Nincs fenntartott szó Az elemek értéke nem tartalmazhatja a következő karaktereket: &, ”, ’, >, < helyettük : &, ", &apos, >, < CDATA segítségével bármilyen szöveget tartalmazhat: bb&cc<<<]]

58 Fejlett Programozási Technológiák Névtér 4 adat XML póló sárga XXL hagyományos 4 adat XML póló sárga XXL hagyományos Probléma: Megoldás előtétel:

59 Fejlett Programozási Technológiák Névtér URI xmlns Kardos Katalin Nagy Emese

60 Fejlett Programozási Technológiák XML értelmezése DOM (Document Object Modell) alapú  Memóriában tárolt fa SAX (Simple API for XML) alapú elemzők  Csak az aktuális elemet látjuk  Események generálódnak  Eseménykezelő metódusok

61 Fejlett Programozási Technológiák DTD Öndokumentálás  Nyelvtan  Elemkészlet Hibadetektálás (B2B)

62 Fejlett Programozási Technológiák Példa

63 Fejlett Programozási Technológiák Ismétlődés operátorok Nincs Pontosan egyszer kell szerepelnie ? Egyszer vagy egyszer sem + Legalább egyszer * Akárhányszor (0 is)

64 Fejlett Programozási Technológiák Tulajdonságok Módosító: #IMPLIED -- Nem feltétlenül szükséges. #REQUIRED -- Szükséges. #FIXED-- Kötelező a jelenléte és az értéke egyaránt. ”alapértelmezett érték”

65 Fejlett Programozási Technológiák XML Schema Definition Language XML elemkészletet és nyelvtant definiál XML szintaxist használ (SAX,DOM) A legtöbb programnyelvben használt adattípusokat használhatjuk A névterek használata lehetővé teszi több séma egybeolvasztását

66 Fejlett Programozási Technológiák A Mai előadás tartalma Elosztott rendszerek  Miért van rájuk szükség  Tervezési minták XML  Funkciója  Kapcsolatos technológiák  DTD, XSD

67 Fejlett Programozási Technológiák A Következő előadás tartalma XPath, XSLT


Letölteni ppt "1 Fejlett Programozási Technikák 2. 15/1. Fejlett Programozási Technológiák 2. 2 Bilicki Vilmos"

Hasonló előadás


Google Hirdetések