Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

Fejlett Programozási Technikák 2.

Hasonló előadás


Az előadások a következő témára: "Fejlett Programozási Technikák 2."— Előadás másolata:

1 Fejlett Programozási Technikák 2.
7/3

2 A mai előadás tartalma:
CSS XML DTD XPath XSLT WEBdav SyncML WAP WML

3 Problémák Tartalom, formázás egyveleg HTML formázó készlet szegényes
HTML a dokumentum szerkezetét adja A böngészőre volt bízva a megjelenítés Netscape, IE, új elemek Egységes megoldás CSS

4 A CSS Előnyei Tartalom, formázás elkülönül Nyílt szabvány
Sok böngésző támogatja Stílust definiál Megkönnyíti a munkát

5 Definiálható HTML elemen belül HTML dokumentum fejrészében
Külső css fájlban Több külső css fájlban

6 Érvényesítési sorrend
Böngésző alapértelmezett css Külső css Fejrész css Egyes elemekben definiált

7 A CSS bejegyzés felépítése
Választó Tulajdonság Érték

8 Példa Body { color:yellow } p { font-family:”sans serif” } P
text-align: center; color: black; font-family: arial h1, h2, h3, h4, h5, h6 { color: green}

9 Hivatkozások: Class p.jobb {text-align: right}
p.kozep {text-align: center} <p class=”jobb”>Ez a bekezdés jobbra lesz igazítva<p> <p class=”bal”>Ez a bekezdés jobbra lesz igazítva<p>

10 Hivatkozások: Általános
.kozep {text-align: center} <input type=”text” class=”kozep”> <p class=”kozep”>Középre igazítva</p>

11 Hivatkozások: id #intro { font-size:110%; font-weight:bold;
color:#0000ff; background-color:transparent } p#intro

12 Definiálás Külső oldal: Fejrészben: Az adott elemnél: <head>
<link rel="stylesheet" type="text/css" href="minta.css" /> </head> Fejrészben: <style type="text/css"> hr {color: sienna} p {margin-left: 20px} body {background-image: url("images/back40.gif")} </style> Az adott elemnél: <p style="color: sienna; margin-left: 20px"> Ez egy bekezdés</p>

13 Formázási lehetőségek
Háttér Szöveg Betű Keretvonal Margó Listák

14

15

16

17

18

19

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

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

22 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.

23 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

24 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

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

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

27 DTD Document Type Definition
Definiálja a dokumentum: Szintaktikáját Szemantikáját Ipari DTD <!ELEMENT ul (li)+> <!ELEMENT ol (li)+> <!ELEMENT li (#PCDATA)>

28 Együttműködés adatbázisokkal
XML Shema XML szintaxist használ A legismertebb adattípusokat támogatja Saját adattípusokat definiálhatunk XML névteret használ Együttműködés adatbázisokkal <?xml version = "1.0" ?> <schema xmlns = "    <element name = "Customer">       <complexType>          <sequence>             <element name = "FirstName" type = "string" />             <element name = "MiddleInitial" type = "string" />             <element name = "LastName" type = "string" />          </sequence>       </complexType>    </element> </schema>

29 XSL XML alapú sablon XSLFO (Formatting Objects)
Papír kimenet A kimenet lehet pl.: pdf XSLT (XSL Transformations) Programozási módszer Beépített vezérlési struktúrák

30 XSLFO példa <xsl:template match="chapter"> <fo:flow>
<xsl:apply-templates/> </fo:flow> </xsl:template> <xsl:template match="chapter/title"> <fo:block font-size="18pt" font-weight="bold" text-align="centered"> </fo:block> <xsl:template match="para"> <fo:block font-size="12pt" space-before="1pc" text-align="justified"> <xsl:template match="emphasis"> <fo:inline font-style="italic"> </fo:inline>

31 XSLT péda <?xml version="1.0" encoding="ISO-8859-2"?>
<xsl:stylesheet xmlns:xsl=" version="1.0"> <xsl:template match="/"> <html> <body> <xsl:value-of select="."/> </body> </html> </xsl:template> </xsl:stylesheet>

32 XPath Az XML dokumentum részeinek címzésére szolgál
 <AAA>           <BBB/>           <CCC/>           <BBB/>           <DDD>                <BBB/>           </DDD>           <CCC>                <DDD>                     <BBB/>                     <BBB/>                </DDD>           </CCC>      </AAA> XPath kifejezés: //BBB

33 XQL XML Query Language Az XSL kiterjesztése
Csomópontok azonosítása szűrése

34 XML/EDI EDI az e-commerce nagyapja XML/EDI
Elektronikus üzenetcsere (nem manuális) Struktúrált adatok cseréje Dokumentum csere automatizálása Változások nehéz követése (párhuzamos rendszerek) Költséges XML/EDI Rugalmas környezet Számítógép számára is értelmezhető Olcsó

35 EDI

36 XML/EDI

37 XML-RPC Távoli eljárás hívás HTTP protokoll mint átviteli közeg
XML formátum Egyszerű Perl, Java, Python, C, C++, PHP nyelveken használható

38 Példa python> import xmlrpclib
python> server = xmlrpclib.Server(" python> server.examples.getStateName(41) <methodCall> <methodName>examples.getStateName </methodName> <params> <param> <value> <int>41</int> </value> </param> </params> </methodCall>

39 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

40 Szerkezet PI DTD Fejléc 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> DTD Fejléc Gyökér elem Törzs

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

42 Elemek tulajdonságai 1) 2) <személy nem=”nő"> <személy>
<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

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

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

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

46 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

47 DTD Öndokumentálás Nyelvtan Elemkészlet Hibadetektálás (B2B)

48 Példa <!ELEMENT Pelda1:Feladat (Pelda1:vegrehajto, Pelda1:megbizo,
Pelda1:hatarido)> <!ELEMENT Pelda1:vegrehajto (#PCDATA)> <!ELEMENT Pelda1:megbizo (#PCDATA)> <!ELEMENT Pelda1:hatarido (#PCDATA)>

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

50 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”

51 XML Schema 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

52 XPath Segítségével megcímezhető egy XML dokumentum egy adott része
Szintakszisa nem XML alapú Az XPath értelmezésében egy XML dokumentum 7 féle részből állhat, ezek: Gyökér csomópontok (root nodes) csomópontok (element nodes) szöveges csomópontok (text nodes) tulajdonságok (attribute nodes) névterek(namespace nodes) vezérlési utasítások (processing instruction nodes) megjegyzések (comment nodes) Eredmény: csomópontok egy csoportja logikai érték (igen vagy nem) szám vagy szöveg.

53 XPath szintaxis / Hasonlít a fájlrendszer elérési útvonlához
/ az abszolút útvonal az adott elemig Példa: /AAA/CCC <AAA>           <BBB/>           <CCC/>           <BBB/>           <BBB/>           <DDD>                <BBB/>           </DDD>           <CCC/>      </AAA>

54 //, * Minden elemet kijelöl mely teljesíti a feltételeket: pl.: //BBB
//DDD/BBB /AAA/DDD/* /*/*/BBB <AAA>           <BBB/>           <CCC/>           <BBB/>           <DDD>                <BBB/>           </DDD>           <CCC>                <DDD>                     <BBB/>                     <BBB/>                </DDD>           </CCC>      </AAA> <AAA>           <BBB/>           <CCC/>           <BBB/>           <DDD>                <BBB/>           </DDD>           <CCC>                <DDD>                     <BBB> <EEE/>                     <BBB/>                </DDD>           </CCC>      </AAA> <AAA>           <BBB/>           <CCC/>           <BBB/>           <DDD>                <BBB/>           </DDD>           <CCC>                <DDD>                     <BBB> <EEE/>                     <BBB/>                </DDD>           </CCC>      </AAA> <AAA>           <BBB/>           <CCC/>           <BBB/>           <DDD>                <BBB/>           </DDD>           <CCC>                <DDD>                     <BBB> <EEE/>                     <BBB/>                </DDD>           </CCC>      </AAA>

55 A []-be beírt szám megadja az elem pozicióját a last() az utolsót válsztja ki. Tulajdonságokat specifikálhatunk segítségével /AAA/BBB[1] /AAA/BBB[last()] <AAA>           <BBB/>           <BBB/>           <BBB/>           <BBB/>      </AAA> <AAA>           <BBB/>           <BBB/>           <BBB/>           <BBB/>      </AAA>      <AAA>           <BBB id = "b1"/>           <BBB id = "b2"/>           <BBB name = "bbb"/>           <BBB/>      </AAA>      <AAA>           <BBB id = "b1"/>           <BBB id = "b2"/>           <BBB name = "bbb"/>           <BBB/>      </AAA>

56 count(),name(),contains()
count() megszámolja az elemeket name() a nevét adja vissza contains() tartalmazást ellenőriz pl: //*[count(*)=2] //*[contains(name(),'C')]      <AAA>           <BCC>                <BBB/>                <BBB/>                <BBB/>           </BCC>           <DDB>                <BBB/>                <BBB/>           </DDB>           <BEC>                <CCC/>                <DBD/>           </BEC>      </AAA> <AAA>           <CCC>                <BBB/>                <BBB/>                <BBB/>           </CCC>           <DDD>                <BBB/>                <BBB/>           </DDD>           <EEE>                <CCC/>                <DDD/>           </EEE>      </AAA>

57 parent::, ancestor::, following-sibling::, following::
parent:: a szomszédokat jelöli ki ancestor:: az ősöket jelöl ki following-sibling:: az utána következő testvéreket jelöli ki Following:: az utána következő csomópontokat jelöli ki Pl: //DDD/parent::* /AAA/BBB/DDD/CCC/EEE/ancestor::* /AAA/BBB/following-sibling::* /AAA/XXX/following::*     <AAA>           <BBB>                <DDD>                     <CCC>                          <DDD/>                          <EEE/>                     </CCC>                </DDD>           </BBB>           <CCC>                <DDD>                     <EEE>                          <DDD>                               <FFF/>                          </DDD>                     </EEE>                </DDD>           </CCC>      </AAA>      <AAA>           <BBB>                <DDD>                     <CCC>                          <DDD/>                          <EEE/>                     </CCC>                </DDD>           </BBB>           <CCC>                <DDD>                     <EEE>                          <DDD>                               <FFF/>                          </DDD>                     </EEE>                </DDD>           </CCC>      </AAA> <AAA>           <BBB>                <CCC/>                <DDD/>           </BBB>           <XXX>                <DDD>                     <EEE/> </DDD>           </XXX>           <CCC>                <DDD/>           </CCC>      </AAA>  <AAA>           <XXX>                <DDD>                     <EEE/>                     <DDD/>                     <CCC/>                     <FFF/>                     <FFF>                          <GGG/>                     </FFF>                </DDD>           </XXX>           <CCC>                <DDD/>           </CCC>      </AAA>

58 XML megjelenítése CSS XSL/XSLT Egyszerű Nincs transzformáció
Transzformációs nyelv XSLT Stílusleíró nyelv XSL

59 XSLT

60 Eszközök IE 6.0 Cocoon Java Servlet XML formátum XSLT feldolgozó
Utófeldolgozó HTML, XHTML, WML, PDF, XSL:FO

61 Felépítése XSLT egy XML dokumentum; melynek névtere ( A legtöbb stíluslap önálló Gyökere <xsl:stylesheet> vagy <xsl:transform>

62 Példa <xsl:stylesheet xmlns:xsl=" xmlns:Pelda1=" cocoon/xslp1.xml"> <xsl:template match="Pelda1:Feladat"> ez kerül az adott elem helyére </xsl:template> </xsl:stylesheet>

63 Példa(XML) <?xml version="1.0" encoding="ISO-8859-2"?>
<oldal> <cim>Hello</cim> <tartalom> <para>Ez egy bekezdés</para> </tartalom> </oldal>

64 Példa(XSLT) <?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl=" <xsl:template match="oldal"> <html> <head> <title><xsl:value-of select="cim" /></title> </head> <body> <xsl:apply-templates /> </body> </html> </xsl:template> </xsl:stylesheet>

65 For-each <?xml version="1.0" encoding="ISO-8859-2"?>
<oldal> <munkatársak> <név> <vezetéknév>Nagy</vezetéknév> <keresztnév>Tamás</keresztnév> </név> <vezetéknév>Szép</vezetéknév> <keresztnév>Ilona</keresztnév> <vezetéknév>Kiss</vezetéknév> <keresztnév>Tihamér</keresztnév> </munkatársak> </oldal>

66 For-each <?xml version="1.0" encoding="ISO-8859-2"?>
<xsl:stylesheet version="1.0" xmlns:xsl=" <xsl:template match="munkatársak"> <html> <head> </head> <body> <table border="1" cellspacing="0" cellpadding="8"> <tr> <td><b>Vezetéknév</b></td> <td><b>Keresztnév</b></td> </tr> <xsl:for-each select="név" > <td><xsl:value-of select="vezetéknév" /></td> <td><xsl:value-of select="keresztnév" /></td> </xsl:for-each> </table> </body> </html> </xsl:template> </xsl:stylesheet>

67 Eredmény

68 Sorbarendezés <?xml version="1.0" encoding="ISO-8859-2"?>
<xsl:stylesheet version="1.0" xmlns:xsl=" <xsl:template match="munkatársak"> <ul> <xsl:apply-templates select="név"> <xsl:sort select="vezetéknév"/> <xsl:sort select="keresztnév"/> </xsl:apply-templates> </ul> </xsl:template> <xsl:template match="név"> <li> <xsl:value-of select="vezetéknév"/> <xsl:text> </xsl:text> <xsl:value-of select="keresztnév"/> </li> </xsl:stylesheet>

69 Sorszámozás <?xml version="1.0" encoding="ISO-8859-2"?>
<xsl:stylesheet version="1.0" xmlns:xsl=" <xsl:template match="munkatársak"> <xsl:for-each select="név"> <xsl:sort select="vezetéknév"/> <xsl:sort select="keresztnév"/> <p> <xsl:number value="position()" format="1. "/> <xsl:value-of select="."/> </p> </xsl:for-each> </xsl:template> </xsl:stylesheet>

70 if <?xml version="1.0" encoding="ISO-8859-2"?>
<xsl:stylesheet version="1.0" xmlns:xsl=" <xsl:template match="oldal"> <table> <xsl:apply-templates/> </table> </xsl:template> <xsl:template match="név"> <tr> <td> <xsl:if test="keresztnév='Ilona'">---></xsl:if> </td> </tr> </xsl:stylesheet>

71 WEBdav Közös munka elősegítése Kompatíbilis a HTTP-vel Azonosítás
Zárolás Tulajdonság kezelés Hierarchia kezelés Kompatíbilis a HTTP-vel

72 Metódusok PROPFIND -- lekérdezi az URI segítségével megcímezett erőforrás általunk megadott paramétereit. PROPPATCH -- manipulálja URI segítségével megcímezett erőforrás általunk megadott paramétereit. MKCOL -- segítségével tudunk új erőforrásokat, erőforráshalmazokat létrehozni GET, HEAD -- változatlan POST -- változatlan DELETE -- erőforrások, vagy erőforrások halmazának törlése, ha egyszerre többet szeretnénk törölni és egyet vagy többet nem tudunk törölni akkor egyet sem fog törölni. PUT -- erőforrásokat tölthetünk fel a szerverre, ha a megfelelő hierarchia már lére van hozva a MKCOL által COPY -- erőforrások, erőforráshalmazok másolását biztosítja beállítható mélységben MOVE -- hasonló mint a COPY csak törli az erőforrást LOCK – zárolás UNLOCK -- zárolás feloldása

73 Zárolás Shared Exclusive XML kód Paraméter továbbítás

74 Példa PROPPATCH /bar.html HTTP/1.1 Host: www.foo.com
Content-Type: text/xml; charset="utf-8„ Content-Length: xxxx <?xml version="1.0" encoding="utf-8" ?> <D:propertyupdate xmlns:D="DAV:" xmlns:Z=" <D:set> <D:prop> <Z:authors> <Z:Author>Jim Whitehead</Z:Author> <Z:Author>Roy Fielding</Z:Author> </Z:authors> </D:prop> </D:set> <D:remove> <D:prop><Z:Copyright-Owner/></D:prop> </D:remove> </D:propertyupdate>

75 SyncML Tartalom szinkronizálás HTTP protokollra épül XML alapú
Kliens-szerver Nyitott szabvány Mobile computing has an Achilles heel - data synchronization. All the popular mobile devices - handheld computers, mobile phones, pagers, laptops - synchronize their data with network applications, desktop calendars, and other locations where information is stored. This ability to access and update information on the fly is key to the pervasive nature of mobile computing. Yet, today, almost every device uses a different technology for performing data synchronization. By definition, mobile users are not always connected to a network and its stored data. Users retrieve data from the network and store it on the mobile device, where they access and manipulate the local copy of the data. Periodically, users reconnect with the network to send any local changes back to the networked data repository. Users also have the opportunity to learn about updates made to the networked data while the device was disconnected. Occasionally, they need to resolve conflicts among the updates made to the networked data. This reconciliation operation - where updates are exchanged and conflicts are resolved -is known as data synchronization. Data synchronization, then, is the process of making two sets of data look identical. For a mobile device, synchronization applies to the data that the mobile device stores locally. A data synchronization protocol defines the workflow for communication during a data synchronization session when the mobile device is connected to the network. The protocol must support naming and identification of records, common protocol commands to synchronize local and network data, and it can support identification and resolution of synchronization conflicts.

76 Függvények <Add> adat hozzáadás <Alert> értesíti a célt
<Atomic> együtt kell végrehajtani <Copy> adatok másolása <Delete> adat törlése <Exec> program futtatása <Get> adat letöltése <Map>két adatkészlet közötti kapcsolat frissítése <Put> felmásolás <Replace> felülírás <Search> keresés <Sequence> a programok sorban hajtódjonak végre <Sync> két adathalmazt szinkronizál

77 Mobil rendszerek 530 millió előfizető 2001.ben 1000 millió 2004-ben
A készülékek többsége alkalmas lesz multimédia befogadására ( ,push,pull) A fejlesztések összefogása -> WAP fórum (a résztvevők rendelkeznek gyártókapacitás 90%-ával) WAP Wireless Application Protocol de-facto szabvány mely leírja a multimédiás adatok prezentálását és átvitelét

78 A siker titka ‘Killer’ alkalmazások Helyhez kötött: Válalati:
Valós idejű közlekedési információk Esemény, étterem ajánlók Személyre szabott szolgáltatások …. Válalati: elérés Adatbázis elérés Információ frissítés (push) Pénzügyi szolgáltatások: Pénzügyi tranzakciók Számla fizetés Utazási szolgáltatások: Menetrendek Foglalások Játékok

79 Problémák Eszköz: Hálózat:
gyengébb CPU kisebb ROM, RAM korlátozott energia kicsi kijelző különböző beviteli eszközök Hálózat: kisebb sávszélesség nagyobb késleltetés kisseb kapcsolat stabilitás kevésbé megjósolható rendelkezésre állás Más a WAP felhasználók igénye mint az asztali számítógép használóké (ár, elérhetőség, feladatok) Ezek a tulajdonságok nem fognak jelentősen megváltozni a közeljövőben

80 WAP alkalmazás váz WAE User agent Push Multimedia Messaging
Content Formats

81 WAP architektúra Felhasználja az eddigi technológiákat (HTTP -> WAP Gateway) Az átviteli réteg fölé épül így elfedi az átviteli technológiák közötti különbséget (SMS, GSM, USSD) UDP -> WDP TCP -> WTP TLS -> WTLS Micro Browser Hypermedia transfer Streaming Message Transfer

82 WAP architektúra

83 WAP rétegek

84 WML Kártyacsomag (Deck) Kártya (Card) <?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN” " <wml> <card id="FC" title="Első Kártya"> <p> Helló Világ ! </p> </card> </wml>

85 Megjelenítés Nokia Mobile Internet Toolkit Cocoon

86 Formázás <?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" " <wml> <card title="Formázás"> <p> egyszeru<br/> <em>kiemelt</em><br/> <strong>eros</strong><br/> <b>vastag</b><br/> <i>dolt</i><br/> <u>aláhúzott</u><br/> <big>nagy</big><br/> <small>kicsi</small> </p> </card> </wml>

87 Hivatkozások anchor elem go prev refresh <?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" " <wml> <card id="elso" title="Elso"> <p> Az elso kártya <br/> <anchor title="Link">A másodikra! <go href="#masodik"/> </anchor></p> </card> <card id="masodik" title="Második"> <p>A második kártya. <anchor title="Link">Az előző! <go href="#elso"/> </wml>

88 Felhasználói bevitel input név érték típus (text,passwd) formátum cím
sorrend

89 Formátum NNNNN\-NNN A -- minden nagybetűt engedélyez
a -- minden kisbetűt engedélyez N -- minden számot engedélyez X -- minden nagybetűt és számot engedélyez x -- minden kisbetűt és számot engedélyez M -- mindent engedélyez *f -- bármennyi f típusú karaktert engedélyez (itt f a fenti értékeket veheti fel) nf -- n f típusú karaktert engedélyez (itt f a fenti értékeket veheti fel) \C -- a C vagy bármely más karaktert beilleszti az adott helyre NNNNN\-NNN

90 Select Select Options Optogroup <?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" " <wml> <card id="elso" title="Első"> <p> <select name="csoport"> <option value="1">Elso csoport</option> <option value="2">Második csoport</option> </select> </p> </card> </wml>

91 Timer <?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" " <wml> <card ontimer="wml1.wml"><timer value="30"/> <p>Ez 30 másodpecig látható utána a legelsö példának megfelelö oldal töltodik be</p> </card> </wml>

92 Változók <?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" " <wml> <card id="c1"> <p> <select name="evfolyam"> <option value="3">Harmad éves</option> <option value="4">Negyed éves</option> </select> <a href="#c2" title="Tovább">Tovább</a> </p> </card> <card id="c2"> Az elözö oldalon a $evfolyam. évfolyamot választottad ki</p> </wml>


Letölteni ppt "Fejlett Programozási Technikák 2."

Hasonló előadás


Google Hirdetések