You are on page 1of 24

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

2
(network operator), provajdera servisa (service provider), i provajdera sadržaja (content
provider).

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,

3
čime se pomoću jednostavnijih protokola na svakom nivou mogu obavljati veoma kompleksni
zadaci. Skup svih protokola čini celovitu infrastrukturu servisa kojih treba obezbediti.
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
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
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 infrastruktura


Kada 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
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
Spisak najpoznatijih microbrowsera:

Browser Proizvođač
Kindle basic web Amazon
Android browser Google
BlackBarry browser Research in motion
Fennec Mozilla
Internet explorer mobile Microsoft
Nokia series 40 and 60 Nokia
Safari Apple inc
Opera 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
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 kroz
kartice 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, jer
kad se jednom dek učita sve karte unutar njega ostaju u memoriji WML mikročitača sve
dok č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 kao
tekstualni fajlovi, korišćenjem oznaka (tagova) sličnih onima u HTML. Osnovne razlike
mogu 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
Osnovni tagovi:
1.DECK
Oznake: <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.CARD
Oznake: <card> ..... </card> predstavljaju delove WML-a čiji sadržaj predstavlja jednu kartu
kao deo špila.
3.Komentar u WML
Komentar 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
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
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
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.

Onpick 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
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];

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

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


Vrednost 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:

15
var promenljiva1 = 11.11;
var promenljiva2 = -11.11;

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 jezik
koji se ugrađuje u HTML dokumenta. Veći deo njegove sintakse pozajmljen je iz C, Jave i
Perl, sa dodatkom nekih specifičnosti. Cilj ovog jezika je omogućavanje programerima da
brzo 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 prati
posete njegovoj prezentaciji. To mu je omogućilo da pristupa SQL bazi podataka
jednostavnim ugrađivanjem naredbi u HTML dokument.
Pored statičnih stranica, PHP se može koristiti za izradu dinamičnih stranica, odnosno
stranica čiji se sadržaj može menjati pri svakom novom pozivu. PHP kod ne vidi klijent, a
na 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 web
servera i čitača na PC, ali sa jednim dodatnim korakom. Taj dodatni korak uključuje
transfer informacija kroz WAP mrežni prolaz.

16
Slika 8. Arhitektura WAP programskog modela koji koristi Apache server
Sekvenca događaja sa slike 8. ima sledeći izgled:
• Zahtev se šalje WAP mrežnom prolazu putem WAP protokola. WAP mrežni
prolaz, 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 i
procesira zahtev za WAP dokumentom. PHP kod koji se nalazi u ovom dokumentu se
kompajlira i formatira.
• Locirani WAP dokument (dek) se vraća preko WAP mrežnog prolaza, gde se
njegov 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 PHP
koda 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
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 skript
CREATE 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
// 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 vrednosti


if (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
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
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
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
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.com
http://www.en.wikipedia.org/wiki/Wireless_Markup_Language
http://www.w3schools.com/wap
http://www.en.wikipedia.org/wiki/Wireless_Application_Protocol
http://www.openmobilealliance.org/
M. Lj. Gocić, Đ. R. Đorđević RAZVOJ WAP WML APLIKACIJE KORIŠĆENJEM
PHP TEHNOLOGIJE
http://www.telfon.net
Wireless Application Protocol, Wireless Markup Language Specification Version 1.1,
Wireless Application Protocol Forum, Jun-1999

23
24

You might also like