Fejlett Programozsi Technikk 2 151 1 Fejlett Programozsi

  • Slides: 67
Download presentation
Fejlett Programozási Technikák 2. 15/1 1

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

Fejlett Programozási Technológiák 2. Bilicki Vilmos bilickiv@inf. u-szeged. hu n http: //www. inf. u-szeged.

Fejlett Programozási Technológiák 2. Bilicki Vilmos bilickiv@inf. u-szeged. hu n http: //www. inf. u-szeged. hu/~bilickiv n Árpád tér 49. -es szoba n 4810 -es mellék n 2

Fejlett Programozási Technológiák 2. Követelmények, tudnivalók n Vizsga év végén (50 pont) ¨ Egy

Fejlett Programozási Technológiák 2. Követelmények, tudnivalók n Vizsga év végén (50 pont) ¨ Egy n zárthelyi (10 pont) Gyakorlat: (40 pont) ¨ Egy dolgozat (10 pont) ¨ Egy projekt (20 pont) ¨ Egy ZH (10 pont) Órai aktivitás 10 pont n Weboldal : n http: //www. inf. u-szeged. hu/~bilickiv/ http: //www. inf. u-szeged. hu/oktatas/kurzusleirasok/fejlprog 2. xml 3

Fejlett Programozási Technológiák 2. Hirdetmény n Imagine Cup ( http: //www. microsoft. com/hun/Imaginecup 2006/default.

Fejlett Programozási Technológiák 2. Hirdetmény n Imagine Cup ( http: //www. microsoft. com/hun/Imaginecup 2006/default. mspx ) ¨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 4

Fejlett Programozási Technológiák 2. A tantárgy célkitűzése n Modern technológiák bemutatása, megismerése ¨ Menedzselt

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

Fejlett Programozási Technológiák 2. 1. előadás tartalma n Elosztott rendszerek ¨ Mik az elosztott

Fejlett Programozási Technológiák 2. 1. előadás tartalma n Elosztott rendszerek ¨ Mik az elosztott rendszerek? ¨ Példák elosztott rendszerekre ¨ Elosztott rendszerek követelményei ¨ Átlátszóság az elosztott rendszerekben n XML ¨ Funkciója ¨ Kapcsolatos n technológiák DTD 6

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

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

Fejlett Programozási Technológiák 2. A 3. előadás tartalma: n Java Virtual Machine ¨ ¨

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

Fejlett Programozási Technológiák 2. A 4. előadás tartalma: n Az 5. 0 -ás Java

Fejlett Programozási Technológiák 2. A 4. előadás tartalma: n Az 5. 0 -ás Java (Tiger) ¨ ¨ ¨ n Generics Metaadatok Új ciklus Enum kezelés Statikus import Újdonságok a 6. 0 -ás (Mustang) Java-ban ¨ Új API-k: n n n Hibakezelés ¨ ¨ ¨ n GIF kezelés PDF kezelés P 2 P API BLOG API GOOGLE WEB API 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 9

Fejlett Programozási Technológiák 2. Az 5. előadás tartalma: n CVS, SVN ¨ ¨ n

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

Fejlett Programozási Technológiák 2. A 6. előadás tartalma: n JFC és Swing ¨ Múlt

Fejlett Programozási Technológiák 2. A 6. előadás tartalma: n 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 11

Fejlett Programozási Technológiák 2. A 7. előadás tartalma: n Java Applet ¨ Felépítése ¨

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

Fejlett Programozási Technológiák 2. A 8. előadás tartalma: n n Számítógépes biztonság Jáva és

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

Fejlett Programozási Technológiák 2. A 9. előadás tartalma n Java Servlet ¨ Servlet Interfész

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

Fejlett Programozási Technológiák 2. A 10. előadás tartalma n n n Probléma a Java

Fejlett Programozási Technológiák 2. A 10. előadás tartalma n n n Probléma a Java Servlet-tel Template eszközök Java Server Pages ¨ ¨ ¨ ¨ n Á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 15

Fejlett Programozási Technológiák 2. A 11. előadás tartalma: n J 2 EE ¨ JNDI

Fejlett Programozási Technológiák 2. A 11. előadás tartalma: n J 2 EE ¨ JNDI ¨ RMI n Corba 16

Fejlett Programozási Technológiák 2. A 12. előadás tartalma: n Java Enterprise Edition ¨ ¨

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

Fejlett Programozási Technológiák 2. Tematika: n 13. Előadás ¨ Webes n szolgáltatások 14. Előadás

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

Fejlett Programozási Technológiák 2. A Mai előadás tartalma n Elosztott rendszerek ¨ Mik az

Fejlett Programozási Technológiák 2. A Mai előadás tartalma n Elosztott rendszerek ¨ Mik az elosztott rendszerek? ¨ Példák elosztott rendszerekre ¨ Elosztott rendszerek követelményei ¨ Átlátszóság az elosztott rendszerekben n XML ¨ Funkciója ¨ Kapcsolatos technológiák 19

Fejlett Programozási Technológiák 2. Irodalom a tantárgyhoz n Könyvek: ¨ Wolfgang Emmerich: Engineering Distributed

Fejlett Programozási Technológiák 2. Irodalom a tantárgyhoz n 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/ 20

Fejlett Programozási Technológiák 2. Irodalom a mai előadáshoz: A. Ebenhart, S. Fisher: Java Tools

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

Fejlett Programozási Technológiák 2. Számítógép rendszerek n 1950 katonai célok ¨ Titkosítás, n 1960

Fejlett Programozási Technológiák 2. Számítógép rendszerek n 1950 katonai célok ¨ Titkosítás, n 1960 kötegelt feldolgozás ¨ Nem n visszafejtés interaktív 1970 Mainframe ¨ Időosztásos n interaktív 1980 PC ¨ Az asztali gép felé irányult a figyelem ¨ Elosztott információ feldolgozás (Autonóm n 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 22

Fejlett Programozási Technológiák 2. Elosztott rendszer n Az elosztott rendszer ismérvei: ¨ ¨ ¨

Fejlett Programozási Technológiák 2. Elosztott rendszer n Az elosztott rendszer ismérvei: ¨ ¨ ¨ n Definíció: ¨ n 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, … … 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” 23

Fejlett Programozási Technológiák 2. Elosztott rendszer Node E Node F Node D Node A

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

Fejlett Programozási Technológiák 2. Elosztott vs. Központosított rendszer n Központosított rendszer ¨ A komponensek

Fejlett Programozási Technológiák 2. Elosztott vs. Központosított rendszer n 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) n 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 25

Fejlett Programozási Technológiák 2. Példák: n n SZTE – Lan. Store: Elosztott tárolás (.

Fejlett Programozási Technológiák 2. Példák: n n SZTE – Lan. Store: 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 Main. Frame 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 26

Fejlett Programozási Technológiák 2. Skálázhatóság n n n n Tervezés (pl. elektromos rendszer) A

Fejlett Programozási Technológiák 2. Skálázhatóság n n n n 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, B 2 C, … 27

Fejlett Programozási Technológiák 2. Nyílt rendszer Könnyen bővíthető, módosítható n A tervezésnél szabványos technológiák,

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

Fejlett Programozási Technológiák 2. Heterogén rendszer n Külön-külön vásárolt komponensek ¨ Hardver ¨ OS

Fejlett Programozási Technológiák 2. Heterogén rendszer n 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 n Heterogén komponensek integrálása n 29

Fejlett Programozási Technológiák 2. Erőforrás hozzáférés és megosztás n Erőforrás ¨ Hardver ¨ Szoftver

Fejlett Programozási Technológiák 2. Erőforrás hozzáférés és megosztás n Erőforrás ¨ Hardver ¨ Szoftver ¨ Adat n 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 N rétegű alkalmazás n 30

Fejlett Programozási Technológiák 2. Hibatűrés Merevlemez 2 -5 év a várható élettartam n Hibatűrő

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

Fejlett Programozási Technológiák 2. Az elosztott rendszer tulajdonságai n ANSA 1989, ISO/IEC 1996 International

Fejlett Programozási Technológiák 2. Az elosztott rendszer tulajdonságai n ANSA 1989, ISO/IEC 1996 International Standard on Open Distributed Processing ¨ ¨ ¨ ¨ ¨ n 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) 32

Fejlett Programozási Technológiák 2. Hozzáférés áttetszőség A helyi és a távoli hozzáférés interfész azonos

Fejlett Programozási Technológiák 2. Hozzáférés áttetszőség A helyi és a távoli hozzáférés interfész azonos n 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) n Az ilyen komponensekre épülő komponensek könnyen áthelyezhetőek egyik helyről a másikra n 33

Fejlett Programozási Technológiák 2. Helyszín áttetszőség Nem kell tudnunk a komponens pontos helyét, van

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

Fejlett Programozási Technológiák 2. Migráció áttetszőség A komponensek tetszés szerint mozgathatóak a hostok között

Fejlett Programozási Technológiák 2. 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 n Függ helyszín és hozzáférés áttetszőségtől n 35

Fejlett Programozási Technológiák 2. Replikáció áttetszőség Replikák n Adott komponens több helyen is megtalálható

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

Fejlett Programozási Technológiák 2. Párhuzamosság áttetszőség Az egyes komponensek egy időben használhatják a megosztott

Fejlett Programozási Technológiák 2. 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. n A felhasználó nem veszi észre, hogy más ia használja a rendszert n Jó esetben sem az alkalmazás tervező sem a felhasználó sem foglalkozik vele (a middleware feladata) n 37

Fejlett Programozási Technológiák 2. Teljesítmény áttetszőség Sem az alkalmazás fejlesztő sem a felhasználó nem

Fejlett Programozási Technológiák 2. 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 n Middleware dolga (ma még kevés tudja autómatikusan) n ¨ Replikáció ¨ Load Balancing 38

Fejlett Programozási Technológiák 2. Hiba áttetszőség Sem a felhasználó sem az alkalmazás fejlesztő nem

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

Fejlett Programozási Technológiák 2. Internet, Web alkalmazások architektúrája n n N rétegű architektúrák Vékony

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

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

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

Fejlett Programozási Technológiák 2. 3 rétegű n n n Kliens – megjelenítés Webszerver Adatbázis

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

Fejlett Programozási Technológiák 2. 4 rétegű n n Kliens – megjelenítés Web szerver Középréteg

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

Fejlett Programozási Technológiák 2. Középréteg n Tranzakció orientált középréteg ¨ Tranzakciók integrálása több különböző

Fejlett Programozási Technológiák 2. Középréteg n 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 n Üzenet orientált középréteg ¨ Megbízható üzenetküldés ¨ IBM MQSeries, MSMQ n Objektum Orientált középréteg ¨ Corba ¨ RMI ¨ COM n … 44

Fejlett Programozási Technológiák 2. XML aktuális a téma? Microsoft: Az XML alapú technológiák adnak

Fejlett Programozási Technológiák 2. 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. n Oracle: Az OTN magazin több mint 1/3 -ad része webes technológiákkal foglalkozik. n Integráció n 45

Fejlett Programozási Technológiák 2. Dokumentum leíró nyelvek SGML (bonyolult) n HTML n ¨ Előre

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

Fejlett Programozási Technológiák 2. Megoldás: XML Nincs nyelvtana n Nincs elemkészlete n Tetszőleges nyelvtan

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

Fejlett Programozási Technológiák 2. 7 indok az XML használatára 1. 2. 3. 4. 5.

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

Fejlett Programozási Technológiák 2. Feladatok melyeket XML-el érdemes megoldani Adatok elosztása cégen belül n

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

Fejlett Programozási Technológiák 2. Feladatok melyekre nem az XML a legalkalmasabb Nagy mennyiségű adat

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

Fejlett Programozási Technológiák 2. XML nyelvcsalád XML Adatleíró nyelv n DTD n XML Shema

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

Fejlett Programozási Technológiák 2. XML Feladata az adatok strukturált leírása. n XML az ASCII

Fejlett Programozási Technológiák 2. XML Feladata az adatok strukturált leírása. n XML az ASCII a 21. század számára n Minimális formai követelmények n <Feladat sorszam="14"> <vegrahajto>Kardos Katalin</vegrahajto> <megbizo>Nagy Emese</megbizo> <hatarido>2002. 05. 01</hatarido> </Feladat> 52

Fejlett Programozási Technológiák 2. XML Szabályok n n n n Jelölőelemeket használ Minden kezdőelemhez

Fejlett Programozási Technológiák 2. XML Szabályok n n n n Jelölőelemeket használ Minden kezdőelemhez tartozik záró Az elemek egymásba ágyazhatóak Jól formázott 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 Érvényes 53

Fejlett Programozási Technológiák 2. Szerkezet PI DTD Gyökér elem <? xml version="1. 0"? >

Fejlett Programozási Technológiák 2. Szerkezet PI DTD Gyökér elem <? xml version="1. 0"? > <!DOCTYPE Feladat SYSTEM "DTDfeladat. dtd"> <Feladat sorszam="14"> <vegrahajto>Kardos Katalin</vegrahajto> <megbizo>Nagy Emese</megbizo> <hatarido>2002. 05. 01</hatarido> <megoldva v=”i”/> </Feladat> Fejléc Törzs 54

Fejlett Programozási Technológiák 2. Elemek <elem tulajdonság=”valami”> érték Záró elem </elem> <elem tulajdonság=”valami”/> Nyitó

Fejlett Programozási Technológiák 2. Elemek <elem tulajdonság=”valami”> érték Záró elem </elem> <elem tulajdonság=”valami”/> Nyitó elem Záróelem nélküli elem 55

Fejlett Programozási Technológiák 2. Elemek tulajdonságai 1) <személy nem=”nő"> <keresztnév>Anna</keresztnév> <vezetéknév>Smith</vezetéknév> </személy> n n

Fejlett Programozási Technológiák 2. Elemek tulajdonságai 1) <személy nem=”nő"> <keresztnév>Anna</keresztnév> <vezetéknév>Smith</vezetéknév> </személy> n n n 2) <személy> <nem>nő</nem> <keresztnév>Anna</keresztnév> <vezetéknév>Smith</vezetéknév> </személy> 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 56

Fejlett Programozási Technológiák 2. Karakterek n n n megkülönbözteti a kis és nagy betűket

Fejlett Programozási Technológiák 2. Karakterek n n n 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 : &amp, &quot, &apos, &gt, &lt n CDATA segítségével bármilyen szöveget tartalmazhat: <minta> <![CDATA[ <aaa>bb&cc<<<]] </minta> n 57

Fejlett Programozási Technológiák 2. Névtér Probléma: <Dokumentum> <méret>4 adat</méret> <típus>XML</típus> <doc> <ruha> <típus>póló</típus> <szín>sárga</szín>

Fejlett Programozási Technológiák 2. Névtér Probléma: <Dokumentum> <méret>4 adat</méret> <típus>XML</típus> <doc> <ruha> <típus>póló</típus> <szín>sárga</szín> <méret>XXL</méret> <forma>hagyományos</forma> </ruha> </doc> </Dokumentum> Megoldás előtétel: <doc: Dokumentum> <doc: méret>4 adat</doc: méret> <doc: típus>XML</doc: típus> <doc: doc> <adat: ruha> <adat: típus>póló</adat: típus> <adat: szín>sárga</adat: szín> <adat: méret>XXL</adat: méret> <adat: forma>hagyományos</adat: forma> </adat: ruha> </doc: doc> </doc: Dokumentum> 58

Fejlett Programozási Technológiák 2. Névtér n URI n xmlns <? xml version="1. 0"? >

Fejlett Programozási Technológiák 2. Névtér n URI n xmlns <? xml version="1. 0"? > <!DOCTYPE Feladat SYSTEM "DTDfeladat. dtd"> <Pelda 1: Feladat xmlns: Pelda 1="http: //wilma. cab. u-szeged. hu : 8080/cocoon/pelda 1. xml"> <Pelda 1: vegrahajto>Kardos Katalin</Pelda 1: vegrahajto> <Pelda 1: megbizo>Nagy Emese</Pelda 1: megbizo> <Pelda 1: hatarido>2002. 05. 01</Pelda 1: hatarido> </Pelda 1: Feladat> 59

Fejlett Programozási Technológiák 2. XML értelmezése n DOM (Document Object Modell) alapú ¨ Memóriában

Fejlett Programozási Technológiák 2. XML értelmezése n DOM (Document Object Modell) alapú ¨ Memóriában n 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 60

Fejlett Programozási Technológiák 2. DTD n Öndokumentálás ¨ Nyelvtan ¨ Elemkészlet n Hibadetektálás (B

Fejlett Programozási Technológiák 2. DTD n Öndokumentálás ¨ Nyelvtan ¨ Elemkészlet n Hibadetektálás (B 2 B) 61

Fejlett Programozási Technológiák 2. Példa <!ELEMENT Pelda 1: Feladat (Pelda 1: vegrehajto, Pelda 1:

Fejlett Programozási Technológiák 2. Példa <!ELEMENT Pelda 1: Feladat (Pelda 1: vegrehajto, Pelda 1: megbizo, Pelda 1: hatarido)> <!ELEMENT Pelda 1: vegrehajto (#PCDATA)> <!ELEMENT Pelda 1: megbizo (#PCDATA)> <!ELEMENT Pelda 1: hatarido (#PCDATA)> 62

Fejlett Programozási Technológiák 2. Ismétlődés operátorok Nincs Pontosan egyszer kell szerepelnie n ? Egyszer

Fejlett Programozási Technológiák 2. Ismétlődés operátorok Nincs Pontosan egyszer kell szerepelnie n ? Egyszer vagy egyszer sem n + Legalább egyszer n * Akárhányszor (0 is) <!ELEMENT Pelda 1: Feladat ((Pelda 1: vegrehajto, Pelda 1: hatarido))+, Pelda 1: megbizo)> n 63

Fejlett Programozási Technológiák 2. Tulajdonságok <!ATTLIST feladat munkahely (irinyi|arpadter)> Módosító: n #IMPLIED -- Nem

Fejlett Programozási Technológiák 2. Tulajdonságok <!ATTLIST feladat munkahely (irinyi|arpadter)> Módosító: n #IMPLIED -- Nem feltétlenül szükséges. n #REQUIRED -- Szükséges. n #FIXED -- Kötelező a jelenléte és az értéke egyaránt. n ”alapértelmezett érték” 64

Fejlett Programozási Technológiák 2. XML Schema Definition Language XML elemkészletet és nyelvtant definiál n

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

Fejlett Programozási Technológiák 2. A Mai előadás tartalma n Elosztott rendszerek ¨ Miért van

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

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

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