Upload
tadeo
View
28
Download
2
Embed Size (px)
DESCRIPTION
Fejlett Programoz ási Technikák 2. 15 /1. Bilicki Vilmos. [email protected] 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) - PowerPoint PPT Presentation
Citation preview
1
Fejlett Programozási Technikák 2.
15/1
2
Fejlett Programozási Technológiák 2.
Bilicki Vilmos [email protected] http://www.inf.u-szeged.hu/~bilickiv Árpád tér 49.-es szoba 3408-as mellék
3
Fejlett Programozási Technológiák 2.
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
Fejlett Programozási Technológiák 2.
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
Fejlett Programozási Technológiák 2.
A tantárgy célkitűzése
Modern technológiák bemutatása, megismeréseMenedzselt kódra épülő rendszerekWebes rendszerekElosztott rendszerekSkálázható, robosztus rendszerek
6
Fejlett Programozási Technológiák 2.
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.
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.
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.
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 2.
Irodalom a tantárgyhoz Könyvek:
Wolfgang Emmerich: Engineering Distributed Objects
A. Ebenhart, S. Fisher: Java ToolsEd Roman: Mastering Enterprise Java BeansDon Box: Essential XML
Web:http://java.sun.comhttp://www.theserverside.com/http://www.theserverside.net/
11
Fejlett Programozási Technológiák 2.
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
Fejlett Programozási Technológiák 2.
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 2.
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 2.
Elosztott rendszer
User
Node B Node C
Node FNode E
Node ANode D
Komponens Komponens…
Hálózati Operációs Rendszer
Hardver
HOST
Komponens Komponens…
Hálózati Operációs Rendszer
Hardver
HOST
Középréteg (Middleware)
15
Fejlett Programozási Technológiák 2.
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 2.
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
Fejlett Programozási Technológiák 2.
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 2.
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észekJó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 2.
Heterogén rendszer Külön-külön vásárolt komponensek
HardverOSHálózati protokollProgramozá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 2.
Erőforrás hozzáférés és megosztás Erőforrás
HardverSzoftverAdat
Többen használhatnak egy erőforrástBiztonsági megfontolásokKi 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 2.
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 2.
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 2.
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 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
Pl.: NFS – a felhasználóknak nem kell tudniuk a szerver IP címét
25
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
Függ helyszín és hozzáférés áttetszőségtől
26
Fejlett Programozási Technológiák 2.
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 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.
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 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
Middleware dolga (ma még kevés tudja autómatikusan)ReplikációLoad Balancing
29
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 Nem veszik észre a hibákat Pl.: bank automata
30
Fejlett Programozási Technológiák 2.
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 2.
Két rétegű Kliens - megjelenítés Minden más egy szerveren
iMac
iMac
32
Fejlett Programozási Technológiák 2.
3 rétegű Kliens – megjelenítés Webszerver Adatbázis szerver (Címtár, …)
iMac
iMac
33
Fejlett Programozási Technológiák 2.
4 rétegű Kliens – megjelenítés Web szerver Középréteg (Middleware) Adatbázis szerverek (Fájl, Adatbázis, Címtár, …)
iMac
iMac
34
Fejlett Programozási Technológiák 2.
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 2.
HTTP(Hyper Text Transfer Protocol) Kliens-szerver modell Állapotmentes Alkalmazásszintű protokol Megbízható átviteli közegre épül Új fogalmak:
WebszerverProxy szerver
36
Fejlett Programozási Technológiák 2.
HTTP 1.1 Kapcsolatorientált Részletes proxy specifikáció 80-as port URI (Universal Resource Identifier)
37
Fejlett Programozási Technológiák 2.
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:[email protected] Relatív útvonal
38
Fejlett Programozási Technológiák 2.
HTTP üzenetek Kérés (request) Válasz (response)
kezdő sor fejléc soroküres soraz üzenet tartalma
39
Fejlett Programozási Technológiák 2.
Kérés üzenetek(kezdő sor) GET OPTIONS POST HEAD TRACE
40
Fejlett Programozási Technológiák 2.
GETGET / HTTP/1.1 Host: sirius.cab.u-szeged.hu HTTP/1.1 200 OKDate: Thu, 13 Dec 2001 16:55:37 GMTServer: Apache/1.3.20 (Unix) PHP/4.0.6Transfer-Encoding: chunkedContent-Type: text/html
8a0<HTML><HEAD> <TITLE>Irinyi Kabinet</TITLE></HEAD><body...</ADDRESS></BODY></HTML>
41
Fejlett Programozási Technológiák 2.
OPTIONSOPTIONS /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
Fejlett Programozási Technológiák 2.
HEADHEAD /teszt/ HTTP/1.1 Host: wilma.cab.u-szeged.hu
HTTP/1.1 200 OKServer: Microsoft-IIS/5.0Cache-Control: max-age=86400Expires: Tue, 18 Dec 2001 14:47:33 GMTContent-Location: http://wilma.cab.u-szeged.hu/teszt/index.htmlDate: Mon, 17 Dec 2001 14:47:33 GMTContent-Type: text/htmlAccept-Ranges: bytesLast-Modified: Mon, 17 Dec 2001 14:03:32 GMTETag: "fc50cd9c387c11:88e"Content-Length: 83
43
Fejlett Programozási Technológiák 2.
POSTPOST /teszt/ HTTP/1.1
Host: wiliam.u-szeged.hu
adat: research
44
Fejlett Programozási Technológiák 2.
TRACETRACE / HTTP/1.1Host: wiliam.u-szeged.huAdat: research
HTTP/1.1 200 OKServer: Netscape-Enterprise/6.0Date: Sun, 23 Dec 2001 12:49:45 GMTContent-type: message/httpContent-length: 62
TRACE / HTTP/1.1Host: wiliam.u-szeged.huAdat: research
45
Fejlett Programozási Technológiák 2.
Egyéb CONNECT DELETE PUT
46
Fejlett Programozási Technológiák 2.
Fejléc mezők Host If-Modified-Since User-Agent Adat: research …
47
Fejlett Programozási Technológiák 2.
Válasz üzenet Állapot mező Válasz fejléc mezők Erőforrás
erőforrás fejlécerőforrás tartalom
48
Fejlett Programozási Technológiák 2.
Á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 2.
Válasz fejléc WWW-Authenticate Age Cache-Control Expires Content-Type
50
Fejlett Programozási Technológiák 2.
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 2.
Basic Authentication UID Password Realm HTTP/1.1 401 Authorization Required
52
Fejlett Programozási Technológiák 2.
PéldaHTTP/1.1 401 Authorization Required
Date: Fri, 28 Dec 2001 08:24:32 GMT
Server: Apache/1.3.20 (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 2.
Hátrányok Nem biztonságos
LehallgathatóNem titkosítottNincs 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 2.
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 2.
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 2.
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 2.
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 2.
Új megoldásokKét megközelítési mód: Új réteg:
TLS Módosított HTTP
SHTTP
59
Fejlett Programozási Technológiák 2.
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 2.
SHTTPHasonló üzenet mint a HTTP protokollnál:
Kérés:
Secure * Secure-HTTP/1.4
Válasz:
Secure-HTTP/1.4 200 OK
61
Fejlett Programozási Technológiák 2.
TLS (Tranport Layer Security)Új réteg bevezetése:
Netscape SSL Microsoft PCT IETF TLS
62
Fejlett Programozási Technológiák 2.
TLS felosztása I. TLS Handshake
Session identifierPeer certificateCompression methodCipher specMaster secret Is resumable
63
Fejlett Programozási Technológiák 2.
TLS felosztása II. TLS Record
FragmentálásTömörítésTartalom védelemTitkosítás
64
Fejlett Programozási Technológiák 2.
Kapcsolat felépítés1. 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 2.
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(<elem>) Böngésző elrejti a kódot Jelenleg HTML 4.01 http://www.w3c.org 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 2.
Egy egyszerű HTML oldal<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//HU"
"http://www.w3.org/TR/html4/strict.dtd">
<HTML>
<head>
<TITLE>Ez a fejléc</TITLE>
</head>
<body>
<p>Hello világ!
</body>
</html>
67
Fejlett Programozási Technológiák 2.
TáblázatokEgyik legfontosabb
pozicionáló elem <table> <tr> <td> <th> <thead> <tbody> <tfoot> <caption>
<table border="1"><caption>Minta táblázat</caption> <tr> <th>1. oszlop</th> <th>2. oszlop</th> <th>3. oszlop</th> </tr> <tr><td>1. sor, 1. cella</td> <td>1. sor, 2. cella</td> <td>1. sor, 3. cella</td> </tr> <tr> <td>2. sor, 1. cella</td> <td>2. sor, 2. cella</td> <td>2. sor, 3. cella</td> </tr></table>
68
Fejlett Programozási Technológiák 2.
Űrlapok <form>
actionmethod
get post
name
69
Fejlett Programozási Technológiák 2.
Elemek <input>
text password file hidden radio checkbox button submit reset
<select>sizemultiplenameoption
<textarea>namerowscols
70
Fejlett Programozási Technológiák 2.
Példa I. rész…<form action="ertekelo.php" method="post" name="form1">… <td><input type="text" name="vnev" size="20"
maxlength="50"></td></tr><tr><td>Keresztnév:</td> <td><input type="text" name="knev" size="20"
maxlength="50"></td></tr><tr><td>Nem:</td> <td><input type="radio" name="nem" value="f" checked> <input type="radio" name="nem" value="n"></td></tr>
71
Fejlett Programozási Technológiák 2.
Példa II. rész… <td><select name="osztaly">
<option value="a">A osztály</option> <option value="b" selected>B osztály</option>
</select>…<tr><td colspan="2" align="center"> <textarea name="leiras" cols="30" rows="5">Ide kell beírni a leírást
</textarea>… <input type="submit" value="Elküld"> …</form>…
72
Fejlett Programozási Technológiák 2.
Dokumentum leíró nyelvek SGML (bonyolult) HTML
Előre definiált elemkészletCsak megjelenítésHibakezelés (<li>, 30%)
73
Fejlett Programozási Technológiák 2.
Megoldás: XML Nincs nyelvtana Nincs elemkészlete
Tetszőleges nyelvtan Tetszőleges elemkészlet Nagyon rugalmas Saját jelölő nyelv
74
Fejlett Programozási Technológiák 2.
7 indok az XML használatára1. 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
75
Fejlett Programozási Technológiák 2.
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
76
Fejlett Programozási Technológiák 2.
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
77
Fejlett Programozási Technológiák 2.
XML nyelvcsalád XML Adatleíró nyelv DTD XML Shema XSL, XSLT Xpath XQL XML/EDI XML-RPC …
78
Fejlett Programozási Technológiák 2.
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>2002.05.01</hatarido>
</Feladat>
79
Fejlett Programozási Technológiák 2.
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
80
Fejlett Programozási Technológiák 2.
Szerkezet
<?xml version="1.0"?>
<!DOCTYPE Feladat SYSTEM "DTD\feladat.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
PI
DTDGyökér elem
81
Fejlett Programozási Technológiák 2.
Elemek<elem tulajdonság=”valami”>
érték
</elem>
<elem tulajdonság=”valami”/>
Nyitó elem
Záró elem
Záróelem nélküli elem
82
Fejlett Programozási Technológiák 2.
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)<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>
83
Fejlett Programozási Technológiák 2.
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>
84
Fejlett Programozási Technológiák 2.
Névtér
<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>
Probléma: Megoldás előtétel:
85
Fejlett Programozási Technológiák 2.
Névtér URI xmlns<?xml version="1.0"?><!DOCTYPE Feladat SYSTEM "DTD\feladat.dtd"> <Pelda1:Feladat xmlns:Pelda1="http://wilma.cab.u-szeged.hu :8080/cocoon/pelda1.xml"> <Pelda1:vegrahajto>Kardos Katalin</Pelda1:vegrahajto> <Pelda1:megbizo>Nagy Emese</Pelda1:megbizo>
<Pelda1:hatarido>2002.05.01</Pelda1:hatarido> </Pelda1:Feladat>
86
Fejlett Programozási Technológiák 2.
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átjukEsemények generálódnakEseménykezelő metódusok
87
Fejlett Programozási Technológiák 2.
A Mai előadás tartalma Elosztott rendszerek
Miért van rájuk szükség Tervezési minták
HTTP Felépítése Biztonság HTTPS
HTML Funkciója Megjelenítés Események Adatbevitel
XML Funkciója Kapcsolatos technológiák
88
Fejlett Programozási Technológiák 2.
A Következő előadás tartalma DTD, XSD XPath, XSLT