01.12.2012 Views

Rich Internet Applications(RIA) - FER - Sveučilište u Zagrebu

Rich Internet Applications(RIA) - FER - Sveučilište u Zagrebu

Rich Internet Applications(RIA) - FER - Sveučilište u Zagrebu

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

SVEUČILIŠTE U ZAGREBU<br />

FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA<br />

Organizacija telekomunikacijske mreže<br />

<strong>Rich</strong> <strong>Internet</strong> <strong>Applications</strong>(<strong>RIA</strong>)<br />

Nina Radošević 0036417333<br />

Filip Vlašić 0036409441<br />

Alan Lež 0036409714<br />

Zagreb, siječanj 2009.


Contents<br />

Uvod............................................................................................................................................<br />

3<br />

Arhitektura<br />

................................................................................................................................. 4<br />

Tehnologije..................................................................................................................................<br />

4<br />

Flash............................................................................................................................................<br />

4<br />

Flex..............................................................................................................................................<br />

6<br />

Flash Player i AIR.........................................................................................................................<br />

9<br />

Ajax............................................................................................................................................<br />

10<br />

Microsoft Silverlight..................................................................................................................<br />

12<br />

JavaFX........................................................................................................................................<br />

14<br />

Zaključak....................................................................................................................................<br />

16<br />

Literatura...................................................................................................................................<br />

17


Uvod<br />

U evoluciji korisničkih sučelja, web sučelja zaostaju pokoji korak u odnosu na desktop<br />

aplikacije. Stvari poput menija, drag-and-drop, i slično koje uzimamo kao normalnu stvar kod<br />

desktop aplikacija na početku nisu bile dostupne na web-u.<br />

Web korisnička sučelja su bila ograničena vrlo niskim bandwidth-om, te su zbog toga morala<br />

biti vrlo jednostavna. To se međutim jako promijenilo u zadnjih par godina i ova ograničenja<br />

su gotovo nestala.<br />

Termin <strong>Rich</strong> <strong>Internet</strong> <strong>Applications</strong> je po prvi put upotrijebljen "davne" 2002 godine od<br />

inženjera Macromedie (danas Adobe) koji su odlučili poraditi na novom konceptu razvoja<br />

web i desktop aplikacija koje će po riječima Adobe-a pružiti "bogato korisničko iskustvo koje<br />

povećava produktivnost i zadovoljstvo aplikacijom".<br />

<strong>Rich</strong> <strong>Internet</strong> Aplikacije su dio Web 2.0 standarda unutar kojeg, osim <strong>RIA</strong>, ulazi još nekoliko<br />

tehnologija (XML, RSS, CSS itd). Bogate internet aplikacije su aplikacije koje bi trebale<br />

imati iste funkcionalnosti kao desktop aplikacije (business aplikacije, igrice i sl.), a njihova<br />

prezentacija se izvršava u potpunosti u browseru, bez obzira na karakter aplikacije, što je u<br />

potpunosti u skladu sa konceptom Web 2.0 aplikacija. Karakteristika <strong>RIA</strong> aplikacija je<br />

kreiranje User-Friendly interface-a koji omogućava korisnicima efikasno korištenje resursa uz<br />

maksimalne mogućnosti dizajna. Još jedna karakteristika <strong>RIA</strong> aplikacija je široka dostupnost<br />

zbog korištenja tehnologija koje su široko rasprostranjene i kompatibilne (portabilne) kao što<br />

su XML, Javascript ili Actionscript izvršen unutar SWF file-a.<br />

3


Arhitektura<br />

Arhitektura <strong>RIA</strong> aplikacija se ne oslanja na client-server komunikaciju u sklopu koje korisnik<br />

šalje request prema serveru, gdje se odvija kompletna obrada podataka, a server vraca<br />

zahtjevanu web stranicu u obliku HTML ili slično. <strong>RIA</strong> aplikacije se oslanjaju na sistem gdje<br />

se dio obrade izvršava na klijentskom računalu (unutar browsera) što čini efikasnijim proces<br />

obrade (oslobađa server) a pruža i veće mogućnosti dizajneru aplikacije. Još jedna<br />

karakteristika ove arhitekture je asinkrona komunikacija izmedu <strong>RIA</strong> aplikacije i servera što<br />

omogućava brže izvršavanje aplikacije (odziv). Male količine podataka koje se razmjenjuju<br />

između klijenta i servera ne zahtjevaju stalno osvježavanje stranica.<br />

Tehnologije<br />

Najpoznatije <strong>RIA</strong> tehnologije su AJAX (Asinkroni JavasSript i XML), Adobe Flash, Adobe<br />

Flex, Adobe Air, Java FX, Java Applets, Microsoft Sivlerlight i njih ćemo ovdje opisati.<br />

Ajax i Adobe Flash/Flex/Air su trenutačno najpopularnije <strong>RIA</strong> tehnologije na tržištu u ovom<br />

trenutku.<br />

Flash<br />

Adobe Flash je razvijan od 1996. godine i danas predstavlja standard multimedijskog prikaza<br />

na <strong>Internet</strong>u; Microsoft pokušava svojom platformom Silverlight postati konkurencija Flash-u<br />

- vrijeme će pokazati da li će uspjeti u tome.<br />

U svojim počecima, Flash je bio alat za izradu animacija i rudimentarnih web aplikacija kao<br />

što su neke jednostavnije igre, reklame (banneri) i slično. Daljnim razvojem, došlo je do<br />

širenja mogućnosti i ugrađivanjem sve kompleksnijih instrukcija i opcija u sam program.<br />

Programski jezik na kojem se Flash bazira (ActionScript) se također nadograđivao i<br />

poboljšavao tokom vremena – trenutno je aktualna 3. verzija koja je dosad najnaprednija i<br />

najbogatija opcijama.<br />

Flash tehnologija je posvuda prisutna na <strong>Internet</strong>u i upotrebljava se u mnoge svrhe: izradu<br />

web stranica, oglašavanje, izradu prezentacija, prikaz multimedijskih sadržaja, video i audio<br />

streaming. Kao što je već spomenuto, u najnovijim verzijama Flash služi i kao temelj za<br />

izradu bogatih <strong>Internet</strong> aplikacija.<br />

Flash je napravljen kao vektorski alat, sa slabom podrškom za rasterske slike (bitmape), ali se<br />

to u posljednjim verzijama promjenilo i uvelike je poboljšan rad sa rasterima, pogotovo .png<br />

formatom (Portable Network Graphics). Adobe je omogućio veliku kompatibilnost između<br />

svojih i Macromedijinih programa nakon akvizicije, tako da je suradnja između Photoshop,<br />

Illustrator i Flash programa postala veoma lagana i intuitivna, npr. moguće je čitavu web<br />

stranicu nacrtati u Illustratoru, potom to prebaciti u Flash i tamo animirati i programirati<br />

potrebne funkcionalnosti.<br />

Mnogi „web-gurui“ izbjegavaju Flash tehnologiju kao neprikladnu za izradu web stranica<br />

zbog nekih njenih nedostataka: veličina Flash stranica, tj. dugo učitavanje, loše pozicioniranje<br />

na web tražilicama, nemogućnost korištenja Back gumba, nedostatak pretraživanja stranica.<br />

4


Ti problemi se ispravljaju kroz Flash revizije, a postoje i mnoge dobre strane korištenja<br />

Flasha: korištenje vektorske grafike kao osnove što omogućava skaliranje sadržaja bez<br />

gubljenja kvalitete, čuvanje jednom učitanih Flash stranica čime se izbjegavaju kasnija<br />

učitavanja ako se sadržaj nije promjenio (smanjenje utrošenog web prometa), povećana<br />

interaktivnost i standardizirane web stranice koje se u svim web pretraživačima prikazuju<br />

jednako, za razliku od običnog HTML-a...<br />

Bitno je primjetiti da je Flash kao alat namijenjen prvenstveno dizajnerima; tek se u novijim<br />

verzijama pojavila mogućnost kompleksnijeg i moćnijeg programiranja – zbog toga Flash u<br />

svojim počecima nije bio dobro prihvaćen na webu, ali se to prije nekoliko godina, dolaskom<br />

bržih veza sa <strong>Internet</strong>om i razvojem hardvera, brzo promjenilo.<br />

Unutar Flash krugova postoji jasna podjela između Flash dizajnera i Flash programera;<br />

potonjih je mnogo manje. Flash dizajneri uglavnom koriste samo mogućnosti Flash<br />

vremenske trake u pravljenju animacija i raznoraznih bannera uz vrlo malo korištenja<br />

ActionScripta, i to uglavnom njegovih starijih implementacija (1.0 i 2.0). Flash dizajneri zbog<br />

toga imaju vrlo ograničene mogućnosti. S druge strane, Flash programeri uz solidno<br />

poznavanje dizajnerskih principa i vrlo jake ActionScript sposobnosti mogu postići mnogo<br />

više i praviti mnogo kompleksije projekte kao što su flash igre, web aplikacije, bogate <strong>Internet</strong><br />

aplikacije, desktop aplikacije, itd.<br />

Prikaz radne površine Adobe Flash alata<br />

Za izradu aplikacija, Flash koristi vizualno okruženje s raznim alatima za crtanje,<br />

vremenskom trakom i programski jezik ActionScript. Sami alati za crtanje su preuzeti iz<br />

brojnih profesionalnih crtaćih programa i podržavaju većinu mogućnosti najpopularnijih<br />

vektorskih programa kao što su Corel Draw, Adobe Illustrator, Macromedia Freehand...<br />

5


Možda najbitniji dio Adobe Flash-a iz dizajnerske perspektive je vremenska traka, prisutna od<br />

prve verzije – radi se o komponenti koja određuje kako će se Flash animacije ponašati u<br />

vremenu. Njihovo trajanje, brzina izvođenja i ponašanje su određeni kao broj okvira u<br />

sekundi. Da ljudsko oko ne primjeti tranziciju između susjednih okvira, najbolje je staviti da<br />

se prikazuje više od 20 okvira u sekundi – time se dobiva glatka i fluidna animacija.<br />

Najnovija verzija Flash-a koristi programski jezik ActionScript 3.0 koji ima iste mogućnosti<br />

kao i svi drugi objektno-orijentirani jezici, a uz to na raspolaganju ima i vrlo bogatu kolekciju<br />

klasa za izradu kompleksnih i atraktivnih efekata.<br />

Krajnji rezultat rada u Flashu može biti Shockwave Flash (sa ekstenzijom .swf) –<br />

najrasprostranjeniji format za izradu flash web stranica i Flash video (.flv) –<br />

najrasprostranjeniji format za prikaz videa na <strong>Internet</strong>u. Također, Flash razvojem tehnologije<br />

sve više prodire na ogromno mobilno tržište – to se prvenstveno odnosi na flash igre, ali sve<br />

više i filmove i sam <strong>Internet</strong>.<br />

Flash još uvijek nije široko rasprostranjen kao alat za izradu web aplikacija - prvenstveno<br />

zbog kompleksnosti samog alata, multidisciplinarnosti razvoja i ograničenih performansi zbog<br />

toga što se .swf datoteka izvršava na klijentu, a ne na serveru. Potrebno je veliko znanje i<br />

dizajnerski talent za pravljenje kvalitetnih i originalnih aplikacija što odbija mnoge<br />

zainteresirane od Flash-a.<br />

Usprkos tome, Adobe Flash drži prvo mjesto među multimedijskim platformama na <strong>Internet</strong>u<br />

– na neki način, radi se o standardu koji sa sobom donosi novi, bogati web sadržaj na svim<br />

najraširenijim operacijskim sustavima. Zbog svega nabrojanog lako je zaključiti zašto je baš<br />

Flash odabran kao temelj za izradu bogatih <strong>Internet</strong> aplikacija.<br />

Flex<br />

Iako je Flash vrlo moćan alat koji iz godine u godinu pruža sve veće mogućnosti u izradi<br />

kompleksnih aplikacija, još uvijek nije dovoljno dobar za izradu klasičnih poslovnih<br />

aplikacija i programiranje njihove funkcionalnosti. Osim toga, sve više aplikacija se seli na<br />

web tako da obične (desktop) aplikacije postaju sve povezanije s <strong>Internet</strong>om. Također,<br />

najnovije web stranice zahtjevaju dodatne sadržaje i veću interakciju s korisnikom - Flash<br />

postaje sve popularniji među programerima. Zbog svega toga Adobe vidi priliku za daljnjim<br />

razvojem i izdaje Flex 2004. godine.<br />

Flex je, kao i Flash, vrlo moćan alat no, za razliku od Flasha koji je u početku bio namjenjen<br />

samo animaciji i izradi vizualnih efekata, radi se o programu koji pruža velike mogućnosti<br />

programerima za izradu poslovnih aplikacija, kao i aplikacija bogatih sadržajem. Kako je<br />

namjenjen prvenstveno programerima, pruža daleko bolje razvojno okruženje te puno širi<br />

spektar klasa i alata za izradu bogatih <strong>Internet</strong> aplikacija.<br />

6


Prikaz radne površine Adobe Flex Builder alata<br />

Tehnologija Adobe Flex izrazito je produktivna besplatna platforma otvorenog koda koja<br />

služi za stvaranje i održavanje web-aplikacija koje su stalno prisutne na svim najvećim<br />

pretraživačima, stolnim računalima i operacijskim sustavima. U programu Flex, aplikacije se<br />

mogu stvarati pomoću besplatnog alata Flex SDK, a razvojni inženjeri mogu koristiti softver<br />

Adobe Flex Builder koji drastično ubrzava razvoj. Posljednja verzija Adobe Flex Builder-a je<br />

3, a sam alat je baziran na popularnoj Eclipse aplikaciji, koja je najpoznatija kao najbolje<br />

razvojno okruženje za Java aplikacije i applete.<br />

Za izradu aplikacija, Flex koristi dva jezika: MXML i ActionScript 3.0. MXML je jezik koji<br />

je baziran na jeziku XML, što znači da koristi biblioteku oznaka i mora se pridrzavati<br />

određenih pravila XML programskog jezika. MXML je, dakle, deklaracijski jezik koji se<br />

koristi za opis rasporeda komponenata na sceni i njihovo ponašanje. Jezik koji radi u pozadini<br />

je ActionScript 3.0 koji za svaku oznaku iz MXML ima ekvivalentnu klasu tako da program<br />

koji je napisan u MXML i ActionScriptu nema neke razlike.<br />

Flex ima i jako bogatu biblioteku komponenata sa više od 100 istestiranih komponenata<br />

korisničkog sučelja za izradu bogatih <strong>Internet</strong> aplikacija te interaktivni pomoćni program za<br />

pronalaženje pogrešaka u kodu. Bogate <strong>Internet</strong> aplikacije napravljene pomoću Flex-a mogu<br />

se pokretati pomoću Flash Playera unutar web pretrazivača ili na radnoj površini pomoću<br />

AIR-a, kao što je već i spomenuto.<br />

7


Primjer Flex aplikacije koja prikazuje globalnu gustoću potresa sa mogućnošću<br />

detaljnijeg prikaza pojedinih područja<br />

Gdje leži glavna prednost korištenja Flexa za izradu <strong>Internet</strong> aplikacija u odnosu na<br />

tradicionalne metode (HTML, PHP, ASP...)? Prvenstveno, radi se o samoj logici dobavljanja<br />

podatka, osvježavanja i učitavanja – kod Flexa se, za razliku od tradicionalnih stranica,<br />

mijenjaju samo dijelovi stranice koji trebaju biti osvježeni i nema potrebe za ponovnim<br />

učitavanjem čitave stranice. U praksi to znači manje potencijalnih grešaka, brži prikaz<br />

podataka i puno ugodnije korisničko sučelje. Također, potrebno je i manje resursa što je<br />

idealno za, danas brzo-rastuću, industriju portabilnih <strong>Internet</strong> uređaja.<br />

Da bi se u potpunosti shvatila razlika između tradicionalnih web stranica i bogatih <strong>Internet</strong><br />

aplikacija, potrebno je znati kako pojedina tehnologija funkcionira. Kod HTML-a, učitavanje<br />

5 web stranica zahtjeva 5 zahtjeva prema serveru na kojem su te stranice smještene, 5 obrada<br />

tih zahtjeva i 5 odgovora prema klijentu. U slučaju dinamičkih web stranica, čitav proces se<br />

još dodatno komplicira i uključuje slanje upita prema bazi podataka, obradu tih upita i izradu<br />

nove web stranice za svaki obrađeni upit.<br />

U slučaju bogatih <strong>Internet</strong> aplikacija, čitav taj proces je sveden na najmanju moguću mjeru i<br />

doživljaj i izgled takvih web stranica su mnogo sličniji desktop aplikacijama nego<br />

tradicionalnim web stranicama. Naime, <strong>RIA</strong> aplikacije ne moraju biti osvježavane čitave već<br />

je dovoljno da se zatražene informacije sa servera dodaju tamo gdje su potrebne – time se<br />

smanjuje broj zahtjeva prema serveru i količina podataka koja se mora prenositi od klijenta<br />

prema serveru i obratno.<br />

Također, u tradicionalnim HTML okruženjima, korisnička interaktivnost je svedena na forme<br />

i nekoliko gumbića. Razne funkcionalnost, poput menija i glatkih tranzicija iz sekcije u<br />

sekciju, su često veoma spore i drastično povećavaju prijenos količine podataka. Ako<br />

programeri koriste JavaScript za te funkcionalnosti, uvijek postoji mogućnost da će web<br />

pretraživači to onemogućiti zbog sigurnosnih razloga; kao rezultat se dobiva gubitak<br />

funkcionalnosti.<br />

8


Flex Builder 3 je, dakle, moćan alat zasnovan na Eclipse integriranom razvojnom okružju<br />

(Eclipse IDE) koji nudi sve pogodnosti za izradu bogatih <strong>Internet</strong> aplikacija:<br />

- poboljšanu suradnju između dizajnera i programera kroz intuitivno sučelje koje koristi<br />

sve pogodnosti ostalih Adobe aplikacija i alata.<br />

- lakše načine za povezivanje izvora podataka i servera sa novim i poboljšanim<br />

podatkovnim komponentama<br />

- mogućnost razvoja i izrade novih AIR alata<br />

Otkad je Adobe odlučio učiniti Flex u potpunosti otvorenim kodom, mnogi web programeri<br />

su odlučili zamjeniti tradicionalni način izrade web stranica sa novijim, poboljšanim modelom<br />

koji dozvoljava korisnicima bogatu interakciju i približava ih uobičajenom svijetu desktop<br />

aplikacija, ali u web okruženju. Bogate <strong>Internet</strong> aplikacije su samo korak dalje i, zasigurno,<br />

iduća etapa razvoja <strong>Internet</strong>a.<br />

Flash Player i AIR<br />

Flash Player je pomoćni program koji služi za pokretanje .swf i .flv datoteka. U usporedbi sa<br />

mnogim drugim pomoćnim programima, kao što su Java, Acrobat Reader, Quick Time ili<br />

Windows Media Player, Flash Player ima veoma malu veličinu, kratko vrijeme preuzimanja s<br />

<strong>Internet</strong>a i brzo vrijeme inicijalizacije. Prema tvrdnjama Adobe Systems-a, 98% korisnika<br />

<strong>Internet</strong>a u Sjedinjenim Američkim Državama i 99,3% svih korisnika <strong>Internet</strong>a ima<br />

instalirano Flash Player na svojem računalu. Od toga, 45-56% (ovisno o regiji), ima<br />

instalirano posljednju verziju. Velika prednost Flash Playera je neovisnost o platformi na<br />

kojoj se koristi, tj. o operacijskom sustavu. Podržan je na: Windows, Mac OS 9/X, Linux,<br />

Solaris, HP-UX, Pocket PC, OS/2, QNX, Symbian, Palm OS, BeOS i IRIX operacijskim<br />

sustavima. Službeno, podržava samo 32-bitne platforme, iako postoji i 64-bitna<br />

eksperimentalna verzija za Linux od studenog 2008. godine.<br />

Na samom početku razvoja, Flash Player je bio dizajniran za prikazivanje 2-dimenzionalnih<br />

vektorskih animacija, ali je u međuvremenu postao sposoban za mnogo kompleksnije stvari,<br />

uključujući prikazivanje bogatih <strong>Internet</strong> aplikacija, kao i streaming videa i audia.<br />

Adobe Flash Player 10 posljednja je verzija i nadogradnja je svjetski najraširenije runtime<br />

aplikacije s novom podrškom za korisničke filtre i efekte, izvornu 3D transformaciju i<br />

animaciju, naprednu audio obradu te ubrzanje GPU hardvera, a vrlo fleksibilni novi tekstualni<br />

mehanizam u Adobe Flash Playeru 10 pruža interaktivnim dizajnerima i programerima više<br />

opcija za izgled teksta i bolju kreativnu kontrolu.<br />

AIR (Adobe Integrated Runtime) je platfoma koja razvojnim programerima omogućuje izradu<br />

internetskih aplikacija za različite operativne sustave pomoću poznatih web tehnologija, kao<br />

što su HTML, Ajax, Adobe Flash i Adobe Flex, i njihovu primjenu na radnoj površini.<br />

Pomoću Adobe AIR razvojni programeri mogu koristiti postojeće vještine i alate za izradu<br />

atraktivnih i vizualno bogatih aplikacija koje odlike lokalnih resursa kombiniraju s dosegom<br />

weba.<br />

Prvi put predstavljen u listopadu 2007. godine, AIR je zamišljen kao moćno izvršno<br />

okruženje koje bi omogućilo već postojećim programskim jezicima orijentiranima na <strong>Internet</strong><br />

(Flash, ActionScript, HTML, JavaScript) uporabu u običnim desktop aplikacijama. Dakle,<br />

9


AIR je Adobe predstavio kao izvršno okruženje bez potrebe za web pretraživačima koje služi<br />

za pokretanje i prikaz bogatih <strong>Internet</strong> aplikacija na radnoj površini što ima svoje prednosti i<br />

nedostatke. Na primjer, bogate <strong>Internet</strong> aplikacije razvijene za web pretraživače ne zahtjevaju<br />

instalaciju, dok one razvijene za AIR zahtjevaju pakiranje, digitalni potpis i intaliranje na<br />

korisnikov lokalni operacijski sustav. Međutim, to pruža pristup lokalnoj memoriji i<br />

datotečnom sustavu, dok su aplikacije razvijene za web pretraživače ograničene načinom gdje<br />

i kako će se pristupati podacima i kamo će se oni spremati. U većini slučajeva, bogate <strong>Internet</strong><br />

aplikacije spremaju korisnikove podatke na vlastite servere, ali mogućnost rada sa podacima<br />

na korisnikovom lokalnom datotečnom sustavu pruža mnogo veću fleksibilnost.<br />

AIR aplikacije mogu raditi bez pristupa <strong>Internet</strong>u, ali i aktivirati potrebne dodatne<br />

funkcionalnosti ili prenijeti podatke na server kada aktivna <strong>Internet</strong> konekcija bude dostupna.<br />

Jedan od primjera za takav modus rada bogatih <strong>Internet</strong> aplikacija je eBay Desktop koji<br />

omogućava prodavačima da dovrše popis stvari koje prodaju bez pristupa <strong>Internet</strong>u, tj.<br />

lokalno, i potom prenose taj popis na eBay server kada se konektiraju na <strong>Internet</strong>.<br />

AOL Music AIR bogata <strong>Internet</strong> aplikacija koja služi za prikaz video spotova<br />

Na službenoj AIR web stranici postoji oko 3500 aplikacija i taj broj raste svakim danom što<br />

potvrđuje sve veći interes za bogatim <strong>Internet</strong> aplikacijama...<br />

Ajax<br />

Asynchronous JavaScript and XML (Ajax ili AJAX) podrazumijeva skup tehnika. Sa Ajaxom,<br />

web aplikacije mogu vraćat podatke sa servera asinkrono (u pozadini), bez utjecaja na<br />

prikaz i ponašanje Web stranice. Podaci se skidaju korištenjem XMLHttpRequest objekta ili<br />

10


preko Remote Scripting tehnike za pretraživače koji ne podržavaju prvu metodu. Usprkos<br />

imenu, korištenje JavaScript-a i XML-a nije nužno, kao i da zahtjevi budu asinkroni.<br />

Ajax se izvorno odnosi na sljedeće tehnologije [1]:<br />

• XHTML i CSS za prezentacije<br />

• Document Object Model (DOM) za dinamički prikaz i interakciju sa podacima<br />

• XML i XSLT za razmjenu, upravljanje i prikaz podataka<br />

• XMLHttpRequest objekt za asinkronu komunikaciju<br />

• JavaScript za povezivanje navedenih tehnologija<br />

Nakon par godina razvoj Ajaxa je doveo do sljedećih činjenica [1]:<br />

• JavaScript nije jedini skriptni jezika sa klijentske strane koji se može koristiti za<br />

implementaciju Ajax aplikacije. Mogu se koristiti i drugi jezici sa dovoljnim<br />

mogućnostima kao što su VBScript i EGL<br />

• XML nije potreban za razmjenu podataka i prema tome ni XSLT nije nužan za<br />

upravljanje podacima. Često se kao alternativa koristi JavaScript Object Notation<br />

(JSON), ali mogu poslužiti i formati kao preformatirani HTML i plain text.<br />

Prednosti korištenja Ajaxa su da web aplikacije mogu tražiti samo onaj sadržaj koji im je<br />

nužan za prikaz promjene stanja, tako da se drastično smanjuje korištenje bandwitha i vrijeme<br />

obrade. Asinkroni zahtjevi omogućuju korisnikovom Web pretražniku (UI-u) da bude<br />

interaktivniji i da brže reagira na ulazne podatke, a dijelovi stranice se mogu posebno<br />

učitavati. Korisnicima se čini da je aplikacija brža i da brzo reagira na zahtjeve iako zapravo<br />

nije došlo do nikakve promjene na strani servera. Također, primjena Ajax-a može smanjiti<br />

broj veza prema serveru jer se skripte i stilski obrazci (style sheets) trebaju samo jednom<br />

zatražiti.<br />

Glavni nedostaci su da se dinamičke stranice ne registriraju automatski sa pretraživačevim<br />

cacheom (history) tako da su potrebni posebni mehanizmi da bi korisnik mogao tipkom Back<br />

se vratit na prijašnje stanje. Isti je problem i kod pohrane stranice u bookmark (favoritima) jer<br />

pretraživač pamti samo originalnu stranicu, a ne može pohranit neko određeno stanje<br />

aplikacije. Velika mana je i ovisnost o tome kako korisnik ima podešen pretraživač jer ako<br />

nema ili ima isključenu podršku za Ajax ili JavaScript, neće moći koristiti sve funkcionalnosti<br />

web aplikacije (isto vrijedi i za mobilne te PDA uređaje itd.). Jedini način kako bi ispravili<br />

ovaj nedostatak je koristiti nešto osim JavaScript-a, odnosno linkove i forme koje se ne bi<br />

isključivo vezale uz Ajax. Velik problem je i nepostojanje standardizajskog tijela iza Ajax-a<br />

što uzrokuje različitu upotrebu Ajax-a u praksi, njegovih event modela, modela za pristup<br />

podacima i protokola. Problem je kao i uvijek sigurnost jer korištenje Ajax-a otvara vrata<br />

ubacivanju štetnog (virus) koda.<br />

11


Microsoft Silverlight<br />

Silverlight je programibilni plugin za web browsere (podržani su različite verzije Windows<br />

platformi i MAC OS X, te Windows Mobile 6 i Symbian za mobilne uređaje, dok se za GNU<br />

i Linux priprema Moonlight, od strane neovisnog [3rd party] proizvođača). Silverlight<br />

integrira multimediju, grafiku i animaciju u jednu razvojnu okolinu. Napravljen je da radi sa<br />

XAML i JavaScriptom. XAML služi za prikazivanje tekstualnog sadržaja koji nije<br />

kompajliran, ali se može pretraživati i indeksirati. Podržani su razni video i audio formati koji<br />

se mogu prikazivati bez instaliranog WIndows Media Player, WMP ActiveX ili nekog WMP<br />

plugina. To su WMV, WMA i MP3 datoteke. Podržan je i VC-1 format, ali zasad samo kroz<br />

ASF kontejner, a mogućnost prikazivanja H.264 video sadržaja je naknadno ubačeno u<br />

verziju Silverlight 2.0.<br />

Silverlight verzija 1.0 (travanj 2007.) se sastoji od sljedećih komponenti[2]:<br />

• Input – zadužena za ulazne operacije, čitanje sa tipkovnice, miša, stylus olovke itd.<br />

• UI core – služi se renderiranje bitmap slika (uključujući i kompresirane JPEG),<br />

vektorske grafike, teksta i animacija<br />

• Media – prikazivanje MP3, WMA, WMV7, WMV8 i WMV9/VC-1 sadržaja (stream)<br />

• XAML – služi za kreiranje UI layouta<br />

Silverlight aplikacije se pokreće pozivanjem Silverlight kontrole sa HTML stranice koja onda<br />

učitava XAML datoteku. Ta datoteka sadrži objekt Canvas koji u sebi sadrži sve ostale<br />

elemente. Grafičke, video i ostale elementi se pozicioniraju preko layouta, a mogu se kreirat i<br />

korisnički tipovi. Elementi se animiraju, pokreću putem Event triggers (to mogu biti pritisci<br />

na tipku miša ili tipkovnice, ali i složenije skripte koje je korisnik napisao). Kako bi<br />

omogućio upravljanjem UI-om, Silverlight sadrži DOM (Document Object Model) API koji<br />

je dostupan putem bilo kojeg skriptnog jezika, u slučaju 1.0 verzije to je samo JavaScript.<br />

Silverlight 2.0 sadrži i verziju .NET Frameworka koja implementira isti Common Language<br />

Runtime kao i .NET Framework 3.0, tako da može izvoditi programe napisane u bilo<br />

kojem .NET jeziku [7]. Za razliku od CLR-a uključenog u .NET, više instanci CoreCLR<br />

mogu biti u samo jednom procesu. To omogućuje da se XAML datoteka nadopuni kodom<br />

napisanim u nekom .NET jeziku i tako stvori logiku aplikacije koja se onda može koristiti za<br />

upravljanje Silverlight aplikacijom i HTML stranicom na kojoj se nalazi Silverlight. XAML<br />

kod je preveden u .NET, kompresiran ZIP formatom te takav pohranjen u .xap datoteku.<br />

12


Silverlight arhitektura[2]<br />

Base-Class Library (BCL) sadrži klase za kolekcije, refleksije, regularne izraze, klase za<br />

upravljanje stringovima i datotekama. Također je u potpunosti podržan LINQ to Objects and<br />

expression trees. Podržana je i serijalizacija objekata radi perzistentnosti podataka. Silverlight<br />

radi i sa podacima u RSS i JSON formatima, uz XML (XMLReader i XMLWriter klase).<br />

Podražano je i asinkrono programiranje korištenjem klasa za dretve. Postoje i klase za pristup<br />

Web uslugama utemeljenim na XML-u, WCF uslugama i ADO.NET Data uslugama.<br />

Komunikacije se vrši putem HTTP-a ili na nižem socket nivou.<br />

Dynamic Language Runtime (DLR) omogućuje dinamičko prevođenje i izvođenje<br />

dinamičkih (skriptnih) jezika. Prvi jezici pisani za DLR su Managed JScript, IronPython 2.0 i<br />

IronRuby. Microsoft planira napisati i Visual Basic .NET 10.0 na DLR. Svi ti jezici dijele istu<br />

strukturu što omogućuje Silverlightu da kompajlira i pokreće izvorni kod.<br />

Sa integracijom .NET Framework, Silverlight omogućuje putem HTML-a upravljanje kodom<br />

(HTML DOM elementima) i dozvoljava JavaScript kodu da poziva i koristi instancirane<br />

objekte.<br />

Nove medijske mogućnosti Silverlight 2 su [2]:<br />

• podrška za WMA Professional<br />

• zaštita sadržaja putem Microsoft PlayReady DRM klijenta<br />

13


• playliste Windows Media Services na strani servera<br />

• Media Stream Source API<br />

Od nabrojanih mogućnosti, najzanimljivija je posljednja koja omogućuje adaptive<br />

streaming, odnosno video player na temelju bandwitha i CPU snage korisnika, određuje<br />

kojim bit-rate će koristiti za prikazivanje medijskog sadržaja.<br />

JavaFX<br />

Primjer Silverlight aplikacije<br />

JavaFX je skupina (obitelj) softverskih proizvoda za kreiranje <strong>RIA</strong> aplikacije koju je<br />

predstavio Sun Microsystems (verziju 1.0) 4. prosinca 2008. godine. Naravno podržane<br />

platorme su različiti oblici stolnih, prijenosnih i mobilnih računala i uređaja. Službeno Java-<br />

FX je podržana samo od operativnih sustava Microsoft Windows i Mac OS.<br />

JavaFX se sastoji od dvije komponente [3]:<br />

• JavaFX Script – to je deklarativni programski jezik kojem je namjena da Swing<br />

učini jednostavnijim za korištenje programerima sučelja ili grafičkim<br />

dizajnerima koji koriste skripte jezike. Zamisao je strukturu koda učiniti<br />

analognom strukturi GUI layout-a.<br />

• JavaFX Mobile – operativni sustav za mobilne uređaje, uključujući PDA,<br />

smartphone te buduće slične uređaje. To je implementacija Java SE i Java ME<br />

koja se vrti na Linux jezgri.<br />

14


JavaFX platforma [4]<br />

Stručnjaci iza projekta JavaFX naglašavaju da je najveća prednost JavaFX činjenica da je<br />

naglasak na „visoko-animiranim“ sučeljima, dok su prijašnji skriptni jezici bili orijentirani na<br />

„bombardiranju Web stranica“ 1 . Bitno je reći da je ova izjava u skladu sa činjenicom kako je<br />

tržišni udio mobilnih uređaja (tj. računala), ali i njihove mogućnosti u porastu svaki dan, tako<br />

da se JavaFX razvija u skladu sa vizijom budućnosti. JavaFX bi trebala donijeti mogućnosti iz<br />

JavaSE jezgre, ali na mobilne uređaje.<br />

Očekuje se kako će konkurenti JavaFX biti Adobe Flash Player, Adobe AIR, OpenLaszlo i<br />

naravno spomenuti Microsoft Silverlight. Istaknuto je kako se Microsoftovo rješenje većinom<br />

koncentira na video-streaming te kako je JavaFX napredniji od AJAX-a, a može se izvesti<br />

bilo što se može i sa tom tehnologijom.<br />

Čelnici Sun Microsystem su istaknuli kako će u budućnosti nastaviti djelomičnu OpenSource<br />

praksu. Tako da će sa vremenom odvajati i povećavati OpenSource dio od drugog zaštićenog<br />

dijela JavaFX runtime, dok će uskoro bit objavljene specifikacije za JavaFX i dodijeljeni<br />

formati 2 .<br />

Trenutne licence za JavaFX runtime module [3]:<br />

• jezgra (core JavaFX runtime) – zaštićena<br />

• JavaFX compiler i 2D Scene graph – objavljeni pod GPL v2 licencom<br />

• NetBeans plugin za JavaFX je dvostruko licenciran pod GPL v2 i CDDL<br />

1 James Gosling, Sun Microsystems<br />

2 Jeet Kaul, vicepresident for Sun Client Software<br />

15


Neki programeri [6], poučeni iskustvom ranijih Sunovih platformi, su već istaknuli kako je<br />

ovo tek zapravo alpha izdanje JavaFX te da ne očekuju veću primjenu, odnosno potpunu<br />

verziju još 3-4 godine. Također je ponovno istaknut problem performansi.<br />

Zaključak<br />

Bogate internet aplikacije nude priliku za kreiranje puno boljih korisničkih sučelja nego što je<br />

dosad to bilo moguće. Mogu biti brže i jednostavnije za korištenje. No, treba biti i pažljiv s<br />

takvim mogućnostima da se ne pretjera, te time zbuni korisnika. Može se očekivati još puno<br />

napretka na ovom području(ima jako puno prostora), što bi posebno mogla ubrzati<br />

konkurencija među tehnologijama. Budućnost se čini jako dobra, te će biti zanimljivo pratiti<br />

daljnji razvoj.<br />

16


Literatura<br />

[1] http://en.wikipedia.org/wiki/AJAX<br />

[2] http://en.wikipedia.org/wiki/Silverlight<br />

[3] http://en.wikipedia.org/wiki/JavaFX<br />

[4] http://www.sun.com/software/javafx/<br />

[5] http://cs.fit.ba/blogs/doublescorpio_blog/archive/2008/03/22/<strong>Rich</strong>-<strong>Internet</strong>-<strong>Applications</strong>basics.aspx<br />

[6] http://www.infoworld.com/article/07/05/07/javafx-javaone_1.html<br />

[7] http://www.silverlight.net/<br />

[8] http://en.wikipedia.org/wiki/Adobe_Flash<br />

[9] http://www.adobe.com/products/flex/overview/<br />

[10] http://cs.fit.ba/blogs/doublescorpio_blog/archive/2008/05/11/Flash-i-Actionscript.aspx<br />

[11] http://www.adobe.com/hr/products/air/<br />

[12] http://en.wikipedia.org/wiki/Adobe_Flash_Player<br />

17

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!