WML

32
Uvod Internet je sastavni deo svakodnevnog života Međutim, dok deo korisnika uči korišćenje Interneta, iz drugog plana na scenu se pojavljuje bežična tehnologija koja, za razliku od klasičnog pristupa Internetu , korisnicima pruža priliku da uvek imaju informacije bez obzira gde se nalaze. WAP (Wireless Aplication Protocol) ima zadatak da poveže mobilni svet i Internet bežičnim putem, sa dlana umesto sa desktopa, omogućavajući anytime – anywhere komunikaciju. Sigurno je da wireless neće biti samo minijaturna varijanta WWW sveta. Ljudi imaju potrebe za drugačijom vrstom informacija kada se koriste tehnologijom preko mobilnih uređaja. Najuočljivija razlika je to što je mobilni Internet usmeren na dobijanje informacija koje su trenutno primenjive. Informacije moraju biti precizne, detaljne i odmah upotrebljive. Neki sadržaji koji se preuzimaju sa Interneta mogu se naplaćivati putem telefonskog računa. Bežični pristup internetu predstavlja sledeći pravac razvoja interneta. Fiksni Internet je stvorio virtuelni svet u čijem fokusu su bile globalne informacije, dok Wireless Internet poslovna dešavanja vraća iz virtuelnog u fizički svet i realno vreme. Danas ima 4 milijarde mobilnih telefona u upotrebi u svetu. Oni su svetska najpopularnija tehnologija 1 . Sa 40 posto svih internet korisnika koji imaju mobilni pristup internetu, ti mali ekrani ubrzano postaju glavni način na koji ljudi pristupaju internetu. Koliki je taj rast zaparvo govori podatak da se između 2006 i 2008 2 duplirao broj korisnika mobilnih uređaja. Predviđa se da će do 2012, polovina svih uređaja koji pristupaju internetu biće mobilni uređaji. WAP 1 Poređenja radi ima ih 3 puta više nego televizora i 4 puta više nego računara. 2 Tokom 2008 u Kini se broj korisnika povećao za 113%. 1

Transcript of WML

Page 1: WML

Uvod

Internet je sastavni deo svakodnevnog života Međutim, dok deo korisnika uči korišćenje Interneta, iz drugog plana na scenu se pojavljuje bežična tehnologija koja, za razliku od klasičnog pristupa Internetu , korisnicima pruža priliku da uvek imaju informacije bez obzira gde se nalaze.WAP (Wireless Aplication Protocol) ima zadatak da poveže mobilni svet i Internet bežičnim putem, sa dlana umesto sa desktopa, omogućavajući anytime – anywhere komunikaciju.Sigurno je da wireless neće biti samo minijaturna varijanta WWW sveta. Ljudi imaju potrebe za drugačijom vrstom informacija kada se koriste tehnologijom preko mobilnih uređaja. Najuočljivija razlika je to što je mobilni Internet usmeren na dobijanje informacija kojesu trenutno primenjive. Informacije moraju biti precizne, detaljne i odmah upotrebljive. Neki sadržaji koji se preuzimaju sa Interneta mogu se naplaćivati putem telefonskog računa.Bežični pristup internetu predstavlja sledeći pravac razvoja interneta. Fiksni Internet je stvorio virtuelni svet u čijem fokusu su bile globalne informacije, dok Wireless Internet poslovna dešavanja vraća iz virtuelnog u fizički svet i realno vreme.Danas ima 4 milijarde mobilnih telefona u upotrebi u svetu. Oni su svetska najpopularnija tehnologija1. Sa 40 posto svih internet korisnika koji imaju mobilni pristup internetu, ti mali ekrani ubrzano postaju glavni način na koji ljudi pristupaju internetu. Koliki je taj rast zaparvo govori podatak da se između 2006 i 20082 duplirao broj korisnika mobilnih uređaja. Predviđa se da će do 2012, polovina svih uređaja koji pristupaju internetu biće mobilni uređaji.

WAP

Wireless Application Protocol najpribližnije se može prevesti kao “protokol za bežične aplikacije”, predstavlja otvorenu, globalnu specifikaciju čiji je zadatak da korisnicima mobilnih terminala pruži mogućnost da na lak način pristupaju različitim vrstama informacija i usluga. Zbog osnovnih limita u snazi, obliku i veličini, uobičajeni mobilni uređaji se odlikuju  ograničenom potrošnjom i kapacitetom memorije, slabijim procesorima, manjim displejima itd... U odnosu na žične mreže, bežične mreže se odlikuju daleko slabijim performansama (manji opseg, viši nivo smetnji, kašnjenje…). Namera WAP-a je povezivanje tržišta u dve najprogresivnije oblasti, bežičnih komunikacija i Interneta, i odgovor na nove zahteve u ovim oblastima. WAP detaljno opisuje okosnicu aplikacija, definiše izgled i način razmene paketa i mrežne protokole za bežične uređaje. WAP predstavlja most između mobilnog sveta, Interneta i korporacijskog Intraneta i omogućava pružanje servisa mobilnim pretplatnicima nezavisno od mreže koju koriste, nosioca poruka i vrste mobilnog terminala. On omogućava lak i siguran pristup informacijama na Internetu kao i korišćenje različitih servisa (slanje poruka, zabava) preko svojih mobilnih telefona ili PDA(personal digital assistant) uređaja. Posebno se može pristupati Intranet podacima u korporacijskim bazama podataka. Korisnici mogu primati i zahtevati informacije kontrolisano, brzo i jeftino, što čini WAP servise privlačnijim korisnicima koji zahtevaju veću funkcionalnost i korist od svog mobilnog telefona. WAP je projektovan da radi sa svim bežičnim mrežnim tehikama kakve su GSM, CDMA, i TDMA, a takodje je baziran i na Internet standardima kakvi su IP, XML, HTML, i HTTP. Pored toga WAP poseduje i mogućnost sigurnog prenosa informacije.

1 Poređenja radi ima ih 3 puta više nego televizora i 4 puta više nego računara.2 Tokom 2008 u Kini se broj korisnika povećao za 113%.

1

Page 2: WML

Pre uvođenja WAP, provajderi su imali vrlo ograničenu ponudu interaktivnih servisa za prenos podataka. Danas oni omogućavaju aktivnosti kao što su:

E-mail Praćenje zaliha tržišnih cena Sportski rezultati Najnovije vesti Download muzike...

WAP protokol je najrasprostranjeniji u Evropi i Aziji, dok u Americi veliki problem predstavljaju domaći mobilni provajderi koji se trude da na tržište proguraju svoje proizvide.

ISTORIJAT

      Inicijalni osnivači projekta nazvanog WAP su Nokia, Motorola, Ericsson i Phone.com. U osnovi to je trebao biti standard koji definiše kako će sadržaj sa Interneta biti filtriran za potrebe mobilnih terminala. U početku su ove kompanije počele sa razvijanjem standarda nezavisno jedna od druge, ali se ubrzo došlo do zaključaka da bi taj posao bio mnogo lakši i efektniji ukoliko bi se postavio zajednički standard. Njihov zajednički cilj je bio da postave jedinstven format za prenos podataka sa Interneta na mobilne telefone, izbegavajući pri tom izradu posebnih stranica za pojedine vrste mobilnih telefona. Osnivanjem WAP foruma (danas Open Mobile Alliance), stvoren je osnovni preduslov za uspostavljenja zajedničkog protokola koji bi bio dostupan svim korisnicima. 

WAP 1.0 Standard objavljen je u aprilu 1998. i opisao kompletan softver za mobilni pristup internetu. WAP verzija 1.1 je objavljen 1999.WAP 1.2, kao konačno ažuriranje 1.x serije je objavljena u junu 2000. Najvažniji dodatak u verziji 1.2 je WAP push.WAP push je u osnovi posebno kodirana poruka koja sadrži link na WAP adresu. Uz pomoć WAP Push omogućeno je da telefon automatski da korisniku mogućnost pristupa WAP sadržajima. To je također poznat kao WAP Push SI (Servis Indikacije).

Verzija 2.0. objavljana je 2001. , još uvek nije široko rasprostranjena. Ova verzija donela je pokušaj ukrštanja WML-a i Basic XHTML-a. Na kraju se od takve ideje odustalo, pa su samo neki elementi XHTML-a ugrađeni u WML. Najrasprostranjenije verzija WAP protokola jeste 1.3.

ARHITEKTURA WAP-a

WAP standard u suštini definiše skup standarda koji na jedan objedinjeni način definišu kako bežični ručni terminali komuniciraju preko bežične mreže, i na koji se način dostavlja sadržaj informacije i pružaju servisi koji se izvršavaju od strane mobilnih terminala (handsets). Uz pomoć WAP-a, standardni mobilni ručni terminali mogu da uspostave vezu sa WAP-ovom infrastrukturom koja je namenjena za bežični prenos podataka, i da od te infrastrukture zahtevaju razne sadržaje informacije i servise, a nakon toga da pribavljeni sadržaj i servise predstave korisniku.WAP standard nema efekat samo na implementaciju mobilnih ručnih terminala nego i na infrastrukturu servisa koji egzistira u strukturu mrežnog operatora (network operator), provajdera servisa (service provider), i provajdera sadržaja (content provider).

2

Page 3: WML

Na slici 1. prikazana je WAP arhitektura. Arhitekturu čini skup standardnih servisa koji obuhvataju mrežne protokole, sigurni prenos informacije, i aplikaciono okruženje.

Slika 2. WAP arhitektura

Skrećenice na slici 1. imaju sledeće značenje: WAE- Wireless Application Environment; WSP- Wireless Session Protocol; WTP- Wireless Transaction Protocol; WTLS- Wireless Transport Layer Security; WDP- Wireles Datagram Protocol; Bearers- donosioci informacije; CDPD (Cellular Digital Packet Data)- 19.2 kbps digitalni paketni servis koji bežičnu mrežu za prenos govornog signala koristi za prenos podataka. CDPD koristi FDM, pri čemu svaki paket predajnik šalje na različitoj frekvenciji. Koristi se u SAD i Kanadi. ANSI 136- koristi se u SAD. Bazira se na TDMA. ANSI 136 deli propusni opseg radio frekventnog kanala na vremenske slotove. Slotove alocira većem broju poziva. Takodje, slotove dodeljuje većem broju zadataka. GSM -Global System for Mobile Communications PDC (Personal Digital Cellular)- ovaj sistem se koristi u Japanu, a pruža servise kako za telefoniju tako i za prenos podataka. PHS (Personal Handy System)- odnosi se na evoluciju digitalne telefonske tehnologije (digital cordless phone technology) u wide-area telefoniji. Flex -protokol razvijen je od strane Motorola, podržava jednosmerni paging. ReFlex protokol podržava dvosmerni paging. Kao što se vidi sa slike 1. WAP standard je nivovski organizovan. Ovakva organizacija omogućava olakšano projektovanje mreže jer obezbedjuje da se ceo projekat podeli na više funkcionalnih nivoa. Pri tome se svakom nivou dodeli po jedan jasno izdeferenciran zadatak, čime se pomoću jednostavnijih protokola na svakom nivou mogu obavljati veoma kompleksni zadaci. Skup svih protokola čini celovitu infrastrukturu servisa kojih treba obezbediti.

3

Page 4: WML

Najveći broj nivoa je simetričan. To znači da se u toku prenosa kako na strani klijenta tako i na strani infrastruture izvršavaju aktivnosti u okviru istog nivoa (slika 2). Tako na primer, WTP na nivou klijenta komunicira sa WTP-om koji se izvršava od strane mrežne infrastrukture.

Slika 2. Komunikacija izmedju aplikacija i servisa koji se izvršavaju na klijentu (ručni mobilni uredjaj) i onih koji se izvršavaju na odgovarajućim nivoima u okviru mrežne infrastrukture

Nivoi WAP-ovog skupa protokola medjusobno saradjuju sa ciljem da obezbede sofiisticirano okruženje za prenos podataka, prenos aplikacija, i servisa koji se upućuju radi izvršenja ka mobilnim klijentima. Nivoi WAP-a se mogu podeliti u tri grupe, što odgovara sledećim trima nivoima:

1. adaptacija podnosilaca informacije- čini nevidljivim brojne signalne i kanalne protokole koji se koriste od strane bežičnoh mreža u celom svetu.

2. servisni protokoli- uključuju protokole koji pružaju brojne servise za prebacivanje kroz bežičnu mrežu aplikacionih podataka sa jednog mesta na drugo. Ovi servisi se odnose na sigurnost, pouzdanost i kešovanje podataka..

3. aplikaciono okruženje- odnosi se na browser-baziranog okruženja koje podržava prenosivost, na širok opseg različitih uredjaja, brojne sadržaje različitih aplikacija

Jedan detaljni pogled na WAP-stack definisan shodno preporukama organizacije IEEE prikazan je na slici 3.

4

Page 5: WML

Slika 3. WAP-stack

WAP programski model

WAP-ov programski model se zasniva na sledeća tri elementa: klijent, gateway, i original server.

Slika 4. WAP-ov programski model

Za prenos sadržaja izmedju gateway-a i original server-a koristi se HTTP (Hypertext Transfer Protocol). Za bežični domen gateway se ponaša kao proxy server. Procesor gateway-a pruža usluge koje rasterećuju ograničene mogućnosti ručnih, mobilnih i bežičnih terminala. Tako na primer, u jednom smeru, gateway obezbedjuje DNS servise, vrši konverziju izmedju WAP protokol stack-a i www stack-a (HTTP i TCP/IP), kodira informaciju iz Web-a u kompaktniju formu kojom se minimiziraju komunikacije, dok u drugom smeru, dekodira kompaktnu formu u standardne Web konvencionalne forme. Gateway, pored ostalog, takodje kešuje često zahtevanu informaciju. Na slici 5 prikazane su ključne komponente WAP-ovog okruženja. Koristeći WAP, mobilni korisnik može da pretražuje Web sadržaj na običnom serveru (ordinary Web server). Web server,

5

Page 6: WML

zatim, predaje sadržaj u formi HTML kodiranih stranica koje se prenose uz pomoć standardnog Web protokol stack (HTTP/TCP/IP). HTML-ov sadržaj mora da prodje kroz HTML filtar, koji može biti ko-lociran sa WAP-proxy ili izdvojen u poseban fizički modul. Filtar translira HTML sadržaj u WML sadržaj. Ako je filtar izdvojen od WAP-proxy-a tada se za isporuku WML prema WAP-proxy-u koristi HTTP/TCP/IP. WAP-proxy konvertuje WML u kompaktniju formu poznatu kao binarni WML, a zatim je isporučuje mobilnom korisniku preko bežične mreže koristeći WAP protokol stack.

Slika 5. WAP-ova infrastrukturaKada je Web browser u stanju da direktno generiše WML sadržaj tada se WML isporučuje WAP-proxy-u koristeći HTTP/TCP/IP. WAP-proxy konvertuje WML u binarni WML i isporučuje poruku ka mobilnom čvoru koristeći WAP protokol.

WAP arhitektura je projektovana sa ciljem da se izadje na kraj sa oba glavna ograničenja koja se odnose na bežični Web pristup, a to su:

• ograničenja mobilnog čvora- ekran malih dimenzija, ograničene ulazne mogućnosti

• malim protokom podataka kod bežičnih digitalnih mreža.

Uvodjenjem 3G bežičnih mreža, koje treba da obezbede veći protok podataka, mali ručni mobilni terminalni čvorovi i dalje će se karakterizirati ograničenim ulaznim mogućnostima, i displejom koji ima ograničene dimenzije (obim ekrana). Logički pogled na end-to-end sistem koji podržava WAP klijent uredjaj prikazan je na slici 6.

6

Page 7: WML

Slika 6. Logičko povezivanje WAP klijenta sa serverom

Redosled realizacije end-to-end WAP zahteva prikazan je na slici 7 .

Slika 7. End-to-end

MICROBROWSER

Mobile browser, ili microbrowser kako se još naziva ,ili wireless internet browser (WIB) (WIB), je web pretraživač namijenjen za korišćenje na mobilnom uređaju kao što je mobilni telefon ili PDA. Mobilni browser-i su optimizovani kako bi na najbolji način prikazali web sadržaja na malim ekranima prenosnih uređaja. Softver mobilnog pretraživača mora biti mali i efikasan za smeštanje na memorije ograničenih kapaciteta kakve se nalaze na mobilnim uređajima. Obično su programirani tako da prikazuju ogoljen sadržaj web stranice, ali u poslednjih nekoliko godina sve veći broj minibrowser-a može podržati novije tehnologije kao što su CSS 2.1, JavaScript, Php ili Ajax. Sajtovi dizajnirani tako da se mogu prikazati u microbrowseru se još nazivaju bežični portali. Pored mobilnih pretraživača postoje i tkz. web-based emulatori, koji koriste "Virtual Handset" za prikaz WAP stranica na ekranu računara. implementiran bilo kao Java bilo kao HTML prevodilac

7

Page 8: WML

Spisak najpoznatijih microbrowsera:

Browser ProizvođačKindle basic web AmazonAndroid browser GoogleBlackBarry browser Research in motionFennec MozillaInternet explorer mobile MicrosoftNokia series 40 and 60 NokiaSafari Apple incOpera mini Opera software

WML

 Wireless markup language predstavlja jezik WAP tehnologije.Razvijen je na osnovu XML-a, HTML-a i Phone.com Hanheld Device Markup Language (HDML) specifikacije.WML je dizajniran za Web stranice koje ne mogu lako da se prikažu na bežičnom uređaju sa malim ekranima i bez tastature za navigaciju.Sa svojim tagovima, dozvoljava manji, fleksibilniji prikaz informacija nego što to omogućava HTML i omogućava korisniku da unese komande bez tastature. Takođe dozvoljava skaliranje prikaza za korišćenje na dvolinijskim ekranima u nekim malim uređajima, kao i na većim ekranima na inteligentnim telefonima (eng. SMART phone).

Trenutno, ako korisnik želi da se web sajt prikazuje na uređaju sa WAP podrškom, sajt mora biti napisan u WML-u ili preveden od strane servera koji konvertuje HTML u WML.Kako je WML baziran na HTML i XML i kao takav je skalabilan i proširljiv. Za razliku od ranijih verzija HTML-a omogućava korisniku dodavanje novih elemenata (tagova) kako bi se sadržaj prilagodio njegovim potrebama.OMA sarađuje sa World Wide Web konzorcijumom da bi osigurao da WML i XHTML (poslednja verzija HTML preformulisana kao XML aplikacija) rade zajedno. 

WML prvenstveno služi za izradu statičkih Web strana, ali, to ne znači da se pomoću njega mogu razvijati samo statičke strane. Mobilni telefoni imaju sporiju operativnu brzinu od PC računara tako da WML jezik mora omogućiti brz download. Od velikog značaja je činjenica da je display mobilnih telefona mnogo manji od monitora PC-a. Većina WAP aplikacija da bi rešila ovaj problem sastoji se od velikog broja strana. U svetu WAP tehnologije strane (pages) nazivaju se cards (karte). Kolekcija cards-a naziva se deck (špil). Za izradu dinamičkih Web strana razvijen je poseban jezik WMLScript koji je veoma sličan Java Scriptu(wml ne podržava JS). Pored njega moguće je koristiti i PHP tehnologiju. Ove aplikacije za WAP pišu se kao i kod običnih Internet aplikacija. Korisnik naravno ne mora da brine o načinu realizovanja ovih tehnologija jer se klijentskoj strani vraća čista WML stranica. Velika moć dinamičkih dekova leži u njihovoj mogućnosti pristupa bazi podataka. Uzimajući u obzir da je personalizacija bitna prednost WAP tehnologije je ta što se pomoću dinamičkih dekova može korisnicima pružiti mogućnost da pristupe samo onim informacijama koje ih zanimaju.

8

Page 9: WML

Slika 8. Evolucija Mobilnih Web- orijentisanih jezika

WML KODOVI

Stranice u WML se nazivaju špilovi. Svaki špil može biti predstavljen setom karata. Kada WML mikročitač pristupa WML dokumentu (ili deku), čita ceo dek i prolazi krozkartice u ovom deku bez potrebe da se učitavaju neki podaci, a dok će na ekranu biti prikazana samo prva stranica, odnosno karta . Ovo je važno da se zna, jerkad se jednom dek učita sve karte unutar njega ostaju u memoriji WML mikročitača svedok čitač ne dobije instrukciju da ponovo učita ceo dek. Karte najčešće sadrže tekst, linkove, slike, polja za unos podataka, opcione liste i mnoge druge elemente.WML je jezik označavanja. Ovo znači da su WML strane napisane i snimljene kaotekstualni fajlovi, korišćenjem oznaka (tagova) sličnih onima u HTML. Osnovne razlikemogu se svesti na sledeće:• WML je striktniji jezik, odnosno svi tagovi moraju biti zatvoreni i formatirani,• WML strana je veličine najviše 1492 bajta,• WML poseduje zaglavlje koje se ne sme izostaviti i nalazi se na početku koda.

Struktura dokumenta

Tipična struktura WML dokumenta počinje zaglavljem: <?xml version="1.0"?> koji označava da se radi o XML dokumentu i o njegovoj verziji.

Najprostiji oblik WMLa ima oblik:<wml><card id="start_menu">...kod...</card><card id="meni">...kod...</card></wml>

9

Page 10: WML

Osnovni tagovi:1.DECKOznake: <wml> ..... </wml> označava da se svi delovi WML dokumenta nalaze između ovih tagova. Sadržaj između ovih oznaka čini jedan špil.

2.CARDOznake: <card> ..... </card> predstavljaju delove WML-a čiji sadržaj predstavlja jednu kartu kao deo špila.

3.Komentar u WMLKomentar u WML se smešta između oznaka <!-- -->. Sintaksa je ista kao i u HTML.

4.Prelamanje reda

<br/> je tag za prelamanje reda u WML-u, i sintaksno je isti kao u HTML-u.

Fontovi i stilovi u WML

Kao i HTML i WML nudi sledeće stilove :

<b>Bold</b> <i>Italic</i> <u>Underline</u> <small>Small</small> <big>Big</big> <em>Emphasis</em>  <strong>Strong</strong>

Slike u WML stranicama

WML karte mogu da sadrže i slike. Najčešće podržavani formati su GIF 87a, GIF 89a (animated GIF), JPG i PNG.3

Sliku na wml stranicu možete ubaciti na isti način kao i kod HTML-a:

<img src="imeslike.jpg">

Sa atributom u <img...> tag-u,  takođe se može regulisati poravnavanje susednog teksta sa linijom slike

1.  <img src=" imeslike.jpg " align=top > poravanava tekst sa gornjom ivicom slike

2. <img src=" imeslike.jpg " align=middle > poravnava tekst sa sredinom slike

3. <img src=" imeslike.jpg " align=bottom > poravnava tekst sa donjom ivicom slike .

3 Ranije, su ekrani mobilnih telefona bili crno beli, jedini mogući format bio je tzv. WBMP (Wireless Bitmap), koje se mogu lako napraviti od postojećih i dobro poznatih gif, jpg, bmp i dr. Razlika je što WBMP slike mogu prikazati samo dvije boje (crno-bela).

10

Page 11: WML

Druga opcija koju mogu sadržati <img...> tag-ovi su dva atributa koja daju dimenzije slike u pixelima. Standardno, web browser će utvrditi ove dimenzije na osnovu slike koju učitava;Format koji sadrži ovu opciju izgleda upravo ovako:

  <img src="imeslike.jpg" width=X height=Y > gde x označava širinu, a y visinu slike u pikselima.

Tabele

Za kreiranje tabela koriste se tagovi: <table>, <tr> i <td>.Tabela (<table>) sadrži redove (<tr>), a svaki red određeni broj ćelija (<td>).Podaci se smeštaju u ćelije.

Atribut koji pripada tagu <table> određuje broj kolona u tabeli. Vrednost atributa columns treba da odgovara broju <td></td> tagova u redu

WML omogućava određivanje horizontalnog poravnanja teksta u koloni tabele. To određivanje se vrši pomoću atributa align. Atribut align može da ima sledeće pojedinačne vrednosti ili njihove kombinacije: L (left),C (center) i R (right). Kombinacija oznaka označava poravnanje po kolonama respektivno.

Linkovi (anchor linkovi)

Anchor linkovi omogućavaju navigaciju (kretanje) između različitih WML karata (CARDS). Selektovanjem anchor linka omogućeno je prebacivanje na drugu WML kartu u okviru tekućeg špila ili u okviru nekog drugog špila. Za kreiranje anchor linka koristi se par: <anchor></anchor>. Ovaj par se koristi zajedno sa tagovima <go/> i <prev/>, koji WAP browseru daju uputstva kada se izvrši selekcija anchor linka.

Kao i HTML, WML koristi URL (Uniform Resource Locator) za referenciranje lokacije WML fajla ili karte u špilu. Atribut href, koji pripada <go/> tagu, koristi se za specificiranje URL-a. URL je istog formata kao i u HTML-u:

http://HOST/Putanja/ime_fajla#offset?parametar1=value1&parametar2=value2...

<do> element

<do> element se koristi za pridruživanje određene aktivnosti elementu korisničkog interfejsa. Drugim rečima, aktivnost ili akcija će biti izvršeni kada korisnik aktivira element korisničkog interfejsa.Interakcija <do> elementa i elementa korisničkog interfejsa zavisi od tipa mobilnog uređaja. Po WAP specifikaciji elementi korisničkih interfejsa mogu da budu tasteri, funkcijski tasteri i komande za aktiviranje glasom.

Aktivnosti određene tagovima <go>, <prev> i <refresh> su deo para <do></do>.Atribut name elementa <do> određuje jedinstveno ime elementa.Atribut label specificira labelu koja će biti predstavljena na ekranu mobilnog uređaja (ukoliko je podržana ta opcija).Atribut type određuje koje tipovi elemenata korisničkog interfejsa mogu da budu povezani sa <do> elementom.

11

Page 12: WML

Najčešće korišćene vrednosti su accept, options i prev :

-accept - <do> element je povezan sa elementom korisničkog interfejsa koji će omogućiti prihvatanje određene akcije. Akcija se najčešće potvrđuje levim tasterom na mobilnom telefonu (u najvećem broju slučajeva je označen kao YES ili OK taster).

-options - <do> element je povezan sa elementom korisničkog interfejsa koji će korisnicima omogućiti izbor ponuđenih opcija ili operacija.

-prev - <do> element je povezan sa elementom korisničkog interfejsa koji će korisnicima omogućiti kretanje unazad.

Liste za selekciju

Liste za selekciju su liste u kojima korisnik može da izabere neku od ponuđenih opcija. Tagovi <select></select> se koriste za specifikaciju liste za selekciju, a tagovi <option></option> se koriste za definisanje članova unutar liste. Listi se može dodeliti i neko ime atributom name u okviru <select> elementa., a takođe i članovima atributom value u okviru <option> elementa.

Polje za unos

Polja za unos se koriste za prihvatanje alfanumeričkih znakova koje unosi korisnik.<input/> tag služi za kreiranje polja za unos.Polje za unos podataka je udruženo sa promenljivom koja čuva podatke koje je uneo korisnik.Tip podataka koji se unosi može biti „text“ ili „password“, što se određuje atributom type.Ime promenljive u kojoj se čuvaju podaci određuje se atributom name u okviru <input> elementa.U polje za unos može da se navede default vrednost preko atributa value.A može da se definiše i maximalna dužina reči koje mogu da se unesu u data polja.

Događaji

WML podržava događaje koji se opisuju u okviru para <onevent></onevent> tagova. Kada se navedeni događaj desi, specificirana akcija će biti izvršena.

U WML su podržana četiri događaja:

ontimer – događaj se desi kada istekne zadato vreme preko tajmera.

onenterbackward – događaj se desi kada se korisnik vrati na prethodnu kartu korišćenjem URL istorije u pretraživaču.

onenterforward - događaj se desi kada se korisnik pomeri na kartu ispred tekuće, tako što npr. unese URL direktno u WAP pretraživač.

onpick – događaj se desi kada je neko plje opcione liste selektovano ili odselektovano.

Ontimer događaj : Ontimer događaj je gotovo uvek vezan za tajmer. Tajmer se u WML deklariše pomoću taga <timer/>. Njegov atribut value određuje vreme trajanja tajmera.

12

Page 13: WML

Jednica vremena je 1/10 sekunde (na primer, tag <timer value="10"/> definiše trajanje tajmera od jedne sekunde).

Tajmeri su jako korisni kod Internet aplikacija koje korisnicima obezbeđuju najnovije informacije. Tajmer se u tim slučajevima dodaje za osvežavanje stranica, tako da dolazi do automatskog ažuriranja sadržaja na kartama u špilu. Većina današnjih mobilnih uređaja keširaju karte pa se prilikom osvežavanja prikaže keširana stranice umesto osvežene. Kako bi se rešio ovaj problem potrebno je onemogućiti keširanje karata, a potupak se razlikuje u zavisnosti od tipa mobilnog uređaja.

Onenterbackward događaj : Onenterbackward događaj se dešava kada korisnik ode na prethodnu kartu preko WAP pretraživača, pri čemu se izvršava kod unutar događaja.

Onenterforward događaj se dešava kada korisnik ode na sledeći kartu unošenjem URL-a ili preko anchor linka čija akcija je data u <go> tagu. U tom slučaju kod unutar događaja će se izvršiti.

Onenterforward događaj je koristan u slučajevima kada je potrebno npr. dodeliti vrednost nekoj promenljivoj pre prelaska na drugu kartu ili u slučajevima kada je potrebno pozvati neku funkciju kada se učita WML karta.Ovaj događaj se neće desiti kada se korisnik ponovo vrati na kartu. U slučaju da je potrebno pridružiti događaj svaki put kada se karta učita akcije je potrebno pridružiti i onenterbackward događaju.

O npick događaj: Onpick događaj se koristi sa tagovima <option></option>. Ovi tagovi se najčešće koriste sa listama za selekciju.

WML promenljive

WML podržava definisanje promenljivih za razliku od HTML-a.Promenljivoj može da se pridruži vrednost, a može i da vrati vrednost bez korišćenja skriptova (za razliku od HTML-a).

U WML promenljive ne treba da se deklarišu eksplicitno. Dovoljno je izabrati ime promenljive i pridružiti joj vrednost. Promenljiva kojoj nije dodeljena nikakva vrednost nosi vrednost praznog stringa.Imena promenljivih su “case-sensitive” (razlikuju velika i mala slova). Ime promenljive treba da počinje slovom ili znakom “_”. Znaci koji slede mogu da budu slova, brojevi ili donja crta (“_”). Znakovi interpunkcije nisu podržani kod deklarisanja promenljivih (tako npr. ime „moja/prom.” nije podržano).

Sve promenljive se pamte kao niz karaktera (string). One su globalne promenljive, što znači da se vrednost dodeljena promenljivoj može vratiti u bilo kojoj karti ili špilu.

Dodeljivanje vrednosti promenljivoj može da se izvrši na sledeće načine:

Korišćenjem <setvar/> taga.

Dodeljivanjem vrednosti preko polja za unos podataka i lista (polja za izbor podataka).

Korišćenjem setVar() funkcije WMLScript-a

13

Page 14: WML

WMLScript

WMLScript (Wireless Markup Language Script) je script jezik na strani klijenta u WML-u.

Osnovna razlika između JavaScript-a i WMLScript-a je ta što JavaScript kod može biti uključen u HTML jezik, dok se WMLScript kod uvek smešta u fajl koji je odvojen od WML fajla. URL adrese se koriste da referišu WMLScript kod u WML dokumentu. WMLScript fajlovi imaju ekstenziju ".wmls".

Pre nego što se WMLScript fajl izvrši na mobilnom aparatu, on prolazi kroz process kompajliranja WMLScript koda. Za to se koristi WMLScript kompajler. Kao primer jednog takvog kompajlera može se navesti Nokia Mobile Internet Toolkit,

Definisanje WMLScript Funkcija

U WMLScript-u ceo kod mora da bude unutar odgovarajućih funkcija.Funkcija se u WMLScript-u se definiše korišćenjem odgovarajućeg formata. Deo između zagrada [] je opcion.

[extern] function ime_funkcije([argument1, argument2...]){

  WMLScript statement   [return (neka_vrednost);]

}

“Extern” ključna reč se koristi da označi da funkcija može biti pozvana unutar ili izvan WMLScript fajla, odnosno da funkcija može biti pozvana iz neke druge funkcije unutar istog WMLScript fajla, iz funkcije nekog drugog WMLScript fajla ili iz nekog WML fajla. Ukoliko se funkcija definiše bez ključne reči extern, ona će moći biti pozvana samo iz funkcije koja se nalazi unutar istog WMLScript fajla.

WMLScript ignoriše dodatne praznine kao što su razmaci, tabovi i nove linije.

WMLScript jezik je “case-sensitive”. Na primer, WMLScript funkcija čije je ime WMLScript_Function se razlikuje od funkcije sa imenom wmlscript_function, što znači da je neophodno voditi računa pri definisanju ili referenciranju funkcija ili varijabli u WMLScript-u.

Deklarisanje promenljivih

Promenljive se koriste za čuvanje nekih podataka. Ključna reč “var” se koristi za deklarisanje WMLScript promenljivih.

var ime_promenljive [= vrednost_koja_ce_biti_dodeljena];

Sledeći primer pokazuje deklarisanje promenljive pod imenom wmlscript_promenljiva kojoj je dodeljena vrednost „Ovo je WMLScript promenljiva“.

14

Page 15: WML

var wmlscript_promenljiva = "Ovo je WMLScript promenljiva";

Dodeljivanje vrednosti promenljivim nije obavezno. Ukoliko se promenljivoj ne dodeli vrednost, WMLScript će joj dodeliti prazan string automatski.

Ponovno deklarisanje iste promenljive u WMLScript-u nije dozvoljeno i prouzrokuje grešku.Ključna reč var može da se koristi za deklarisanje više od jedne promenljive.

Na primer, sledeći deo koda:

var wmlscript_promenljiva1;var wmlscript_promenljiva2;var wmlscript_promenljiva3;

je ekvivalentan sa:

var wmlscript_promenljiva1, wmlscript_promenljiva2, wmlscript_promenljiva3;

U WMLScript-u promenljiva mora biti deklarisana pre njenog korišćanja, što predstavlja razliku u odnosu na JavaScript gde je automatsko deklarisanje promenljivih podržano.

WMLScript ne podržava globalne promenljive. Globalne promenljive su one promenljive kojima se može pristupiti iz bilo koje funkcije. Ovo je takođe jedna od razlika u odnosu da JavaScript koji podržava globalne promenljive.

Tipovi podataka WMLScript-a

WMLScript ima jedan tip varijable koja se deklariše kao var. One se mogu koristiti za čuvanje vrednosti bilo kog od 5 tipova podataka:Tipovi podataka koji su podržani u WMLScript-u su:

1. Boolean. Boolean vrednost može biti true ili false.Primer:var promenljiva1 = true;var promenljiva2 = false;

2. Integer. WMLScript koristi 32-bit integer-eVrednost integer-a može biti između -232/2 to 232/2-1, odnosno od -2147483648 do 2147483647.Primer:var promenljiva1 = 10000;var promenljiva 2 = -10000;

3. Float. Maksimalna vrednost koja je podržana je 3.40282347E+38. Minimalna pozitivna podržana vrednost je 1.17549435E-38. Neki mobilni aparati ne podržavaju float tipove podataka.Primer:var promenljiva1 = 11.11;var promenljiva2 = -11.11;

15

Page 16: WML

4. String. String je niz karaktera..Primer:var promenljiva = "Seminarski rad iz WML-a";

5. Invalid. Ukoliko je tip podataka nepostojeći ili ukoliko je došlo do neke greške, promenljivoj se dodeljuje vrednost invalid.Primer:var promenljiva = invalid;

Može se desiti da neka operacija prouzrokuje nepostojeći tip podataka. Sledeći primer deljenja sa nulom prouzrokovaće grešku:var promenljiva = 100 / 0;

WMLScript promenljive i WML Promenljive

WMLScript promenljive nisu isto što i WML promenljive. WMLScript promenljive se deklarišu pomoću ključne reči var i mogu da se koriste samo u okviru WMLScript funkcija.WML promenljive su su one promenljive čije vrednosti se mogu postaviti ili koristiti korišćenjem WML jezika. Npr., moguće je koristiti tag <setvar> za postavljanje vrednosti promenljive bez korišćenja WMLScript-a. WMLScript obezbeđuje dve funkcije u WMLBrowser standardnoj biblioteci za manipulaciju sa WML varijablama. To su setVar() i getVar().

PHP KAO MOGUĆNOST RADA U WAP OKRUŽENJU

PHP (Personal Home Page tools- alati za lične prezentacije) je interpreterski skript jezikkoji se ugrađuje u HTML dokumenta. Veći deo njegove sintakse pozajmljen je iz C, Jave iPerl, sa dodatkom nekih specifičnosti. Cilj ovog jezika je omogućavanje programerima dabrzo kreiraju dinamičke HTML stranice i interaktivne Internet sadržaje.PHP je razvio Rasmus Lerdof u želji da napiše mali skript koji bi mu omogućio da pratiposete njegovoj prezentaciji. To mu je omogućilo da pristupa SQL bazi podatakajednostavnim ugrađivanjem naredbi u HTML dokument.Pored statičnih stranica, PHP se može koristiti za izradu dinamičnih stranica, odnosnostranica čiji se sadržaj može menjati pri svakom novom pozivu. PHP kod ne vidi klijent, ana kompatibilnom WML čitaču se prikazuje kao WML kod.Komunikacija između web servera i WAP bežičnih uređaja je ista kao između webservera i čitača na PC, ali sa jednim dodatnim korakom. Taj dodatni korak uključujetransfer informacija kroz WAP mrežni prolaz.

16

Page 17: WML

Slika 8. Arhitektura WAP programskog modela koji koristi Apache serverSekvenca događaja sa slike 8. ima sledeći izgled:• Zahtev se šalje WAP mrežnom prolazu putem WAP protokola. WAP mrežniprolaz, pod kontrolom WAP uređaja izvodi URL zahtev koristeći HTTP protokol.• URL zahtev se prenosi putem Interneta preko IP adrese WAP uređaja.• Zahtev stiže do svoje krajnje destinacije – web servera. Server čita zaglavlje iprocesira zahtev za WAP dokumentom. PHP kod koji se nalazi u ovom dokumentu sekompajlira i formatira.• Locirani WAP dokument (dek) se vraća preko WAP mrežnog prolaza, gde senjegov sadržaj kompresuje u binarne podatke i šalje uređaju koji poseduje WAP.Čitač PC može se koristiti tokom razvoja PHP WML koda dodavanjem sledećeg PHPkoda na vrhu stranice:<?header("Content-type: text/vnd.wap.wml");echo("<?xml version=\"1.0\"?>\n");echo("<!DOCTYPE wml PUBLIC \"-//WAPFORUM//DTD WML 1.1//EN\"\"ht

Projekat

Osnovna ideja projekta je dati zaposlenima pristup centralnoj bazi podataka o podacima korisnika. Ovim se isključuje potreba da zaposleni redovno ažuriraju svoje mobilne/PDA uređaje.

Skript čita podatke iz baze, prikazuje sadržaj polja i bira broj željenog korisnika.

Šta skript treba da sadrži:

Pregled klijenata ime, prezime, telefon, adresa, grad, država, poštanski broj, datum poslednjeg ažuriranja.

Pretraga klijenata po imenu ili prezimenu Prikaz u nivoima Biranje tel. broja traženog korisnika

17

Page 18: WML

Pošto je potrebno implementirati više funkcija (prikaz i pretraga), napraviti meni za izbor opcije. Svaki ekran ima mogućnost povratka na početak.

Slika 9. Arhitektura WAP WML aplikacije koja se zasniva na MySQL bazi podataka i korišćenju stranica u PHP i WML jeziku.

Ceo skriptCREATE DATABASE klijenti;

USE klijenti;

CREATE TABLE adresar ( Id int(11) NOT NULL auto_increment, Ime varchar(30) default NULL, Prezime varchar(30) default NULL, Telefon varchar(12) default NULL, Adresa varchar(30) default NULL, Post_broj varchar(5) default NULL, Grad varchar(30) default NULL, Drzava varchar(30) default NULL, Azurirano date default NULL, PRIMARY KEY (Id)) TYPE=MyISAM;

INSERT INTO adresar VALUES (1,'Bosko','Nikolic','061-154-25-24','Zelengorska1/03','11260','Beograd','Srbija','2009-09-21');...

<?php

header("Content-type: text/vnd.wap.wml"); header('Expires: Mon, 11 Jan 2007 05:00:00 GMT');  header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); header("Cache-Control: no-cache, must-revalidate"); header("Pragma: no-cache");

echo "<?xml version=\"1.0\"?>\n"; echo "<wml>\n";

18

Page 19: WML

// link ka bazi$link = mysql_connect("localhost", "root", "") or die("Nemogucnost konektovanja na bazu!");mysql_select_db("klijenti") or die("Nemogucnost konektovanja na bazu!");

// novi red (Line feed)$lf = chr(10);

// dodeljivanje pocetnih vrednostiif (empty($idx)) { $idx = 0; }

if (empty($cmd)) { $cmd = "Meni"; }

switch ($cmd) {

case "Meni";// otvori karticu

echo "<card id=\"Meni\">\n"; echo "<p mode=\"nowrap\">".$lf; // Kombo box – otvori select echo "<select name=\"Select\" title=\"Izaberite:\">".$lf;

echo "<option onpick=\"?cmd=Spisak\">"; echo "Prikaz adresara</option>".$lf; echo "<option onpick=\"?cmd=Pretraga\">"; echo "Pretraga adresara</option>".$lf; // kraj menija izbor echo "</select>".$lf;

// zatvori karticu echo "</p>".$lf."</card>".$lf;

break;

case "Spisak";

// *count* upit $query = "select count(*) from adresar"; if (!empty($search)) { $query = $query." where Ime like \"%".$search."%\" or"; $query = $query." Prezime like \"%".$search."%\""; }

$result = mysql_query($query,$link) or die("Greska pri upitu:$query");

19

Page 20: WML

list($total_rows) = mysql_fetch_array($result);

// upit $query = "select * from adresar"; if (!empty($search)) { $query = $query." where Ime like \"%".$search."%\" or"; $query = $query." Prezime like \"%".$search."%\""; }

// prvih/sledecih 5 zapisa $query = $query." order by Prezime limit ".$idx.",5";

$result = mysql_query($query,$link) or die("Greska pri upitu:$query");

// sledeci $next = $idx + 5; // otvori karticu echo "<card id=\"Kontakti\">\n"; echo "<do type=\"accept\" label=\"Pregled\"> <go href=\"\"/> </do>".$lf; // prikaz naslova Adresar / Rezultati pretrage if (empty($search)) { echo "<p mode=\"nowrap\"><b>Adresar</b>".$lf; } else { echo "<p mode=\"nowrap\"><b>Rezultati pretrage</b>".$lf; } // prikaz pregleda liste (po 5 zapisa) select echo "<select name=\"Pregled\" title=\"Pregled:\">".$lf;

while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) {

$recordid = $line[Id]; $Osoba = $line[Prezime] . ", " . $line[Ime]; $Tel = $line[Telefon]; $Prompt = $Osoba . " (" . $Tel . ")";

// kreiranje url-a za opciju, ukljucujuci DB index i search $option = "<option onpick=\""; $option = $option."?cmd=Prikaz&amp;id=".$recordid."&amp"; $option = $option.";idx=".$recordid."&amp;search=".$search."\">"; $option = $option.$Prompt."</option>".$lf; echo $option.$lf;

}

// ukoliko ima vise zapisa za prikaz, pravi stranicenje [Dalje] // u suprotnom [Kraj liste]

20

Page 21: WML

if ($total_rows >= $next) {

// link za sledecih 5 [Dalje] echo "<option title=\"Dalje\" onpick=\"?cmd=Spisak&amp;idx=$next";

// slanje parametra za pretragu ukoliko postoji if (!empty($search)) { echo "&amp;search=".$search; }

echo "\">[Dalje]".$lf."</option>".$lf; } else { echo "<option title=\"Kraj liste\" onpick=\"?cmd=Spisak&amp;idx=$idx"; // slanje parametra za pretragu ukoliko postoji if (!empty($search)) { echo "&amp;search=".$search; }

// zatvaranje tagova echo "\">[Kraj liste]".$lf."</option>".$lf; }

// opcija za pocetnu stranu echo "<option onpick=\"?cmd=Meni\" title=\"Pocetak\">".$lf; echo "[Pocetak]".$lf; echo "</option>".$lf;

// zatvori select echo "</select>".$lf;

// zatvori karticu echo "</p>".$lf."</card>".$lf; break; case "Pretraga"; echo "<card id=\"Pretraga\">\n"; echo "<do type=\"accept\" label=\"trazi\">".$lf; echo "<go href=\"?cmd=Spisak&amp;search=\$searchtext\">".$lf; echo "</go>".$lf; echo "</do>".$lf;

echo "<p>".$lf; echo "<b>Pretraga adresara</b><br/>Trazim:".$lf;

21

Page 22: WML

echo "<input name=\"searchtext\" title=\"Pretraga\" type=\"text\""; echo " format=\"10m\"/>"; echo "</p>".$lf; echo "</card>".$lf; break; case "Prikaz"; echo "<card>\n"; // pronadji dati zapis $query = "select * from adresar where Id = \"".$idx."\""; $result = mysql_query($query,$link) or die("Greska pri upitu:$query"); // pokupi i prikazi podatke while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) { $recordid = $line[Idx];

echo "<p mode=\"wrap\">".$lf; echo "$line[Prezime], $line[Ime]<br />".$lf; echo "$line[Adresa]<br />".$lf; echo "$line[Grad], $line[Drzava] $line[Post_broj]<br />".$lf; echo "<a href=\"wtai://wp/mc;$line[Telefon]\" title=\"Biraj broj\">"; echo "$line[Telefon]</a><br />".$lf; echo "<a href=\"?cmd=Meni\" title=\"Meni\">"; echo "[Pocetak]</a><br /><br />".$lf;

$Date = date("j.m.Y", strtotime($line[LastUpdate]));

echo "Azurirano:<br />$Date"; // zatvori karticu echo $lf."</p></card>".$lf; }

break; }

echo $lf."</wml>".$lf;

mysql_close($link);

?>

22

Page 23: WML

Skript šalje u startu skup hedera da bi se izbeglo keširanje. Pošto se baza redovno ažurira, mora se izbeći da uređaj prikaže keširane podatke.

Zaključak

Literatura

http://www.forum.nokia.comhttp://www.en.wikipedia.org/wiki/Wireless_Markup_Languagehttp://www.w3schools.com/waphttp://www.en.wikipedia.org/wiki/Wireless_Application_Protocolhttp://www. openmobile alliance.org/ M. Lj. Gocić, Đ. R. Đorđević RAZVOJ WAP WML APLIKACIJE KORIŠĆENJEMPHP TEHNOLOGIJEhttp://www.telfon.netWireless Application Protocol, Wireless Markup Language Specification Version 1.1, Wireless Application Protocol Forum, Jun-1999

23

Page 24: WML

24