bogate internet aplikacije - bib.irb.hrdefinirana je arhitektura bogatih internet aplikacija i...

36
SVEUČILIŠTE U ZAGREBU FAKULTET ORGANIZACIJE I INFORMATIKE V A R A Ž D I N Toni Steyskal BOGATE INTERNET APLIKACIJE ZAVRŠNI RAD Varaždin, 2014.

Upload: others

Post on 21-Jan-2020

5 views

Category:

Documents


0 download

TRANSCRIPT

SVEUČILIŠTE U ZAGREBU

FAKULTET ORGANIZACIJE I INFORMATIKE

V A R A Ž D I N

Toni Steyskal

BOGATE INTERNET APLIKACIJE

ZAVRŠNI RAD

Varaždin, 2014.

SVEUČILIŠTE U ZAGREBU

FAKULTET ORGANIZACIJE I INFORMATIKE

V A R A Ž D I N

Toni Steyskal

Matični broj: 40102/11–R

Studij: Informacijski sustavi

BOGATE INTERNET APLIKACIJE

ZAVRŠNI RAD

Mentor:

Dr.sc. Tihomir Orehovački

Varaždin, rujan 2014.

I

Sadržaj

1. Uvod ...................................................................................................................................... 1

2. Bogate internet aplikacije ...................................................................................................... 2

2.1. Kratka povijest ................................................................................................................ 3

2.2. Usporedba s desktop aplikacijama ................................................................................. 4

2.3. Arhitektura ...................................................................................................................... 5

2.4. Prednosti i nedostaci ....................................................................................................... 7

2.5. Primjer ............................................................................................................................ 8

3. Tehnologije .......................................................................................................................... 10

3.1. Adobe/Apache Flex ...................................................................................................... 10

3.1.1. Adobe Flash ........................................................................................................... 11

3.2. AJAX ............................................................................................................................ 12

3.3. JavaFX .......................................................................................................................... 14

3.4. Microsoft Silverlight .................................................................................................... 15

3.5. HTML5 ......................................................................................................................... 17

4. Prototip ................................................................................................................................ 19

4.1. Unity ............................................................................................................................. 20

4.2. UnityPlay ...................................................................................................................... 21

4.3. Tehnologije ................................................................................................................... 23

4.3.1. HTML5 .................................................................................................................. 24

4.3.2. CSS ........................................................................................................................ 25

4.3.3. PHP ........................................................................................................................ 26

4.3.4. JavaScript, jQuery i AJAX .................................................................................... 26

5. Zaključak ............................................................................................................................. 30

6. Literatura ............................................................................................................................. 32

1

1. Uvod

Početak stvaranja web stranica karakteriziran je statičkim stranicama koje su prenosile

samo sirove informacije krajnjem korisniku, ne obraćajući pozornost prema interakciji i

pridobivanju pažnje posjetitelja stranice. Prve ideje stvaranja web stranica su bile zaokupljene

samo sadržajem koji žele prenijeti ciljanoj skupini, ne shvaćajući da je i način prenošenja tog

sadržaja od velike važnosti. Način prenošenja sadržaja i željene poruke je bitan aspekt

ostavljanja dojma i marketinga proizvoda ili usluge. U suvremenom globalnom poslovnom

okruženju, kupci i korisnici usluga su sve zahtjevniji, te je njihovu pozornost i odanost sve teže

zadobiti. Posvećivanje više vremena načinu prenošenja sadržaja i kreiranju interakcije pomoću

bilo kojeg načina komuniciranja sa kupcima i korisnicima dovodi do većeg uspjeha i

zadovoljstva na obje strane. Uobičajene standardne web stranice ne mogu u potpunosti doprijeti

do korisnika i mogu ostaviti loš ili neočekivan dojam. Danas se vrlo rijetko nailazi na web

stranicu koja uopće nema interakciju sa korisnikom. Standardno se očekuje i određena razina

dinamičnost, što zapravo predstavljaju bogate internet aplikacije. Bogate internet aplikacije su

postale toliko rasprostranjene da se one kao takve već smatraju uobičajenim web stranicama.

Primjer povećanja pojma web stranice i integracije karakteristika bogatih internet aplikacija

može se predočiti na raznim primjerima web stranica koje se danas svakodnevno koriste i

posjećuju. Krajnji korisnik tu stranicu doživljava kao uobičajenu web stranicu ne shvaćajući da

ona sadrži čak sve ili samo neke karakteristike i prednosti bogatih internet aplikacija. Bogate

internet aplikacije čine interakcije privlačnim, dinamičnim i korisnim, one izlaze u susret

korisniku. Posjetitelj stranice u današnje doba osjeća odbijenost prema klasičnim prvobitnim

statičnim web stranicama. Zahtijeva se da se kvalitetan sadržaj prenosi i na kvalitetan način,

korisnik jednostavno želi „sudjelovati“ u samoj razmjeni informacija.

Završni rad započinje uvodom u pojam bogatih internet aplikacija, objašnjavanjem nastanka i

utjecaja istih na moderan web i internet. Definirana je arhitektura bogatih internet aplikacija i

uspoređene su s desktop aplikacijama, čime su pokazane prednosti i nedostaci bogatih internet

aplikacija. Predočene su tehnologije za izradu bogatih internet aplikacija, načini njihovih

primjena i nastanka. Za potpunu predodžbu i prikaz bogate internet aplikacije kreiran je prototip

i prikazan je unutar završnog rada.

2

2. Bogate internet aplikacije

Naziv bogate internet aplikacije (eng. Rich Internet Applications – RIA) je prvi put

upotrijebljen 2002. godine od strane inženjera Macromedije, današnjeg Adobe-a. Macromedia

je odlučila poraditi na novom konceptu razvijanja web aplikacija i desktop aplikacija. Nova

vrsta aplikacija će pružati bogato korisničko iskustvo koje povećava produktivnost i

zadovoljstvo aplikacijom [Allaire, 2002].

Bogate internet aplikacije su web aplikacije, koje koriste podatke koji se mogu obraditi od

strane poslužitelja i klijenta. Nadalje, razmjena podataka se odvija na asinkron način da klijent

bude osjetljiv na promjene (eng. responsive) i pritom kontinuirano preračunava ili osvježava

potrebne dijelove korisničkog sučelja. Sa gledišta korisnika, bogate internet aplikacije pružaju

sličan izgled i dojam kao i desktop aplikacije. Riječ „bogate“ konkretno označava razliku

naspram prijašnjih generacija web aplikacija. Karakteriziraju ih raznovrsne interaktivne

operativne kontrole, mogućnost korištenja aplikacija neovisno o mreži i transparentno

korištenje računalne snage klijenta i poslužitelja [Busch i Koch, 2009].

Bogate internet aplikacije predstavljaju web aplikacije koje sadrže mnoge karakteristike

desktop aplikacija. Bogate internet aplikacije su uobičajeno isporučene pomoću preglednika,

njegovog posebnog dodatka (eng. plug-in), neovisnog sigurnosnog okvira (eng. sandbox),

korištenjem JavaScript-a ili preko virtualnog stroja. Struktura bogate internet aplikacije vidljiva

je na slici 1.

Slika 1: Bogate internet aplikacije (Izvor: Whatley, 2007)

3

Web 2.0 predstavlja vrstu evolucije Web-a, promijenivši način kreiranja aplikacija za web i

način korištenja istih. Pojam se često povezuje s bogatim okruženjima i okruženjima

orijentiranim prema korisniku (eng. User-Centered), manjim brojem osvježavanja stranica

(koristeći AJAX) i korištenjem određenih standarda. Također, Web 2.0 se odnosni na vrstu

weba gdje korisničko sudjelovanje, suradnja i programska sučelja za izradu programa (eng.

Application Programming Interface - API) zajedno otvaraju mogućnosti za moćnije aplikacije

[Granbäck, 2009].

Bogate internet aplikacije su dio Web 2.0 standarda unutar kojeg još ulazi nekoliko tehnologija

(npr. XML, RSS, CSS itd.). To su aplikacije koje bi trebale imati iste funkcionalnosti kao

desktop aplikacije (poslovne aplikacije, igrice i sl.). Takva vrsta aplikacije je u potpunosti u

skladu sa konceptom Web 2.0 aplikacija. Glavna karakteristika bogatih internet aplikacija je

kreiranje okruženja koje je orijentirano prema korisniku (eng. User-Centered). Takvo

okruženje omogućava korisnicima učinkovito korištenje resursa uz maksimalne mogućnosti

dizajna. Još jedna bitna karakteristika je široka dostupnost, dobivena korištenjem tehnologija

koje su rasprostranjene i kompatibilne [IBM, 2014].

Trenutno postoje mnoge platforme i okviri (eng. framework) koji se upotrebljavaju za izradu

bogatih internet aplikacija (npr. Adobe Flash, Microsoft Silverlight, JavaFX, AngularJS,

Google Web Toolkit i drugi). Najkorišteniji je Adobe/Apache Flex za profesionalni razvoj, koji

osigurava potpuno neovisna okruženja preglednika i operativnog sustava. Također, HTML5 se

koristi kao alternativna tehnologija otvorenog koda (eng. open source) sa okvirima koji

omogućuju veću interaktivnost sa web aplikacijama.

2.1. Kratka povijest

Prva ideja kreiranja animacijskog okruženja unutar preglednika i pokušaj savladavanja

standardnih problema weba predstavlja ključnu prekretnicu u stvaranju bogatih internet

aplikacija. Takva vrsta ideje potiče od proizvoda „SmartSketch“ koji je prije 20-tak godina

izveden iz vektorski orijentiranog programa za skiciranje. Kako su dizajneri proizvoda

pokušavali animirati svoje skice i probiti se na tržište, nastao je predak današnjeg Adobe Flash

Player-a pod nazivom FutureSplash. Time su stvoreni korijeni platforme za novi stil aplikacija,

poznate pod imenom bogate internet aplikacije. Kroz nekoliko narednih godina Flash se razvija

i dobiva audio, video i vrlo složene mogućnosti rukovanja pikselima i tekstom pod okriljem

Macromedije. Bogate internet aplikacije su riješile važan problem pružanja vrlo interaktivnog

korisničkog iskustva kroz sam preglednik i nisu bile ovisne o načinu kako preglednik renderira

4

HTML označavanje. Također, pojavili su se i razni HTML standardizirani načini pružanja

bogatog iskustva (AJAX). Njihova kompleksnost razvijanja se ublažuje mnogim

HMTL/JavaScript okvirima, no tehnologija posebnih dodataka (eng. plug-in) i dalje ostaje

glavna pri pružanju najinteraktivnijih i standardiziranih iskustva s bogatim internet

aplikacijama [Hilwa i Perry, 2010].

2.2. Usporedba s desktop aplikacijama

Tradicionalne desktop aplikacije su karakterizirane bogatim korisničkim iskustvom i

kompleksnim grafičkim sučeljem (izbornici, višestruki prozori i sl.). Desktop aplikacije se

izvršavaju brzo i smještene su lokalno na platformi krajnjeg korisnika. Problem takvih

aplikacije nastaje kada korisnici koji koriste istu nisu lokalizirani, odnosno, kada je aplikaciju

potrebno koristiti preko mreža s različitim sigurnosnim ograničenjima. Dodatni problem se

javlja kada je grupa korisnika iznimno velika, što otežava instalaciju, održavanje i fleksibilnost

pristupa samoj aplikaciji. Pri tome se u obzir mora uzeti pojedinačni hardver i operativni sustav

svakog korisnika [The Server Labs S.L, 2008].

Web aplikacije pružaju način kako savladati te prepreke pomoću arhitekture „tankog“ klijenta

koja je temeljena na internet standardima i protokolima. Jednostavan web preglednik preuzima

ulogu prezentacijskog sloja unutar aplikacije, a ostatak se izvršava centralizirano na

poslužitelju. Na taj način samo spajanje na mrežu je dovoljno za bilo kojeg korisnika da pristupi

aplikaciji od bilo kuda. Također, kod web aplikacija nema potrebe za instalacijom i ažuriranjem

na strani klijenta. No glavni problem tradicionalnih web aplikacije je da su vrlo statične. Kod

tradicionalnih web aplikacija svaka interakcija aplikacije mora proći kroz poslužitelj, potrebna

je razmjena podataka, te im nedostaje bogato korisničko sučelje [The Server Labs S.L, 2008].

Bogate internet aplikacije zapravo predstavljaju spoj tih dvaju načina rada, pokušavajući

preuzeti prednosti desktop aplikacija i web aplikacija. To postižu uvođenjem dodatnog

klijentskog sloja, kako bi se izvršavao kod na strani klijenta, postižući bolje performanse,

korisničko sučelje i korisničko iskustvo.

5

2.3. Arhitektura

Arhitektura bogatih internet aplikacija se ne oslanja na komunikaciju između klijenta i

poslužitelja (eng. Client-Server Communication). U takvoj komunikaciji korisnik šalje zahtjev

prema poslužitelju, zatim se odvija potpuna obrada podataka i poslužitelj vraća odgovor

zahtijevane web stranice u obliku čistog HTML-a. Bogate internet aplikacije se oslanjaju na

obradu koja se izvršava na klijentskom računalu unutar preglednika. Rezultat je učinkovitiji

proces obrade, oslobađanje poslužitelja i pružanje veće mogućnosti dizajneru aplikacije. Još

jedna karakteristika ovakve arhitekture je asinkrona komunikacija između bogate internet

aplikacije i poslužitelja. Takav način rada omogućava brži odaziv i brže izvršavanje aplikacije.

Male količine podataka koje je potrebno razmijeniti između poslužitelja i klijenta ne zahtijevaju

stalno osvježavanje stranica [The Server Labs S.L, 2008].

Ovisno o količini programske logike koja se izvršava na strani klijenta, postoje različita rješenja

kao što je prikazano na slici 2.

Slika 2: Arhitekture bogatih internet aplikacija (Izvor: The Server Labs S.L, 2008)

6

Tipična bogata internet aplikacija se sastoji od tri sloja: prezentacijskog, aplikacijskog i

podatkovnog sloja. Prezentacijski sloj obično sadrži korisničko sučelje i komponente

prezentacijske logike. Aplikacijski sloj se sastoji od poslovne logike, radnog tijeka i

komponenata poslovnih subjekata. Podatkovni sloj uobičajeno služi za pristup podacima i

sadrži komponente usluga. Često je da bogate internet aplikacije izvode poslovne obrade i

pristup podataka na strani klijenta. Stoga, klijent može sadržavati neke ili čak sve

funkcionalnosti aplikacijskog i podatkovnog sloja, ovisno o načinu razvoja same aplikacije

[Microsoft, 2014].

Kod tradicionalnih web aplikacija podaci se nalaze na poslužitelju, dok kod bogatih internet

aplikacija podaci mogu biti raspoređeni između poslužitelja i klijenta. Razvojni programer (eng.

developer) može odlučiti o načinu raspodjele podataka, pa čak i razviti aplikaciju koja će se

privremeno koristiti neovisno o poslužitelju. Dakle, bogata internet aplikacija može koristiti

dosljedan i promjenjiv sadržaj klijenta. Podacima se može manipulirati na strani klijenta i pri

završetku poslati poslužitelju. Također, tradicionalne web aplikacije koriste samo jedan

kontroler (eng. controller) na strani poslužitelja koji određuje prikaz i osvježavanje stranice.

Pri svakoj korisničkoj interakciji, cijela stranica je osvježena i prikazana ispočetka. Bogate

internet aplikacije uvode dodatan kontroler na strani klijenta koji je odgovoran za osvježavanje

i prikaz pojedinih dijelova stranice. Obrada podataka se može izvršiti i na strani klijenta i

poslužitelja, te postoji drugačija navigacijska struktura od Web 1.0 aplikacija. Zbog povećane

sposobnosti obrade podataka na strani klijenta, kod bogatih internet aplikacija poslužitelj i

klijent mogu obavljati složene operacije [Busch i Koch, 2009].

Bogate internet aplikacije mogu biti izvedene kao sučelja koja prekrivaju poslovne usluge s

kojima korisnik rijetko dolazi u kontakt (eng. back end business services). Mogu biti izvedene

i kao složene aplikacije koje izvode većinu procesa same i samo komuniciraju s istim kako bi

iskoristile ili poslale informacije. Dakle, dizajn i implementacija bogatih internet aplikacija se

razlikuje. Međutim, u pogledu prezentacijskog sloja i načina komuniciranja s spomenutim

poslovnim uslugama, postoje uobičajeni pristupi dobrom arhitekturnom dizajnu. Većina se

temelji na dobro poznatom uzorku dizajna koji ohrabruje korištenje zasebnih komponenti

unutar aplikacije. Zasebne komponente se koriste za smanjenje zavisnosti aplikacije, da učine

održavanje i testiranje jednostavnije i promiču ponovnu iskoristivost [Microsoft, 2014].

Bogate internet aplikacije predstavljaju mehanizme za smanjenje razmjene podataka koji

prenose interakcijski i prezentacijski sloj sa strane poslužitelja na stranu klijenta. Nasuprot

7

standardnih web aplikacija, bogate internet aplikacije koriste i sinkroni i asinkroni način

komuniciranja. Raspodjela podataka i funkcionalnosti prijeko klijenta i poslužitelja proširuje

značajke proizvedenih događaja, koji mogu biti otkriveni, obaviješteni i obrađeni na različite

načine [Busch i Koch, 2009].

2.4. Prednosti i nedostaci

Iz načina izrade bogatih internet aplikacije proizlaze određene prednosti [Hilwa i Perry, 2010]:

imaju iste značajke i sposobnosti poput desktop aplikacija

nemaju potrebu za instalacijom za njihovo pokretanje, iz razloga kako rade isključivo

na web preglednicima

ažuriranje se provodi automatski

jedna te ista bogata internet aplikacija se može izvršavati na različitim preglednicima i

operativnim sustavima

daju veću vizualnu interaktivnost od uobičajenih web stranica

smanjuju troškove zbog svoje implementacije na više platforma

Ni jedna vrsta tehnologije ne predstavlja savršeno rješenje za sve scenarije korištenja, pa tako i

bogate internet aplikacije imaju svoje nedostatke. Iako pružaju bogatije korisničko sučelje, još

ne mogu u potpunosti konkurirati sa tradicionalnim desktop aplikacijama. Ukoliko se koriste

unutar sigurnosnog okvira (eng. sandbox), imaju ograničen pristup resursima sustava. Kako bi

se postigla neovisnost o platformi, neke bogate internet aplikacije koriste skripte na strani

klijenta. Skripte su pisane u interpreterskim jezicima poput JavaScript-a, što rezultira značajnim

gubitkom performansi. Također, jedan od glavnih nedostataka bogate internet aplikacije je

ovisnost o internet vezi. Idealna zamjena za desktop aplikaciju bi korisniku dopustila da bude

„povremeno spojen“, no trenutno tipična bogata internet aplikacija obavezno zahtijeva

povezanost na mrežu [The Server Labs S.L, 2008].

Kod potpuno dinamičkih bogatih internet aplikacija javlja se još jedan nedostatak da se

određena stanja stranice ne pohranjuju automatski u povijest pretraživača. Potrebni su posebni

mehanizmi kako bi se korisnik mogao tipkom Povratak (eng. Back) vratiti na prijašnje stanje.

Isti problem se javlja i kod pohrane stranice u društvenom knjižnom označavanju preglednika

(eng. bookmarks). Pretraživač pamti samo originalnu stranicu, a ne može pohraniti neko

određeno stanje aplikacije.

8

2.5. Primjer

Pojam bogatih internet aplikacija je najlakše shvatiti preko određenih primjera. Naime

postoje razne upotrebe bogatih internet aplikacija unutar raznih poslovnih i edukacijskih

sektora. Kao primjer će biti prikazane stranice Centra za istraživanje i edukaciju jezika ( eng.

The Center for Language Education and Research – CLEAR) koje se mogu pronaći na

http://clear.msu.edu/teaching/online/ria/#RIAs. Ova vrsta bogatih internet aplikacija se koristi

u edukativnu svrhu s ciljem približavanja novog načina učenja studentima i stvaranja odnosa s

nastavnicima Michigan State Sveučilišta.

Primjer bogate internet aplikacije je QuizBreak! koji predstavlja vrlo fleksibilan program.

QuizBreak! omogućuje nastavnicima da stvore zabavan način učenja jezika unutar učionica,

pomoću interaktivnih materijala za učenje i koristeći vrstu kviza (slika 3).

Slika 3: QuizBreak! (Izvor: CLEAR, 2010)

9

QuizBreak! funkcionira na način da nastavnik stvara određena pitanja neke bodovne

vrijednosti. Pitanja se mogu nadopuniti savjetima u obliku audio ili video zapisa, slika,

animacija i slično. Ujedno je stvoreno okruženje orijentirano prema korisnicima za kreiranje

samog kviza od strane nastavnika, kao i korištenje aplikacije od strane studenta. Može se u

potpunosti koristiti samo unutar preglednika i radi na više platforma. Izgled sučelja i

implementacija video pomoći unutar kviza vidljivi su na slici 4.

Slika 4: Video pomoć (Izvor: CLEAR, 2010)

10

3. Tehnologije

Postoje razne platforme i okviri za kreiranje bogatih internet aplikacija, a već spomenute

najpoznatije i najkorištenije će biti objašnjene, Adobe Flex, AJAX, JavaFx, Silverlight i

HTML5.

3.1. Adobe/Apache Flex

Adobe Flex je prvi okvir za izradu bogatih internet aplikacija, kojeg je Macromedia izdala

na tržište 2004. godine. 2011. godine je preimenovan u Apache Flex i dalje razvijan od strane

Apache Software Foundation-a. Trenutna najnovija inačica na tržištu je Apache Flex 4.13. Flex

je ujedno i aplikacijski okvir otvorenog koda za izradu tradicionalnih, desktop i mobilnih

aplikacija, pritom koristeći Flex alat za razvoj softvera (eng. Flex Software Development Kit –

SDK). Pojednostavljen prikaz izrade aplikacije unutar Flex-a vidljiv je na slici 5 [Apache Flex,

2014].

Slika 5: Način rada Flex-a (Izvor: Apache Flex, 2014)

Flex 4 stavlja naglasak na ideju koja se odnosi na „Design in Mind“, kojoj je glavni prioritet

omogućavanja lake prilagodbe izgleda aplikacija inicijalnoj zamisli dizajnera. Realizacija se

vrši pomoću predodređene teme ili koristeći komponentu za dizajnerske alate kako bi se

postigao jedinstven izgled. To se ujedno i odražava u MXML-u, koji predstavlja Flex-ov jezik

za označavanje korisničkog sučelja (eng. user interface markup language), čiji je format

prilagođen da odgovarajući alati bolje opisuju značajke poput stanja, prijelaza i efekata. Flex

11

aplikacije se izvode koristeći Flash Player. Kako je ActionScript programski jezik koji koristi

Flash, također se koristi i za Flex. ActionScript 3.0 predstavlja zadnju inačicu, te je objektno

orijentiran jezik koji zahtjeva Flash Player 9 ili više. Flex aplikacije se mogu i pisati u MXML-

u koji je vrlo sličan HTML-u. MXML je deklarativan jezik za označavanje temeljen na XML-

u, a koristi se za opisivanje korisničkih sučelja i postavljanja komponenti. MXML se može

koristiti i za implementaciju značajki koje nisu vizualnog tipa [Granbäck, 2009].

3.1.1. Adobe Flash

Adobe Flash platforma je bila vodeće rješenje za kreiranje bogatih internet aplikacija, koje

nudi skup integriranih tehnologija. Koristi se za kreiranje animacija, igra i bogatih internet

aplikacija koje je moguće prikazati, igrati i izvršiti pomoću Adobe Flash Player-a. Povijest

Flash-a se proteže do 1996. godine, kada je predstavljen od strane Macromedije. Adobe Flex

aplikacije se obično sastavljaju (eng. compile) u ActonScript-u, koji se zatim sastavlja u SWF

(eng. Shockwave Flash) datoteku. SWF datoteke se sastoje od sadržaja i funkcionalnosti

Flash/Flex aplikacije i izvodi se unutar Flash Player-a [Granbäck, 2009].

U početku je Adobe Flash bio alat za izradu animacija i web aplikacija (jednostavne igre,

reklame i sl.). Daljnjim razvojem proširile su se mogućnosti i ugrađuju se kompleksnije

instrukcije i opcije u sam program. Adobe Flash se bazira na ActionScript programskom jeziku,

te je napravljen kao vektorski alat. Adobe je omogućio veliku kompatibilnost između svojih i

Macromedijinih programa, učinivši suradnju između Photoshop, Illustrator i Flash programa

laganom i intuitivnom. Moguće je čitavu web stranicu nacrtati u Illustratoru, zatim je prebaciti

u Flash, tamo animirati i programirati dodatne funkcionalnosti. Nedostaci Flash stranica su

dugo učitavanje, loše pozicioniranje na tražilicama, nemogućnost korištenja gumba za

povratak. Postoji i problem nepravilnog društvenog knjižnog označavanja (eng. bookmarking)

i nedostatak pretraživanja stranica. Naravno postoje i dobre strane korištenja Flash alata, kako

on koristi vektorske grafike kao osnove, omogućava skaliranje sadržaja bez gubljenja kvalitete.

Jednom učitana stranica se može čuvati, čime se izbjegava kasnije ponovno učitavanje. Flash

nudi mogućnost povećanja interaktivnosti i standardiziranja web stranica na način da se u svim

preglednicima prikazuju jednako [Hilwa i Perry, 2010].

12

3.2. AJAX

AJAX (akronim za Asynchronous JavaScript and XML) predstavlja skup programskih

tehnika ili specifičan pristup web programiranju. Takav način programiranja omogućuje

neprimjetno ažuriranje web stranice ili dijela web aplikacije s informacijama sa poslužitelja,

bez potrebe za osvježavanjem stranice. Unatoč tome što u nazivu sadrži XML, njegova

upotrebna nije obavezna, već se može i koristiti JSON umjesto XML-a. Također, zahtjevi prema

poslužitelju ne moraju biti asinkroni. Tehnologije koje se koriste unutar AJAX-a su [IBM,

2014]:

XHMTL i CSS

The Document Object Model (DOM)

JavaScript

XML i XSLT

XMLHttpRequest objekt

Kako bi se aplikacija kreirala pomoću AJAX tehnologija dovoljni su samo: XHTML, DOM i

JavaScript, no razvijanje pomoću AJAX-a s vremenom će zahtijevati korištenje svih

tehnologija. Ujedno su potrebni i jezici za rukovanje sa interakcijama sa poslužiteljem, najčešće

korišteni su: PHP, ASP.NET (Visual Basic.Net/C#) i Java [Ullman i Dykes, 2007].

Primjer implementacije Javascript-a/AJAX-a je Facebook, koji koristi AJAX unutar vlastitog

okvira. Drugi primjer je Google Maps, koji koristi AJAX kako bi asinkrono učitao slike

prilikom pomicanja na karti. Okviri temeljeni na JavaScript-u/AJAX-u predstavljaju bolji izbor

ukoliko je propusnost (eng. bandwidth) najvažniji dio kod rada projekta. Bogate internet

aplikacije izrađene pomoću Javascript/AJAX okvira su generalno mnogo manje od bogatih

internet aplikacija izrađenih pomoću nekih drugih okvira temeljenih na posebnim dodacima

(eng. plug-in based frameworks). Problem kod bogatih internet aplikacija zasnovanih na

Javascript-u i AJAX-u je nemogućnost iskorištenja iste snage poput okvira temeljenih na

posebnim dodacima, kao što su izravna manipulacija grafike, suočavanje s vektorskom

grafikom i obavljanje više dretvenih izračuna [Granbäck, 2009].

Prednost korištenja AJAX-a je mogućnost web aplikacija da traže samo onaj sadržaj koji im je

bitan za prikaz promjene stanja. Na taj način znatno smanjuju korištenje propusnosti mreže i

vrijeme obrade zahtjeva. Asinkroni zahtjevi omogućuju pregledniku da bude interaktivniji i da

brže reagira na ulazne podatke, a pritom se dijelovi stranica mogu zasebno učitavati. Aplikacija

13

time ostavlja dojam da je brža i da brzo reagira na zahtjeve korisnika, iako zapravo nije došlo

do nikakve promjene na strani poslužitelja. Nedostatak pri korištenju AJAX-a je ovisnost o

postavkama preglednika korisnika. Ukoliko je isključena podrška za AJAX ili JavaScript, neće

se moći koristiti sve funkcionalnosti web aplikacije. Također, postoji i problem sigurnosti jer

korištenje AJAX-a omogućuje ubacivanje štetnog koda [W3Schools, 2014].

JavaScript je razvijen u svrhu skriptiranja, a ne za kreiranje punopravnih bogatih internet

aplikacija. JavaScript/AJAX proizvod možda neće nužno podržavati sve spomenute moguće

funkcije bogatih internet aplikacija. Djelomično ažuriranje stranice, asinkrona komunikacija,

modalni dijalozi i izbornici će biti dostupni, no ostale specifičnosti bogatih internet aplikacija

bi mogle biti ograničene u funkcionalnosti ili potpuno nedostupne. Tipično, skup bogatih

naprava korisničkog sučelja (eng. rich UI widgets) koje podržavaju izravnu manipulaciju će biti

siromašne u usporedbi s onima koje nalazimo kod desktop aplikacija. Obilježja industrijske

snage poput održavanja, pouzdanosti, dostupnosti, skalabilnosti, performansi i sigurnosti

predstavljaju izazov za JavaScript/AJAX proizvode. JavaScript/AJAX proizvodi se moraju

oslanjati na skriptni jezik i moraju raditi u heterogenom skupu izvršne okoline [Domenig,

2005].

Najpoznatija JavaScript biblioteka, koja olakšava korištenje JavaScript-a je jQuery. Radi na

način da puno zajedničkih zadataka koji zahtijevaju veliku količinu JavaScript linija koda

obuhvaća unutar metoda. Definirane metode se mogu pozvati korištenjem samo jedne linije

koda. Također, pojednostavljuje AJAX pozive i DOM manipulaciju. jQuery sadrži sljedeće

značajke: HTML/DOM manipulaciju, CSS manipulaciju, HTML metode događaja, efekte i

animacije i ostale korisne značajke. Iako postoji mnogo drugih JavaScript okvira, jQuery je

najpopularniji i proširiv, što je dokazano njegovim korištenjem od strane kompanija poput

Google-a, Microsoft-a, IBM-a i Netflix-a. Prva inačica jQuery 1.0 se pojavila 2006. godine,

dok je trenutno aktualna inačica 2.1.0 koja je podržana od strane svih današnjih preglednika

(Internet Explorer, Chrome, Firefox, Safari, Opera itd.) [W3Schools, 2014; jQuery, 2014].

14

3.3. JavaFX

JavaFX je okvir za kreiranje bogatih internet aplikacija, razvijen od strane Sun

Microsystems-a. Prvi put je izdan 2008. godine, kao lagana, hardverski ubrzana Java UI

platforma za poslovne aplikacije. Trenutna najnovija inačica JavaFX 2.0 je dostupna na

stranicama Oracle-a.

JavaFX se dijeli na tri različita izdanja: JavaFX Desktop, JavaFX Mobile i JavaFX TV. JavaFX

Desktop se često oslovljava kao samo JavaFX. Ta podjela predstavlja ideju korištenja JavaFX

okvira na više platforma. Razvojni programer (eng. developer) pritom može izabrati biblioteke

iz bilo kojeg izdanja (uobičajenog, JavaFX Desktop ili JavaFX Mobile) i time razviti aplikaciju

za obje platforme bez dodatnih izmjena. Arhitekturni pregled komponenata platforme vidljiv je

na slici 6 [Granbäck, 2009].

Slika 6: Arhitektura JavaFX platforme (Izvor: Granbäck, 2009)

Svrha JavaFX-a je stvaranje grafičkih aplikacije sa bogatim interaktivnim sadržajem. Okvir je

isporučen s UI komponentama poput klizača i grafikona. Iako nema mnogo komponenata poput

Flex-a i Silverlight-a, tim komponentama se može mijenjati vizualni izgled kako bi se bolje

15

uklopio sa ostatkom izgleda aplikacije. Nadalje, animacije, transformacije i efekte je moguće

lako primijeniti na bilo koju grafičku komponentu, a za slaganje rasporeda komponenata postoji

šest različitih klasa rasporeda [Granbäck, 2009].

3.4. Microsoft Silverlight

Microsoft Silverlight je alat za kreiranje i isporuku bogatih internet aplikacija na webu.

Silverlight 5 preuzima temelje Silverlight-a 4 za izgradnju poslovnih aplikacija i medijskih

iskustava. Alat uključuje mnogo noviteta, poput visoke video kvalitete, poboljšanje performansi

i značajka koje poboljšavaju produktivnost razvojnog programera (eng. developer). Silverlight

predstavlja besplatan poseban dodatak (eng. plug-in) za web preglednik koji također omogućuje

i kreiranje modernih mobilnih aplikacija [Microsoft, 2014].

Silverlight runtime je u osnovi podskup Windows Presentation Foundation-a (WPF). On

predstavlja Microsoftov standardan model za razvijanje korisničkih sučelja i centralni dio .NET

okvira, izgrađen na DirectX-u. Windows Vista i Windows 7 su izgrađeni koristeći WPF kao

grafički temelj. Glavne funkcionalnosti i nove značajke WPF-a su sažete u poseban dodatak

(eng. plug-in) koji se može instalirati na strani klijenta. Što znači da je Silverlight lakša i

prenosivija inačica WPF-a. Silverlight je razvijen da bude raspodjeljiv na webu, a pritom ima

snagu WPF modela. Aplikacije kreirane u Silverlight-u se mogu pokretati unutar preglednika

ili bez veze s internetom sa start izbornika i radne površine [Granbäck, 2009].

Kako bi spremio podatke lokalno, Silverlight koristi izoliranu pohranu (eng. Isolated Storage).

Izolirana pohrana predstavlja nešto poput virtualnog datotečnog sustava, koji raspodjeljuje 1

MB po aplikaciji. Taj način rada služi kao alternativa korištenju kolačića (eng. cookies) imajući

prednost boljih performansi i priručne memorije (eng. caching) većih skupa podataka.

Nedostatak je da administrator sustava može onemogućiti toj datoteci pravo pisanja i podaci

unutar te datoteke nisu u potpunosti sigurni ako nisu kriptirani. Kreiranje Silverlight aplikacije

unutar Visual Studia 2012 prikazano je na slici 7 [Granbäck, 2009].

16

Slika 7: Microsoft Silverlight

U Silverlightu video predstavlja običan element kojeg se može dodatno animirati, razvlačiti,

namještati prozirnost i stavljati druge elemente iznad njega. Video element se ni po čemu ne

tretira kao zaseban element sučelja. Razvojna platforma Silverlight aplikacije za izradu sučelja

koristi XAML (eng. Extensible Application Markup Language), XML i neki od .NET jezika za

programiranje [Višnar, 2008].

Silverlight predstavlja Microsoftov odgovor na dominaciju Adobe Flash alata na tržištu koje se

usredotočuje na multimedijske stranice. Izrađene aplikacije se mogu pokrenuti unutar

preglednika na kojem je prethodno instaliran Silverlight poseban dodatak (eng. plug-in). Postoji

mogućnost instalacije tih aplikacija u obliku desktop aplikacije pomoću sigurnosnog okvira

(eng. sandbox). Kako podržava više programskih jezika stvara određenu prednost na području

bogatih internet aplikacija, Silverlight nudi mogućnost implementacije u C#, (Iron)Pyhton-u,

(Iron)Ruby-u, VB.NET-u ili bilo kojem drugom .NET podržanom jeziku. Problem Silverlight-

a je nepopularnost kod razvojnih programera (eng. developer) bogatih internet aplikacija, kao i

Microsoft-ova odluka o usmjeravanju alata prema Windows Phone razvoju čime njegova

upotreba za web opada. Silverlight ujedno nije dostupan na Android i iOS uređajima koji su

vladajući na mobilnom tržištu [Kromkamp, 2010; Tucker, 2011].

17

3.5. HTML5

HTML5 predstavlja najnoviji standardni jezik za označavanje web stranica. Prijašnja

inačica HTML-a, 4.01, je izašla davne 1999. godine, te se je od tada internet drastično

promijenio. Potreban je HTML5 kako bi zadovoljio potrebe korisnika i programera. Novi

standard bi trebao u potpunosti zamijeniti HTML4, XHTML i HTML DOM inačicu 2. Posebno

je razvijen da može prikazivati bogati sadržaj bez potrebe za dodatnim posebnim dodacima

(eng. plug-ins). Trenutna inačica obuhvaća sve - od animacije do grafike, audio i filmove, a i

koristi se za kreiranje složenih web aplikacija. HMTL5 je sam po sebi iskoristiv na svim

platformama, bez obzira da li se koristi računalo, tablet, pametni telefon ili pametni TV

[W3Schools, 2014].

Međusobnom suradnjom između World Wide Web Consortium-a (W3C) i Web Hypertext

Technology Working Group (WHATWG) je nastao HTML5. WHATWG je do 2006. godine

razvijao web forme i aplikacije, a W3C XHTML 2.0. Zajedno su odlučili stvoriti novu HTML

inačicu i odredili su neka pravila za HTML5 [W3Schools, 2014]:

nove značajke će se temeljiti na HTML, CSS, COM i JavaScript-u

potreba za vanjskim posebnim dodacima (poput Flash-a) se treba smanjiti

rukovanje pogreškama treba biti jednostavnije i lakše

skriptiranje se mora zamijeniti jezikom za označavanje (eng. markup language)

HTML5 bi trebao biti neovisan o uređaju na kojem se izvršava

razvojni proces bi trebao biti vidljiv javnosti

Cilj stvaranja HTML-a 5 je razvoj standarda koji može pokretati cijele aplikaciju unutar web

preglednika. HTML5 predstavlja širok skup novih tehnologija. Uključuje nove HTML

elemente, geolokacijska programska sučelja, povuci i ispusti (eng. drag-and-drop) programska

sučelja, obrasce 2.0, podršku za video i audio, skalabilnu vektorsku grafiku i CANVAS grafiku,

CSS3, dvodimenzionalne i trodimenzionalne animacije i JavaScript 2.0 [Matthew, 2013].

Neke od novih zanimljivih značajki u HTML5 su pojava <canvas> elementa za 2D crtanje, te

<video> i <audio> elemenata za reprodukciju medija. Pojavljuje se podrška za lokalnu pohranu,

novi elementi specifični za dijelove sadržaja poput <article>, <footer>, <header>, <nav> i

<section> i nove kontrole poput kalendara, datuma, vremena, e-maila i pretraživanja. Svi

poznati preglednici (Chrome, Firefox, Internet Explorer, Safari i Opera) podržavaju nove

HTML5 elemente i programska sučelja za izradu programa (eng. Application Programming

18

Interface –API). Preglednici nastavljaju dodavati nove HTML5 značajke unutar vlastitih

najnovijih inačica [W3Schools, 2014].

HTML5 razvija mogućnost ostvarivanja načina rada bez potrebe za povezanosti s mrežom (eng.

offline) koji pomoću lokalne pohrane omogućuje korisniku posjećivanje web stranice. Cilj same

HTML5 tehnologije je udaljiti web od tehnologija poput okvira za bogate internet aplikacije,

koji se temelje na posebnim dodacima (eng. plug-in) [Granbäck, 2009].

Činilo se kako novi HTML5 standard neće zaživjeti, no dogodilo se nešto zanimljivo. Firefox

je počeo usvajati elemente HTML-a što je brzo slijedio i Apple-ov Safari web preglednik. Tri

konačna događaja su istaknula važnost HTML-a 5. Google je predstavio web preglednik

Chrome s HTML-om 5 kao glavnom značajkom. W3C je zaustavio rad na XHTML-u 2.0 i

preuzeo HTML5 kao novi web standard. Web je postao mobilan i stvorio potrebu za novim

standardom koji će pokretati aplikacije unutar različitih mobilnih operativnih sustava [Matthew,

2013].

HTML5 je podržan od strane sljedećih web preglednika [Matthew, 2013]:

Firefox 3.0+ (svi operativni sustavi)

Safari 3.0+ (Mac OS X i iOS 1.0+ operativni sustavi)

Google Chrome (svi operativni sustavi)

Opera 9.5+ (svi operativni sustavi)

Microsoft Internet Explorer 9+

19

4. Prototip

Kako bi se pojam bogate internet aplikacije bolje predočio i shvatio, uz teorijski dio

završnog rada kreiran je i prototip bogate internet aplikacije. Prototip će služiti kao ogledni

primjer na kojem će se prikazati neke ključne karakteristike bogatih internet aplikacija.

Tehnologije korištene unutar prototipa će biti objašnjenje i prikazat će se kako se pomoću njih

postigao željeni rezultat. Ideja prototipa kao bogate internet aplikacije je spoj klasičnih

informativnih web stranica poput T-portala i web aplikacija za razonodu, konkretnije web igara,

kao što vidljivo na slici 8.

Slika 8: T-portal i ArmorGames (Izvor: http://www.tportal.hr/, http://armorgames.com/)

Prototip se usredotočuje na kreiranje članaka, diskusiju među korisnicima i dijeljenje novosti

vezanih uz specifičan program za izradu računalnih igara Unity. Vlastitu igru, kreiranu u Unity-

u, moguće je prenijeti na web aplikaciju i učinit ju dostupnom drugim korisnicima. Igre koje se

nalaze na aplikaciji drugi korisnici mogu isprobati, ocijeniti ili ostaviti komentar vezan uz tu

igru. Naziv te bogate internet aplikacije je intuitivan i jednostavan, bogata internet aplikacija se

naziva UnityPlay. Sve novosti prikazane unutar samog prototipa već postoje, te su preuzete sa

službene stranice Unity-a. Preuzete novosti prototip čine stvarnijim kao da već postoji

implementiran unutar nekog poslužitelja i kao da je dostupan široj javnosti. Također, određene

igre su preuzete kao gotovi primjeri. Implementirane igre na UnityPlay-u služe za testiranje

funkcionalnosti prototipa vezanih uz igre, osvrta na igre, ocjena i slično.

20

4.1. Unity

Unity predstavlja računalni program za razvijanje igara (eng. game engine) u 2D ili 3D

okruženju. Igre se izrađuju pomoću gotovih modela, raznih skripti i određenih scena (nivoa)

koje omogućuju željene funkcionalnosti igre. Modeliranje, stvaranje animacija i kreiranje scena

se izvršava unutar samog Unity alata. Sučelje alata nalikuje na tipične alate za 3D modeliranje,

dok se pisanje koda izvršava unutar dodatnog alata zvanog MonoDevelop koji podržava C#,

Javascript, UnityScript i Boo jezik. Primjer izrade igre vidljiv je na slici 9 [Unity, 2014].

Slika 9: Izrada igre u Unity-u

Igru kreiranu uz pomoć bilo kojeg navedenog jezika moguće je razviti (eng. build and deploy)

da bude dostupna kao desktop, web ili mobilna inačica igre. Početni kod ostaje isti neovisno o

vrsti platforme za koju se igra razvija. Unity razvojem može stvoriti web inačicu igre koja je u

potpunosti jednaka desktop inačici te igre. Navedene karakteristike su ujedno i jedne od glavnih

karakteristika bogatih internet aplikacija. Kreirana igra je također i u neku ruku bogata internet

aplikacija sama za sebe.

21

4.2. UnityPlay

UnityPlay predstavlja prototip bogate internet aplikacije završnog rada. Prototip omogućuje

pregledavanje članaka i uključivanje u samu diskusiju o novostima vezanim uz Unity. Također,

moguće je kreirati vlastiti članak, koji je otvoren za komentiranje i interakciju posjetitelja. Na

početnoj stranici prikazani su najnoviji članci te su dodatno izdvojeni najposjećeniji i

najkomentiraniji članci. Omogućuje registraciju, prijavu i sadrži poveznicu na glavnu stranicu

za odabir igara za igranje. Prototip je u potpunosti ispunjen bogatim medijskim sadržajem

(slikama, poveznicama, video zapisima itd.). Početna stranica UnityPlay-a prikazana je na slici

10.

Slika 10: Početna stranica - UnityPlay

22

Kako postoji registracija i prijava, postoje i određena ograničenja i ovlasti ovisno o vrsti skupine

korisnika kojoj posjetitelj pripada. Ukoliko je posjetitelj neregistrirani korisnik, on može vidjeti

sav sadržaj UnityPlay-a i isprobati sve igre, no ne može sudjelovati u diskusijama i ocjenjivanju

igara. Neregistrirani korisnik ne može ni sudjelovati u kreiranju novih članaka ni novih igara.

Ako se korisnik registrira dobiva mogućnost uključivanja u sve diskusije, ali kreiranje novih

članaka i igara se odvija samo od strane korisnika koji imaju najviše ovlasti (administratora).

Registracija sadrži određene uvjete ispunjavanja kako bi se korisnik uspješno registrirao, tipa

validacija korisničkog e-maila i ispunjavanje reCaptcha-e. Administrator ima sve spomenute

ovlasti, te može ukloniti nekorektne komentare, članke i igre. Administrator može zabraniti

pristup određenim korisnicima ukoliko su prekršili određeni bonton ponašanja prilikom

korištenja bogate internet aplikacije. Prijava i registracija vidljive su na slici 11.

Slika 11: Prijava i registracija - UnityPlay

Sljedeći bitan dio prototipa je stranica koja prikazuje igre sa njihovim nazivima, ocjenama i

ikonama, na način da prikazuje zasebno najbolje ocjenjene igre i zasebno najnovije igre. Broj

prikazanih igara je ograničen, ali zato je omogućena poveznica za prijelaz na pretraživanje svih

mogućih igara na UnityPlay-u. Prilikom pretraživanja igara omogućeno je sortiranje i

pretraživanje po bilo kojoj javno poznatoj informaciji o igri. Odabirom željene igre vrši se

preusmjeravanje na vlastitu stranicu igre, koja omogućuje igranje igre, ocjenjivanje i

diskutiranje. Moguće je i preuzeti igru unutar .rar datoteke, kako bi bilo omogućeno pokretanje

igre ne koristeći UnityPlay niti internet vezu, već kao samostalnu desktop aplikaciju (slika 12).

23

Slika 12: Odabir igre – UnityPlay

4.3. Tehnologije

Za izradu prototipa bogate internet aplikacije UnityPlay korišteno je više tehnologija:

HTML5, CSS, PHP, JavaScript (jQuery i AJAX), bootstrap (bootswatch), Unity i Netbeans.

Cijeli prototip je kreiran unutar Netbeans-a, alata koji predstavlja integrirano razvojno

okruženje za rad s Java-om, PHP-om, C/C++ i HTML-om 5. Gotova aplikacija unutar

Netbeans-a prikazana je na slici 13.

Slika 13: Netbeans - UnityPlay

24

4.3.1. HTML5

HTML kao tehnologija se unutar prototipa koristi kao jezik za označavanje (eng.

markup language), sav pisani HTML se drži HTML5 standarda, oznaka i elemenata. U

UnityPlay-u HTML5 se koristi pri izradi strukture svake stranice bogate internet aplikacije

(slika 14). HTML označava određene dijelove i elemente koji će biti prikazani i dodjeljuje im

klase i atribute preko kojih će se pomoću CSS-a, JavaScript-a, jQuery-a i AJAX-a dobiti

konačan rezultat.

Slika 14: HTML5 – UnityPlay

HTML5, pomoću bootstrap-a i tehnologija poput JavaScript-a i AJAX-a, može elementima za

označavanje dodati određene funkcionalnosti koje stvaraju interaktivnost s posjetiteljem

prilikom prikaza sadržaja, kao što je prikazano na slici 15.

Slika 15: Carousel element – UnityPlay

25

4.3.2. CSS

CSS se koristi za kreiranje opisa izgleda i oblikovanje korištenih HTML elemenata.

Pomoću CSS-a HTML-u se dodaju razna vizualna svojstva prilagođavajući izgled aplikacije

koji se prikazuje krajnjem korisniku. Izgled CSS koda je prikazan na slici 16.

Slika 16: CSS – UnityPlay

Većina oblikovanja elemenata UnityPlay-a potječe od predefiniranog predloška (eng. template)

bootstrap teme „Yeti“. Sveukupni i konačni dizajn je prilagođen CSS skriptom kako bi se

stvorio osjećaj suvremene i oku ugodne aplikacije. CSS može poslužiti i za interakciju s

korisnikom, što se može vidjeti na slici 17. Lijevi dio slike prikazuje uobičajeni tekst, a desni

dio slike izgled tog teksta kada se iznad njega nalazi miš gdje isti dobiva dodatna vizualna

svojstva.

Slika 17: CSS „hover“ efekt – UnityPlay

26

4.3.3. PHP

PHP je skriptni jezik, koji se koristi za komunikaciju s poslužiteljem. Kod prototipa se

koristi samo za dohvaćanje potrebnih informacija iz baze podataka, ukoliko je potrebna

određena validacija na strani poslužitelja ili komunikacija s poslužiteljem. Koristi se i pri pozivu

AJAX funkcija unutar jQuery-a, za pozadinsku komunikaciju s poslužiteljem. Kako su bogate

internet aplikacije usredotočene na arhitekturu „debelog“ klijenta, tako se i u UnityPlay-u veći

dio programske funkcionalnosti nalazi na strani klijenta. Aktivacija korisničkog računa izvršena

pomoću PHP-a vidljiva je na slici 18.

Slika 18: Skripta za aktivaciju korisničkog računa – UnityPlay

4.3.4. JavaScript, jQuery i AJAX

JavaScript, jQuery i AJAX, jezici koji se koristi na strani klijenta, su poslužili za

kreiranje specifičnih svojstva prototipa. Korištenjem tih tehnologija dobiva se veća mogućnost

i sloboda prilikom izrade aplikacije u usporedbi s upotrebom samo standardne programske

logike na strani poslužitelja. Iste se koriste pri implementaciji bootstrap-a i bootswatch teme

kod kojih uvelike povećavaju dinamičnost, interaktivnost i reagiranje stranice na korisnika.

Unutar prototipa su korištene u svrhu pisanja skripti za prijavu, komentiranje, odjavu, pisanje

članka, upravljanje člancima, igrama, korisnicima itd. Također, ova tehnologija je korištena

kod stvaranja skripte za kreiranje UnityWebPlayera, odnosno skripte za prikaz i omogućavanja

igranje Unity igra.

27

Pretraživanje i upravljanje korisnicima je funkcionalnost koja je omogućena samo

administratoru. Cilj je bio stvoriti mogućnost lakog pretraživanja svih korisnika, davanja

pojedinom korisniku zabranu pristupa aplikaciji ili ukloniti već postojeću zabranu. Ujedno,

potrebno je i prikazati sve detalje vezane uz pojedine korisnike, a svaka funkcionalnost se

izvodi bez osvježavanja stranice. Komunikacija s poslužiteljem se odvija u pozadini pomoću

AJAX funkcije unutar jQuery-a. Izgled funkcionalnosti za krajnjeg korisnika vidljiv je na slici

19.

Slika 19: Upravljanje korisnicima – UnityPlay

Dobivene informacije preko PHP skripte od strane poslužitelja se ispisuju unutar HTML oznaka

za tablicu. Dodavanjem jQuery posebnog dodatka (eng. plug-in) DataTables, ostvaruje se

mogućnost sortiranja, pretraživanja i ograničavanja prikaza korisnika. Time se dobiva

preglednost, jednostavnost i brzina u izvođenju željene korisnikove akcije. Svakom korisniku

je pridružen gumb s klasom „status_changer“. Ovisno o statusu gumba definiran je izgled

gumba i informacije koje prosljeđuje AJAX-u, odnosno PHP skripti koja komunicira s

poslužiteljem. Rezultat je mogućnost mijenjanja statusa korisnika bez osvježavanja stranice i

istovremenog prikazivanja promjene. Izvršena promjena statusa omogućuje njegovu ponovnu

promjenu preko istog gumba novog adekvatnog izgleda i nove funkcionalnosti dobivene nakon

prvobitne promjene. Administrator može na ovaj način mijenjati statuse korisnika u

„nedogled“, a pritom AJAX i PHP izvode funkcionalnost u pozadini. Implementacija unutar

koda prikazana je na slici 20.

28

Slika 20: Upravljanje korisnicima (jQuery i AJAX) – UnityPlay

Na vrlo sličan način je izvedeno i upravljanje svim člancima, igrama i njihovim komentarima

unutar prototipa. Razlika je jedino u mogućnosti brisanja pojedinih članaka, igara i pripadnih

komentara. Prije brisanja se pojavljuje poruka potvrde brisanja, da ne dođe do nenamjernog

brisanja određenog članka, igre i svih komentara korisnika vezanih uz pojedini članak ili igru.

Drugačiji način upotrebe jQuery-a korišten je kod skripte pisanja novih članaka. Prilikom

upisivanja opisa članka i njegovog sadržaja jQuery prebrojava upisane znakove i u realnom

vremenu ih prikazuje korisniku. Ta informacija se na ovaj način prikazuje prilikom pisanja

članka. Postoje određena ograničenja, maksimalne veličine sadržaja članaka, kako ne bi

neograničen prostor bio zloupotrebljavan (slika 21).

29

Slika 21: Pisanje članka – UnityPlay

Prikazana funkcionalnost se izvodi na sljedeći način: na svaki od „input“ elemenata se dodaje

događaj (eng. event) „keyup“, dodani događaj svakim pritiskom tipke (točnije otpuštanjem)

prebrojava broj znakova unutar tog elementa. Zatim se u određeni pomoćni ili generirani

element putem jQuery-a upisuje povratna poruka o trenutnom broju znakova određenog

elementa. Kod je vidljiv na slici 22.

Slika 22: Pisanje članka (jQuery) – UnityPlay

30

5. Zaključak

Karakteristike bogatih internet aplikacija izvrsno se uklapaju u smjer razvoja

tehnologija, weba i povezanosti čovječanstva. Idealne su za upotrebu kod mobilnog weba kako

sve više postoji potreba za upotrebom desktop aplikacija bilo gdje i bilo kada. Iako postoje

određeni nedostaci korištenja bogatih internet aplikacija, neophodnost bogatih internet

aplikacija čini te nedostatke zanemarivim. Razvoj i kretanje tehnologija u stvaranju potpuno

mobilnog svijeta će s vremenom riješiti probleme kojima se suočavamo pri korištenju istih.

Bogate internet aplikacije su danas svugdje zastupljene, no zanimljivo je da ćete rjeđe naići na

sam pojam nego na aplikaciju. Glavni razlog tome je kako je sam web napredovao tako su se i

očekivanja za pojam klasične web stranice povećavala. Korisnici i programeri zapravo uzdižu

standardnu web stranicu na nivo prijašnje bogate internet aplikacije i na taj način takav naziv

postaje suvišan. Gotovo je nemoguće pronaći web stranicu koja nalikuje početnim statičnim

web stranicama. Također, dolazi i do promjena generacija tehnologija koje se koriste za izradu

bogatih internet aplikacija. Starije i neuspjele tehnologije se napuštaju, nove redefiniraju pristup

bogatim internet aplikacijama i način njihove izrade.

Pojam bogatih internet aplikacija bi mogao postat naziv koji će se kroz daljnji razvoj weba

ponovno pojavljivati sa sličnom idejom i značenjem, te opet polako nestajati kada ta novost

postane standard na webu. Bogate internet aplikacije su predstavljale nešto novo i inovativno

nakon predstavljanja Web-a 2.0 i kroz daljnji razvoj postaju standard na webu. Ako su današnje

web stranice bogate internet aplikacije, sutrašnje će biti „bogatije od bogatih“, bazirane na

drugačijim novitetima.

Neovisno o konkretizaciji pojma, uvijek postoji opasnost zanosa kod strane razvojnog

programera bogatih internet aplikacija. Potrebno je veliku pozornost obratiti na upotrebljivost

bogate internet aplikacije kako ona ne bi postala prenatrpana medijskim sadržajem i raznim

funkcionalnostima, a da pritom ne uspijeva služiti prvobitno namijenjenoj svrsi.

Izrađeni prototip je spreman za implementaciju na poslužitelju i uz određene nadogradnje može

postati potpuno samostalna bogata internet aplikacija. Ovisno o načinu daljnjeg razvoja

prototipa, aplikacija se može usredotočiti više na aspekt objavljivanja i diskusiju članaka ili

funkcionalnosti povezanih s igrama. Postoje određeni nedostaci prototipa koji ne utječu izravno

na njegovu cjelokupnu funkcionalnost, već bi njihov ispravak predstavljao novosti koje bi

poboljšale i olakšale način njegovog korištenja. Primjeri takvih nedostatka su: nemogućnost

31

pisanja članaka van predefiniranog predloška ograničavajući određenu slobodu pisanja i

nemogućnost uvođenja vlastitog izgleda strukture novog članka, ne postoji integracija prijave

preko društvenih mreža itd. Daljnju nadogradnju prototipa moguće je izvršiti ispravljanjem

postojećih nedostataka kao i uvođenjem novih funkcionalnosti (sortiranje i grupiranje igara po

žanru, mogućnost stvaranja komentara s medijskim sadržajem, proširenje prototipa da pokreće

igre koje nisu kreirane u Unity alatu itd.).

32

6. Literatura

[1] Allaire J. (2002), Macromedia Flash MX – A next-generation rich client. Preuzeto 29.

srpnja 2014. s http://download.macromedia.com/pub/flash/whitepapers/richclient.pdf

[2] Apache Flex (2014), About Apache Flex. Pristupano 12. kolovoza 2014. na

http://flex.apache.org/about-whatis.html

[3] Bootstrap (2014), Designed for everyone, everywhere. Pristupano 11. rujna 2014. na

http://getbootstrap.com/

[4] Bootswatch (2014), Yeti. Pristupano 11. rujna 2014. na http://bootswatch.com/yeti/

[5] Busch M., Koch N. (2009), Rich Internet Applications. Preuzeto 18. kolovoza 2014. na

http://uwe.pst.ifi.lmu.de/publications/maewa_rias_report.pdf

[6] CLEAR (2010), Rich Internet Applications. Pristupano 20. srpnja 2014. na

http://clear.msu.edu/teaching/online/ria/#RIAs

[7] CLEAR (2010), QuizBreak!. Pristupano 20. srpnja 2014. na

http://clear.msu.edu/quizbreak/play.php?board=2807-1311166778

[8] Domenig M. (2005), Rich Internet Applications and AJAX – Selecting the best product.

Pristupano 21. kolovoza 2014. na http://www.javalobby.org/articles/ajax-ria-overview/

[9] Granbäck C. – D. (2009), Rich Internet Applications (RIAs). Preuzeto 1. kolovoza 2014. s

http://publications.lib.chalmers.se/records/fulltext/116839.pdf

[10] Hilwa A., Perry R. (2010), Adobe Flash in the Enterprise: The Case for More Usable

Software. Preuzeto 20. srpnja 2014. s http://www.adobe.com/enterprise/pdf/idc.pdf

[11] IBM (2014), Creating Rich Internet Applications (RIA). Pristupano 29. srpnja 2014. na

http://pic.dhe.ibm.com/infocenter/rsawshlp/v7r5m0/index.jsp?topic=%2Fcom.ibm.etools.

webtoolscore.doc%2Ftopics%2Ftcrtria.html

[12] jQuery (2014), jQuery write less, do more. Pristupano 21. kolovoza 2014. na

http://jquery.com/

[13] Kromkamp B. (2010), A comparison of Rich Internet Applications. Pristupano 21. srpnja

2014. na http://www.quesucede.com/page/show/id/ria-frameworks

[14] Matthew D. (2013), HTML5: Designing Rich Internet Applications. Burlington: Focal

Press

33

[15] Microsoft (2014), About Silverlight. Pristupano 21. srpnja 2014. na

http://www.microsoft.com/silverlight/what-is-silverlight/

[16] Microsoft (2014), Designing Rich Internet Applications. Pristupano 19. kolovoza 2014. na

http://msdn.microsoft.com/en-us/library/ee658083.aspx

[17] The Server Labs S.L (2008), Rich Internet Applications – Framework evaluation. Preuzeto

18. srpnja 2014. s http://www.theserverlabs.com/brochures/RIA_Frameworks-TSL-

evaluation.pdf

[18] Tucker D. (2011), Enterprise RIA Development: Comparing Flex/Flash, Silverlight,

HTML5/CSS3, JQuery/JavaScript. Pristupano 21. srpnja 2014. na

http://www.codeproject.com/Articles/199022/Enterprise-RIA-Development-Comparing-

Flex-Flash-Si

[19] Ullman C., Dykes L. (2007), What is Ajax?. Pristupano 20. srpnja 2014. na

http://www.wrox.com/WileyCDA/Section/What-is-Ajax-.id-303217.html

[20] Unity (2014), Learn with Unity. Pristupano 11. rujna 2014. na http://unity3d.com/learn

[21] Višnar K. (2008), Silverlight tehnologija. Pristupano 21. srpnja 2014. na

http://www.infotrend.hr/clanak/2008/5/silverlight-tehnologija,12,271.html

[22] W3Schools (2014), AJAX Introduction. Pristupano 29. srpnja 2014. na

http://www.w3schools.com/ajax/ajax_intro.asp

[23] W3Schools (2014), HTML5 Introduction. Pristupano 22. srpnja 2014. na

http://www.w3schools.com/html/html5_intro.asp

[24] W3Schools (2014), jQuery Introduction. Pristupano 21. kolovoza 2014. na

http://www.w3schools.com/jQuery/jquery_intro.asp

[25] Whatley S. (2007), Rich Internet Applications – A Background. Pristupano 29. srpnja 2014.

na http://www.simonwhatley.co.uk/rich-internet-applications-a-background