Előadást letölteni
Az előadás letöltése folymat van. Kérjük, várjon
1
Fejlett Programozási Technikák 2.
15/1
2
Bilicki Vilmos bilickiv@inf.u-szeged.hu
Árpád tér 49.-es szoba 4810-es mellék
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
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
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
1. előadás tartalma Elosztott rendszerek XML DTD
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
A 2. előadás tartalma: XSD XPath XSLT
8
A 3. előadás tartalma: Java Virtual Machine Java nyelv alapjai
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
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
Az 5. előadás tartalma: CVS, SVN JUnit Log4J Ant
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 Ant
11
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
A 7. előadás tartalma: Java Applet JDBC Felépítése Tulajdonságai
Paraméterátadás JDBC Típusai Kapcsolat típusok Statement objektumok RecordSet Tranzakciók
13
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
A 9. előadás tartalma Java Servlet Servlet Interfész Servlet Context
Request Response Filter Session Web Application
15
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 Navigáció Támogató Bean
16
A 11. előadás tartalma: J2EE JNDI RMI Corba
17
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
Tematika: 13. Előadás 14. Előadás 15. Előadás Webes szolgáltatások
.NET 15. Előadás ADO.NET
19
A Mai előadás tartalma Elosztott rendszerek XML
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
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
Irodalom a mai előadáshoz:
A. Ebenhart, S. Fisher: Java Tools Wolfgang Emmerich: Engineering Distributed Objects Jegyzet a weblapon (egyre elavultabb…)
22
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
Elosztott rendszer Az elosztott rendszer ismérvei: Definíció:
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
Elosztott rendszer Node E Node F Node D User Node A Node C Node B
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
Elosztott vs. 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
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 mezei PC Napi 200 millió keresés Több 100 millió weboldal (tömörítve, …) Nagyfokú redundancia
27
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
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
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
Erőforrás hozzáférés és megosztá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
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
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
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
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
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
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
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
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
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
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
Két rétegű Kliens - megjelenítés Minden más egy szerveren
42
3 rétegű Kliens – megjelenítés Webszerver
Adatbázis szerver (Címtár, …)
43
4 rétegű Kliens – megjelenítés Web szerver Középréteg (Middleware)
Adatbázis szerverek (Fájl, Adatbázis, Címtár, …)
44
Középréteg Tranzakció orientált középréteg Üzenet 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
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
Dokumentum leíró nyelvek
SGML (bonyolult) HTML Előre definiált elemkészlet Csak megjelenítés Hibakezelés (<li>, 30%)
47
Megoldás: XML Nincs nyelvtana Nincs elemkészlete Tetszőleges nyelvtan
Tetszőleges elemkészlet Nagyon rugalmas Saját jelölő nyelv
48
7 indok az XML használatára
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 XML is a meta language! XML can define and describe any kind of information. XML is, by definition, extensible. Users, user groups and standardization bodies use XML as a type of a platform-independent grammar to define markup languages for specific purposes and schemas for all kinds of data models. XML bridges the gap between document-oriented and record-oriented processing. 2 XML is text-based and easy to read! Documents can be read by applications and humans. By definition, XML document content is marked up with tags. Tags such as <ProductNo> or <Price> clearly specify which type of information a document element contains. As these tags are contained in each document, XML documents can be understood without the application that created them. Humans can read XML, too, because XML documents are plain ASCII (or UNICODE) text, a fact that makes maintenance easy. 3 XML is ideal for structured documents! XML documents are hierarchically structured! XML document elements can be nested to build complex information structures. In principle, converting complex XML documents for use with relational technology is possible, but this is far from being optimal. Mapping XML elements to and from relational tables is a slow process and most certainly requires a great deal of normalization and optimization effort before an XML document can be stored properly. 4 XML is presentation neutral! XML separates document content from presentation. Stylesheets define how the document elements are formatted for output on a variety of display or other devices. Stylesheets can be applied to any given XML document. XML and associated co-standards allow to personalization of a given piece of information without the need to modify the original document content. 5 XML is multilingual! XML is based on Unicode. The ability to represent characters in almost all the world's languages - including Chinese and Japanese - facilitates document and data interchange in a multilingual community.XML tools do not generally have to be re-written to support text authored in Far Eastern languages, making most Western XML products immediately useful worldwide. 6 XML helps integration of businesses! XML lowers the barriers of worlwide e-business networks. Current Electronic Data Interchange (EDI) solutions are difficult and expensive to implement and maintain. With XML's flexibility in defining industry-specific vocabularies, it is even possible for small and medium-sized businesses to access EDI networks using simple, off-the-shelf Internet standards. 7 XML is open! Standards are supported by all major vendors. Large IT companies such as IBM, Microsoft, Oracle, Software AG, Sun Microsystems, and others have all heavily invested in XML and are actively contributing to the standardization process.
49
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
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
XML nyelvcsalád XML Adatleíró nyelv DTD XML Shema XSL, XSLT Xpath XQL
XML/EDI XML-RPC …
52
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 <Feladat sorszam="14"> <vegrahajto>Kardos Katalin</vegrahajto> <megbizo>Nagy Emese</megbizo> <hatarido> </hatarido> </Feladat>
53
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
Szerkezet PI Fejléc DTD Törzs <?xml version="1.0"?>
<!DOCTYPE Feladat SYSTEM "DTD\feladat.dtd"> <Feladat sorszam="14"> <vegrahajto>Kardos Katalin</vegrahajto> <megbizo>Nagy Emese</megbizo> <hatarido> </hatarido> <megoldva v=”i”/> </Feladat> Fejléc DTD Gyökér elem Törzs
55
Elemek <elem tulajdonság=”valami”> érték </elem>
Nyitó elem Záró elem Záróelem nélküli elem
56
Elemek tulajdonságai 1) <személy nem=”nő"> <keresztnév>Anna</keresztnév> <vezetéknév>Smith</vezetéknév> </személy> 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
57
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: <minta> <![CDATA[ <aaa>bb&cc<<<]] </minta>
58
Névtér Probléma: Megoldás előtétel: <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> <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>
59
Névtér URI xmlns <?xml version="1.0"?>
<!DOCTYPE Feladat SYSTEM "DTD\feladat.dtd"> <Pelda1:Feladat xmlns:Pelda1=" :8080/cocoon/pelda1.xml"> <Pelda1:vegrahajto>Kardos Katalin</Pelda1:vegrahajto> <Pelda1:megbizo>Nagy Emese</Pelda1:megbizo> <Pelda1:hatarido> </Pelda1:hatarido> </Pelda1:Feladat>
60
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
DTD Öndokumentálás Nyelvtan Elemkészlet Hibadetektálás (B2B)
62
Példa <!ELEMENT Pelda1:Feladat (Pelda1:vegrehajto, Pelda1:megbizo,
Pelda1:hatarido)> <!ELEMENT Pelda1:vegrehajto (#PCDATA)> <!ELEMENT Pelda1:megbizo (#PCDATA)> <!ELEMENT Pelda1:hatarido (#PCDATA)>
63
Ismétlődés operátorok
Nincs Pontosan egyszer kell szerepelnie ? Egyszer vagy egyszer sem + Legalább egyszer * Akárhányszor (0 is) <!ELEMENT Pelda1:Feladat ((Pelda1:vegrehajto, Pelda1:hatarido))+, Pelda1:megbizo)>
64
Tulajdonságok <!ATTLIST feladat munkahely (irinyi|arpadter)>
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
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
A Mai előadás tartalma Elosztott rendszerek XML
Miért van rájuk szükség Tervezési minták XML Funkciója Kapcsolatos technológiák DTD, XSD
67
A Következő előadás tartalma
XPath, XSLT
Hasonló előadás
© 2024 SlidePlayer.hu Inc.
All rights reserved.