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

Fejlett Programoz ási Technikák 2

  • 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

Page 1: Fejlett Programoz ási Technikák 2

1

Fejlett Programozási Technikák 2.

15/1

Page 2: Fejlett Programoz ási Technikák 2

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

Page 3: Fejlett Programoz ási Technikák 2

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

Page 4: Fejlett Programoz ási Technikák 2

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

Page 5: Fejlett Programoz ási Technikák 2

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

Page 6: Fejlett Programoz ási Technikák 2

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

Page 7: Fejlett Programoz ási Technikák 2

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

Page 8: Fejlett Programoz ási Technikák 2

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

Page 9: Fejlett Programoz ási Technikák 2

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

Page 10: Fejlett Programoz ási Technikák 2

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/

Page 11: Fejlett Programoz ási Technikák 2

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

Page 12: Fejlett Programoz ási Technikák 2

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

Page 13: Fejlett Programoz ási Technikák 2

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”

Page 14: Fejlett Programoz ási Technikák 2

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)

Page 15: Fejlett Programoz ási Technikák 2

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

Page 16: Fejlett Programoz ási Technikák 2

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

Page 17: Fejlett Programoz ási Technikák 2

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

Page 18: Fejlett Programoz ási Technikák 2

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

Page 19: Fejlett Programoz ási Technikák 2

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

Page 20: Fejlett Programoz ási Technikák 2

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

Page 21: Fejlett Programoz ási Technikák 2

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ó

Page 22: Fejlett Programoz ási Technikák 2

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)

Page 23: Fejlett Programoz ási Technikák 2

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

Page 24: Fejlett Programoz ási Technikák 2

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

Page 25: Fejlett Programoz ási Technikák 2

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

Page 26: Fejlett Programoz ási Technikák 2

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

Page 27: Fejlett Programoz ási Technikák 2

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)

Page 28: Fejlett Programoz ási Technikák 2

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

Page 29: Fejlett Programoz ási Technikák 2

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

Page 30: Fejlett Programoz ási Technikák 2

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

Page 31: Fejlett Programoz ási Technikák 2

31

Fejlett Programozási Technológiák 2.

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

iMac

iMac

Page 32: Fejlett Programoz ási Technikák 2

32

Fejlett Programozási Technológiák 2.

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

iMac

iMac

Page 33: Fejlett Programoz ási Technikák 2

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

Page 34: Fejlett Programoz ási Technikák 2

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

Page 35: Fejlett Programoz ási Technikák 2

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

Page 36: Fejlett Programoz ási Technikák 2

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)

Page 37: Fejlett Programoz ási Technikák 2

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

Page 38: Fejlett Programoz ási Technikák 2

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

Page 39: Fejlett Programoz ási Technikák 2

39

Fejlett Programozási Technológiák 2.

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

Page 40: Fejlett Programoz ási Technikák 2

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>

Page 41: Fejlett Programoz ási Technikák 2

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

Page 42: Fejlett Programoz ási Technikák 2

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

Page 43: Fejlett Programoz ási Technikák 2

43

Fejlett Programozási Technológiák 2.

POSTPOST /teszt/ HTTP/1.1

Host: wiliam.u-szeged.hu

adat: research

Page 44: Fejlett Programoz ási Technikák 2

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

Page 45: Fejlett Programoz ási Technikák 2

45

Fejlett Programozási Technológiák 2.

Egyéb CONNECT DELETE PUT

Page 46: Fejlett Programoz ási Technikák 2

46

Fejlett Programozási Technológiák 2.

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

Page 47: Fejlett Programoz ási Technikák 2

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

Page 48: Fejlett Programoz ási Technikák 2

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

Page 49: Fejlett Programoz ási Technikák 2

49

Fejlett Programozási Technológiák 2.

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

Page 50: Fejlett Programoz ási Technikák 2

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

Page 51: Fejlett Programoz ási Technikák 2

51

Fejlett Programozási Technológiák 2.

Basic Authentication UID Password Realm HTTP/1.1 401 Authorization Required

Page 52: Fejlett Programoz ási Technikák 2

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)

Page 53: Fejlett Programoz ási Technikák 2

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

Page 54: Fejlett Programoz ási Technikák 2

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

Page 55: Fejlett Programoz ási Technikák 2

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

Page 56: Fejlett Programoz ási Technikák 2

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

Page 57: Fejlett Programoz ási Technikák 2

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

Page 58: Fejlett Programoz ási Technikák 2

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

Page 59: Fejlett Programoz ási Technikák 2

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

Page 60: Fejlett Programoz ási Technikák 2

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

Page 61: Fejlett Programoz ási Technikák 2

61

Fejlett Programozási Technológiák 2.

TLS (Tranport Layer Security)Új réteg bevezetése:

Netscape SSL Microsoft PCT IETF TLS

Page 62: Fejlett Programoz ási Technikák 2

62

Fejlett Programozási Technológiák 2.

TLS felosztása I. TLS Handshake

Session identifierPeer certificateCompression methodCipher specMaster secret Is resumable

Page 63: Fejlett Programoz ási Technikák 2

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

Page 64: Fejlett Programoz ási Technikák 2

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

Page 65: Fejlett Programoz ási Technikák 2

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)

Page 66: Fejlett Programoz ási Technikák 2

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>

Page 67: Fejlett Programoz ási Technikák 2

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>

Page 68: Fejlett Programoz ási Technikák 2

68

Fejlett Programozási Technológiák 2.

Űrlapok <form>

actionmethod

get post

name

Page 69: Fejlett Programoz ási Technikák 2

69

Fejlett Programozási Technológiák 2.

Elemek <input>

text password file hidden radio checkbox button submit reset

<select>sizemultiplenameoption

<textarea>namerowscols

Page 70: Fejlett Programoz ási Technikák 2

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>

Page 71: Fejlett Programoz ási Technikák 2

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

Page 72: Fejlett Programoz ási Technikák 2

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

Page 73: Fejlett Programoz ási Technikák 2

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

Page 74: Fejlett Programoz ási Technikák 2

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

Page 75: Fejlett Programoz ási Technikák 2

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

Page 76: Fejlett Programoz ási Technikák 2

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

Page 77: Fejlett Programoz ási Technikák 2

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 …

Page 78: Fejlett Programoz ási Technikák 2

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>

Page 79: Fejlett Programoz ási Technikák 2

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

Page 80: Fejlett Programoz ási Technikák 2

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

Page 81: Fejlett Programoz ási Technikák 2

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

Page 82: Fejlett Programoz ási Technikák 2

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>

Page 83: Fejlett Programoz ási Technikák 2

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

<![CDATA[ <aaa>bb&cc<<<]]</minta>

Page 84: Fejlett Programoz ási Technikák 2

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:

Page 85: Fejlett Programoz ási Technikák 2

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>

Page 86: Fejlett Programoz ási Technikák 2

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

Page 87: Fejlett Programoz ási Technikák 2

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

Page 88: Fejlett Programoz ási Technikák 2

88

Fejlett Programozási Technológiák 2.

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