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