Fejlett Programozási Technikák 2.

Slides:



Advertisements
Hasonló előadás
Adatbázis gyakorlat 1. Szerző: Varga Zsuzsanna ELTE-IK (2004) Budapest
Advertisements

Hálózati és Internet ismeretek
Weblap szerkesztés HTML oldal felépítése Nyitó tag Záró tag Nyitó tag Záró tag oldalfej tözs.
Tempus S_JEP Számítógép hálózatok Összefoglalás Összefoglalás Összeállította: Broczkó Péter (BMF)
1 Internet. 2 WWW  World Wide Web  Hivatkozásokkal összekötött hipermédia dokumentumok rendszere  Dokumentumok -> Weboldalak  A weboldalak hipertext.
Az internet és a web A HTML alapjai.  „Úgy gondoljuk, hogy a világpiacon talán öt darab számítógépet tudnánk eladni.” (Thomas Watson, az IBM elnöke,
Egy kisvállakozás dinamikus weboldalának fejlesztése: tervezés, problémák, megoldások Szilágyi Gábor.
Számítógép hálózatok.
Extensible Markup Language
Az Internet elemei és hozzáférési technológiái Az Internet architektúrája.
Utófeszített vasbeton lemez statikai számítása Részletes számítás
A tételek eljuttatása az iskolákba
OSI Modell.
Programrendszerek fejlesztése
Programrendszerek fejlesztése Bilicki Vilmos
.NET web szolgáltatások
1 Hálózati Operációs Rendszerek gyakorlat Bevezető Előadó: Bilicki Vilmos
Fejlett Programozási Technikák 2.
Fejlett Programozási Technológiák II. Világos Zsolt 1. gyakorlat.
VÁLOGATÁS ISKOLÁNK ÉLETÉBŐL KÉPEKBEN.
Hernyák Zoltán XML validálás.
1. IS2PRI2 02/96 B.Könyv SIKER A KÖNYVELÉSHEZ. 2. IS2PRI2 02/96 Mi a B.Könyv KönyvelésMérlegEredményAdóAnalitikaForintDevizaKönyvelésMérlegEredményAdóAnalitikaForintDeviza.
Osztott alkalmazások kezelése. VIR elosztott architektúra indítékai: - meglévő komponensek integrációja - WEB / Internet elterjedése (nemzetköziség) -
WEB Technológiák Dr. Pance Miklós – Kolcza Gábor Miskolci Egyetem.
WSDL alapismeretek A WSDL (Web Services Description Language – Web szolgáltatások leíró nyelv) egy XML-alapú nyelv a Web szolgáltatások leírására és azok.
Önleíró adatok: XML INFO ÉRA, Békéscsaba
Sárgarépa piaca hasonlóságelemzéssel Gazdaság- és Társadalomtudományi kar Gazdasági és vidékfejlesztési agrármérnök I. évfolyam Fekete AlexanderKozma Richárd.
SOAP alapismeretek A SOAP egy egyszerű XML alapú protokoll, ami lehetővé teszi, hogy az alkalmazások információt cseréljenek a HTTP-én keresztül. Forrás:
WEB MES (webes gyártásirányító rendszer)
DRAGON BALL GT dbzgtlink féle változat! Illesztett, ráégetett, sárga felirattal! Japan és Angol Navigáláshoz használd a bal oldali léptető elemeket ! Verzio.
XML támogatás adatbázis-kezelő rendszerekben
…az ISA Server 2006 segítségével Gál Tamás Microsoft Magyarország.
Hálózatkezelési újdonságok Windows 7 / R2
Hálózati és Internet ismeretek
szakmérnök hallgatók számára
Logikai szita Izsó Tímea 9.B.
2007. május 22. Debrecen Digitalizálás és elektronikus hozzáférés 1 DEA: a Debreceni Egyetem elektronikus Archívuma Karácsony Gyöngyi DE Egyetemi és Nemzeti.
WEB 2.0. Amiről szó lesz… Web átalakulóban, a WEB 2.0 –Újszerű weboldalak… –Első a tartalom! –A felhasználók hatalomátvétele?! –A Web mint platform –
PHP oktatási tapasztalatok
Hálózati alapismeretek
A klinikai transzfúziós tevékenység Ápolás szakmai ellenőrzése
Web Architecture. Development of Computing Architectures Monolithic mainframe programming Client Server Real Client Server Web Programming.
Illés Zoltán ELTE Informatikai Kar
XML adatkezelés 1. témakör Az XML szabvány.
Supervizor By Potter’s team SWENG 1Szarka Gábor & Tóth Gergely Béla.
Java web programozás 11..
Az Internet alkalmazásai
XML Mi az XML?  Extensible Markup Language  Kiterjeszthető jelölő nyelv  Adatok, adatstruktúrák leírására szolgál  A HTML és az SGML tapasztalataira.
1. Melyik jármű haladhat tovább elsőként az ábrán látható forgalmi helyzetben? a) A "V" jelű villamos. b) Az "M" jelű munkagép. c) Az "R" jelű rendőrségi.
Eszköz és identitás kezelés Korlátlan fájl szerver kapacitás Másodlagos adatközpont Korlátlanul skálázódó infrastruktúra Biztonságos DMZ Hibrid adat-
OKOSTELEFON KÖZÉPRÉTEG, VALÓS IDEJŰ TELJESEN ELOSZTOTT ADATFELDOLGOZÁS
HTML ÉS PHP (Nagyon) rövid áttekintés. ADATBÁZISRENDSZEREK MŰKÖDÉSI SÉMÁJA Felh. interakció DB Connector MySQL ? A gyakorlaton:
Webes alkalmazásfejlesztés
Illés Zoltán ELTE Informatikai Kar
> aspnet_regiis -i 8 9 TIPP: Az „Alap” telepítés gyors, nem kérdez, de később korlátozhat.
Webprogramozó tanfolyam
Live Communication Server Integrált kommunikációs infrastruktúra Mobil támogatás Munkaterület Instant üzenetküldés VOIP Alkalmazások, munkafolyamatok.
Az XML nyelv (Extensible Markup Language). XML  XML: leíró nyelv (metanyelv)  XML alkalmazás: egy megalkotott nyelv  XML dokumentum: egy új nyelv egy.
A Windows Server 2003 termékcsalád A Windows Server 2003 termékcsaládnak 4 tagja van: Windows Server 2003, Standard Edition Windows Server 2003, Enterprise.
Kommunikáció-technológia specializáció
Piramis klaszter rendszer
Bevezetés az informatikába 11. előadás Internet. Egyetlen nagy egységes elveken működő világhálózat hálózatok összekapcsolása nagy világhálóvá csomagkapcsolt.
.NET FRAMEWORK Röviden Krizsán Zoltán 1.0. Tulajdonságok I Rövidebb fejlesztés 20 támogatott nyelv (nyílt specifikáció) 20 támogatott nyelv (nyílt specifikáció)
Tűzfal (firewall).
Webes technológiák 10/1. Bilicki Vilmos Árpád tér 50.-es szoba 3411-es mellék.
AZURE RÉGIÓK Szoftver szolgáltatás SaaS Platform szolgáltatás PaaS Infrastruktúra szolgáltatás IaaS.
Fejlett Programozási Technikák 2.
Internet és kommunikáció
Internet és kommunikáció
Az INTEGRÁLT RENDSZER Több egymáshoz kapcsolódó, egymást kiegészítő biztonsági rendszer összessége, szoftver és hardver elemekből felépítve.
Előadás másolata:

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

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

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

Tematika I. 1,2 Előadás 3. Előadás menedzselt kód (Java 1.5) 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

Tematika II. 6. Előadás 7. Előadás 8. Előadás 9. Előadás 10. 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

Tematika III. 12. Előadás 13. Előadás 14. Előadás 15. Előadás J2EE, EJB 13. Előadás Webes szolgáltatások 14. Előadás .NET 15. Előadás ADO.NET

A Mai előadás tartalma Elosztott rendszerek HTTP HTML XML 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 Kapcsolatos 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: http://java.sun.com http://www.theserverside.com/ http://www.theserverside.net/

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

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

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”

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)

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

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

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

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

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

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

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ó

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)

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

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

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

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

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)

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

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

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

Két rétegű Kliens - megjelenítés Minden más egy szerveren

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

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

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 …

HTTP(Hyper Text Transfer Protocol) Kliens-szerver modell Állapotmentes Alkalmazásszintű protokol Megbízható átviteli közegre épül Új fogalmak: Webszerver Proxy szerver

HTTP 1.1 Kapcsolatorientált Részletes proxy specifikáció 80-as port URI (Universal Resource Identifier)

URI URL 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

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

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

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>

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

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

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

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

Egyéb CONNECT DELETE PUT

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

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

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

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

Azonosítási eljárások 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

Basic Authentication UID Password Realm HTTP/1.1 401 Authorization Required

Példa HTTP/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)

Hátrányok Nem biztonságos Használata mellőzendő, veszélyes Lehallgatható Nem titkosított Nincs megoldva a jelszó elosztása Használata mellőzendő, veszélyes Ha mégis akkor: Csak generált jelszavakkal szabad

Digest Authentication challenge-response nonce URI Idő Véletlen szám … Kivonatoló függvény (hash) MD5 Nehéz visszafejteni

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

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

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

Új megoldások Két megközelítési mód: Új réteg: Módosított HTTP TLS SHTTP

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

SHTTP Hasonló üzenet mint a HTTP protokollnál: Kérés: Secure * Secure-HTTP/1.4 Válasz: Secure-HTTP/1.4 200 OK

TLS (Tranport Layer Security) Új réteg bevezetése: Netscape SSL Microsoft PCT IETF TLS

TLS felosztása I. TLS Handshake Session identifier Peer certificate Compression method Cipher spec Master secret Is resumable

TLS felosztása II. TLS Record Fragmentálás Tömörítés Tartalom védelem Titkosítás

Kapcsolat felépítés Hello üzenetcsere Rejtjelezési paraméter csere Bizonyítvány csere Főkulcs Adatcsere

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)

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>

Táblázatok Egyik 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> <td>1. sor, 1. cella</td> <td>1. sor, 2. cella</td> <td>1. sor, 3. cella</td> <td>2. sor, 1. cella</td> <td>2. sor, 2. cella</td> <td>2. sor, 3. cella</td> </table>

Űrlapok <form> action method get post name

Elemek <select> <textarea> <input> size multiple name option <textarea> rows cols <input> text password file hidden radio checkbox button submit reset

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><td>Nem:</td> <td><input type="radio" name="nem" value="f" checked> <input type="radio" name="nem" value="n"></td>

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>

Dokumentum leíró nyelvek SGML (bonyolult) HTML Előre definiált elemkészlet Csak megjelenítés Hibakezelés (<li>, 30%)

Megoldás: XML Nincs nyelvtana Nincs elemkészlete Tetszőleges nyelvtan Tetszőleges elemkészlet Nagyon rugalmas Saját jelölő nyelv

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.

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

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

XML nyelvcsalád XML Adatleíró nyelv DTD XML Shema XSL, XSLT Xpath XQL XML/EDI XML-RPC …

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>

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

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>2002.05.01</hatarido> <megoldva v=”i”/> </Feladat> Fejléc DTD Gyökér elem Törzs

Elemek <elem tulajdonság=”valami”> érték </elem> Nyitó elem Záró elem Záróelem nélküli elem

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

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 : &amp, &quot, &apos, &gt, &lt CDATA segítségével bármilyen szöveget tartalmazhat: <minta> <![CDATA[ <aaa>bb&cc<<<]] </minta>

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>

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>

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

A Mai előadás tartalma Elosztott rendszerek HTTP HTML XML 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 Kapcsolatos technológiák

A Következő előadás tartalma DTD, XSD XPath, XSLT