0% found this document useful (0 votes)
77 views45 pages

DR - Flash Data Computing

This document is Nenad Šćekić's diploma thesis titled "Flash Data Computing" submitted to the Faculty of Informatics and Management in Belgrade, Serbia in 2008. The thesis analyzes centralized processing power through existing technologies and tests existing technologies for solving tasks that require large computing resources. It is mentored by Dr. Angelina Njeguš and covers topics including grid computing, the Globus Toolkit, Flash virtual machine, using Flash as a grid, and further development.

Uploaded by

Haris Dizdarevic
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
77 views45 pages

DR - Flash Data Computing

This document is Nenad Šćekić's diploma thesis titled "Flash Data Computing" submitted to the Faculty of Informatics and Management in Belgrade, Serbia in 2008. The thesis analyzes centralized processing power through existing technologies and tests existing technologies for solving tasks that require large computing resources. It is mentored by Dr. Angelina Njeguš and covers topics including grid computing, the Globus Toolkit, Flash virtual machine, using Flash as a grid, and further development.

Uploaded by

Haris Dizdarevic
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 45

FAKULTET ZA INFORMATIKU I MENADMENT

Nenad eki

FLASH DATA COMPUTING


- Diplomski rad -

Beograd, 2008.

FAKULTET ZA INFORMATIKU I MENADMENT

FLASH DATA COMPUTING


- Diplomski rad -

Mentor:
Dr doc Angelina Njegu

Student:
Nenad eki
Br. indeksa:
184/2004

Beograd, 2008.

FAKULTET ZA INFORMATIKU I MENADMENT


UNIVERZITET SINGIDUNUM
FAKULTET ZA INFORMATIKU I MENADMENT
Beograd, Danijelova 32

Kandidat: Nenad eki


Broj indeksa: 184/2004
Smer: Projektovanje i programiranje

Tema: Flash Data Computing


Zadatak: Analiza centralizacije procesorske moi kroz postojeu tehnologije, kao i
testiranja postojeih tehnologija za reavanje zadatka koji podrazumevaju veliku koliinu
raunarskih resursa.
.

MENTOR
________________________
Dr doc Angelina Njegu

DEKAN
________________________
Prof. dr Milan Milosavljevi

Sadraj
1.1

Computing................................................................................................................. - 1 -

1.2

Zato grid computing ? .............................................................................................. - 1 -

1.2.1

1.3

Time-sharing kao usluga. ........................................................................................... - 3 -

1.4

Computer Utiliti ......................................................................................................... - 3 -

1.5

Util computing se u praksi.......................................................................................... - 3 -

1.6

Analiza....................................................................................................................... - 4 -

1.6.1

Analiza super raunara: ...................................................................................... - 5 -

1.6.2

Analiza super grid raunara: ............................................................................... - 5 -

1.7

Super raunar u kom pravcu ii ............................................................................... - 5 -

1.8

Implementacije GRID-a .............................................................................................. - 6 -

Globus Toolkit ................................................................................................................... - 7 2.1

Kako se to odnosi na gt4(Globus toolkit 4) ................................................................- 10 -

2.1.1

Kratak opis Veb servisa .....................................................................................- 11 -

2.1.2

Primer upotrebe veb servisa. ............................................................................- 11 -

2.1.3

Veb servis arhitektura .......................................................................................- 13 -

2.1.4

Veb servis Serverska strana ............................................................................- 14 -

2.1.5

WSRF: The Web Services Resource Framework .................................................- 14 -

2.1.6

WSRF: Sve je u stanjima ....................................................................................- 15 -

2.1.7

Pristup resursima sa stanjem ............................................................................- 16 -

2.2

The Globus Toolkit 4 .................................................................................................- 20 -

2.2.1
3

Time sharing ...................................................................................................... - 1 -

Arhitektura .......................................................................................................- 20 -

Flash VM ..........................................................................................................................- 21 3.1

Istorijat Flash-a .........................................................................................................- 21 -

3.2

Primer programiranja u ActionScript-u......................................................................- 24 -

3.3

Tipovi podataka ........................................................................................................- 25 -

3.3.1

ActionScript 2 ...................................................................................................- 25 -

3.3.2

ActionScript 3 ...................................................................................................- 26 -

3.4

Rasporostranjenost Flasha. .......................................................................................- 28 -

3.4.1

Dostupnost flash vm .........................................................................................- 28 -

3.4.2

Instalirane verzije flash vm ................................................................................- 29 -

3.4.3
4

Flash kao grid ...................................................................................................................- 30 4.1

Statistika korienja interneta ...........................................................................- 29 -

1. Sluajevi korienja DataGrid sistema ...................................................................- 30 -

4.1.1

1.1 Priprema Grid kontrole................................................................................- 30 -

4.1.2

1.2 Inicijalizacija ................................................................................................- 31 -

4.1.3

1.3 Izvrenje......................................................................................................- 32 -

4.2

2. Konceptualni model ..............................................................................................- 34 -

4.3

3. Sekvencijalni dijagrami..........................................................................................- 35 -

4.3.1

3.1 Priprema Grid kontrole................................................................................- 35 -

4.3.2

3.2 Inicijalizacija ................................................................................................- 35 -

4.3.3

3.3 Izvrenje......................................................................................................- 36 -

Dalji razvoj .......................................................................................................................- 37 -

Nenad eki

1.1

Flash Data Computing

Computing

Computing,Computation je u optem smislu bilo koji tip obrade informacija.


Ukljuujui proces u kome se ljudski proces razmiljanja prevodi-pretvara u raunanje u
uem smislu.
Utility Computing je skup raunarskih resursa(procesora, skladinog prostora, itd)
koji je dostupan svima na korienje kao to je dostupna voda, struja ili telefonska mrea.
Pod pojmom computing grid podrazumeva se kreiranje mree raunarskih resursa koji bi
bili dostupni svima na korienje. Kreiranje ovog sistema je jo uvek paradigma, postoje
razni oblici u implementaciji koji postiu odredjene rezultate, ali svi oni su daleko od
konanog cilja kreiranje kompletnog grid computinga. Sam standard za grida jo uvek nije
formiran, iako sve implementacije se u nekom obliku oslanjaju na ve postojee standarde.

1.2

Zato grid computing ?

Ideja o postojanju raunara kao sredstva koje bi ubrzalo, kao i omoguilo bilo kakvu
obradu podatak je odavno poznata. Vreme koje je potrebno za reavanje bilo kog problema
je presudan faktor. Raunar koji bi omoguili kratko vreme reavanja nekog odreenog
problema je najee preskup. Pojava super raunara prestavlja jedno reenje.za probleme
koji sadre veliku koliinu podataka. Napomenuo bih da odnos cene usled brzog razvoja
raunara je u konstantnom padu kao i poveavanje brzine rada. Moe se smatrati da je
znaajan pad cene raunrara prilikom pojave nove generacije. Naravno da ovo pravilo je
jo vie izraeno kada se uzmu u obzir super raunar. Podatak koji najvie iznenauje je da
sama cena jednog super raunara posle par godina postaje zanemariva jer trokovi
odravanja takvih sistema prevazilaze cenu kupovine. Neretko razvijene zemlje doniraju
stariju generaciju svojih super raunara drugim zemljama jer odravanje takvih sistema
postaje apsolutno neopravdano. Takoer razvojem tehnologije sve ee se trae reenja na
komplikovanije probleme i obradu vee koliine podataka. Ne napreduju samo raunari
ve koliina i obim problema koje je potrebno reavati.
1.2.1

Time sharing

Poetkom razvoja raunarske tehnologije cena jednog raunara je bila izuzetno


visoka da bi mogao da je priuti prosean korisnik. 60tih kada je poela ekspanzija
raunara a cena jednog raunara je bila isuvie prevelika da bi bila u vlasnitvu jedne
osobe. Ako bi smo izuzeli upotrebu u vojsci gde su unapred bili konstruisati raunari za
obavljanje zadataka specijalne namene. Cena jednog raunara je bila previsoka a njegovo
korienje je bilo posveeno reavanju jednog problema. Zapravo korienje raunara je
bilo vrlo ne efikasno jer je opsluivao samo jednog korisnika.
Usled velike ne iskorienosti raunara primenjen je koncept time-sharinga
(Deljeno vreme). Na jedan raunar bi se prijavio odreen broj terminala svi oni bi ekali
svoj red na izvravanje svog zadatka.
Pretpostavimo da se na jedan raunar prijavi deset terminala. Glavni raunar, main-frame,
bi redom proveravao da li neki terminal ima neki zadatak i izvravao ga. Koncept je imao
smisla i praktinu primenu jer je vreme ekanja procesora na konkretan zadatak bilo
znatno veliko. Raunar bi ekao na unos korisnika, kao i na spore periferije trake, diskove,
tampae itd. Daljim razvojem brzine procesora kao i padom cena, raunari su postali
-1-

Nenad eki

Flash Data Computing

znatno pristupani. Tako da je korisnik bio u mogunosti da sebi priuti raunar solidnih
karakteristika i svu njegovu procesorsku mo koja bi bila na raspolaganju samo njemu. to
je u odreenom momentu predstavljalo vei napredak jer u primeni jednog glavnog
raunara i velikom broja terminala ponueno vreme jednom terminalu i korisniku bi bilo
znatno manje nego kada bi sam korisnik posedova sam svoj raunar.
Promenom ideje o centralizaciji korisnici su osetili boljitak. Ali pojavila se
novo polje ne iskorienosti. Svi raunari u vlasnitvu korisnika su takoer imali
veliko vreme ne iskorienosti. to je znatno povealo ne iskorienost ukupne
raunarske moi svih pojedinanih raunara.
Tokom 70setih pojavio se znatan broj firmi koji su pokuali da kreiraju super
raunar sastavljen od veeg broja raunara i nudili im svoje resurse klijentima.
Korisnicima ovih usluga bi se naplaivalo vreme pozivne linije u vremenu, koliina
skladinog prostora u kilobajtima kao i vreme raunanja odreenog zadatka u sekundama.
Iako je nain naplate bio dobro osmiljen nije se pokazao previe isplativim jer je brzina
razvoja raunarske tehnologije inilo da ovi projekti budu apsolutno ne isplativi. Skrenuo
bih panju da u sluaju korienja u vojne i dravne svrhe kada novac naravno nije
problem, bili su kreirani razni mehanizmi povezivanja jer potreba za izraunavanjem
velike koliine podataka prestavljala nunost. Naravno bez obzira na cenu i efikasnost
takvih reenja nakon par godina usled brzog razvoja tehnologija oni bi postajali neisplativo
preskupi za odravanje i naravno njihove karakterisitike bi postale zastarele.
Poto je informatika u jeku svog napredovanja bez obzira na uloenu koliinu novca, svaki
sistem bi bio osudjen na neefikasni odnos novca/karakteristika i vrlo brzo bi postao ili
zastareo ili preskup za korienje.
Napomenjem da 60tih godina prolog veka nije bio prisutan koncept
linih(personalnih) raunara. Uglavnom raunari su bili u vlasnitvu vojske, raznih
laboratorija ili znatno manjem broju Univerzitetima. Vremenom uoen je obrazac
korienja raunara. Najme raunar bi veinu svog vremena ekao na unos korisnika ili
pak sam procesor bi ekao odgovor neke od sporih spoljnih komponenti kao to su razne
trake, diskovi, tampai itd. Time-sharing se nametnuo kao efikasniji nain iskoristiti
procesorsko vreme. Time-sharing je omoguio deljenje vremena jednog raunara na vie
korisnika. Na takav nain da bi raunar redom ispitivao da li je neki korisnik poslao neto
na obradu. Takoer dok bi sam raunar ekao na svoje spore ureaje mogao je da ponudi
svoje resurse drugom korisniku.
Kasnih 60tih 70 desetih, kompijuterski terminali su bili multipleksirani u velike
institucionalne main frame raunare. Koji su sekvencionalno proveravali da li terminal ima
neki zahtev za obradu. Kasnije su interkonekcije podravalale interapte, a neke od njih su
podravale paralelno prenos podataka kao na primer IEEE 488 standard koj dozvolja da 15
ureaja dele jednu 8-bitnu paralelnu vezu. Tako da su vremenom na Univerzitma koristili
terminali znatno potseali na korienje dananjih linih raunara.
Poveavanjem procesorske moi ranih 80, koncept time-sharinga je zapostavljen jer
je cena procesora drastino smanjila tako da je raunar postao pristupaniji veini
korisnika. Prednost linog raunara je oigledna jer bi se sva procesorksa mo (naravno
znatno slabija u odnosu na jedan time shering raunar) bila predana jednom korisniku
njegovim potrebama. Sve do pojave interneta time-sharing je retko korien i moe se rei
da je bio zaboravljen kao koncept. Treba napomenuti da je internet ponovo vratio koncept
time-sharinga. Skupi korporativne farme servera koji kotaju milione mogu da opsluuju
hiljade klijenata i da svi dele zajedniki resurs. Kao i ranije serveri funkcioniu u
periodninom trendu nakon dugog perioda ne aktivnost dolazi period poveane aktivnosti
prilikom koje nijedan od korisnika ne primeuje zakanjenje. Naravno u sluaju prevelikog

-2-

Nenad eki

Flash Data Computing

broja posetilaca kao i zahteva server moe postati previe zauzet.

1.3 Time-sharing kao usluga.


Ranih 60tih nekolicina kompanija je ponudila time-sharing uslugu kao servis za
poslovanje. Korisnici be se povezivali telefonskom linijom dial-up-om. Terminali su
podravali od 30 do 120 karaktera u sekundi. Korisnicima su bili ponueni terminali, razni
alati, prostorno skladitenje, tampanje itd. Korisnicima bi se naplaivalo vreme zauzea
linije, procesorsko vreme u sekundama, i po kilobajtu skladitenog prostora. IBM 360,
PDP-10 I SDS 940 su najei sistemi koji su bili korieni za tu svrhu.

1.4 Computer Utiliti


70tih se dosta vremena ulagalo u centralizaciju raunarskih resursa. Kreiranje raznih
usluga koje bi omoguile iskoriavanje resursa kao opte dobro. Meutim taj koncept se
nije mogao odrati usled prevelike brzine tehnolokog razvoja i cena odravanja takvih
sistema. Trite za util computing nije postojalo. Sve do pomeranja ka klijent-server
centralizaciji i kreiranjem server farmi.
Internet je ponovo kreirao tiste za util computing. Util computing je oblik
virtualizacije u kome koliina prostora i procesorske moi moe da nadmaiti jedan timesharing raunar ili super raunar. Vie servera u pozadini grupie svoju mo i kreira
zajednike resurse. U praksi to mogao da bude dedukovani klaster specialno kreiran za
odreenu namenu kojoj bi bio iznajmljen ili predstavljao odreenu verziju super raunara
za namenski zadatak. Tehnika pokretanja jednog zadatka na vie raunara je poznata kao
distribuirano raunanje. A pod termin Grid computing se podrazumeva odreen oblik
distribuiranog raunanja. Gde su inioci (nodes) geografsko udaljeni ili u vie razliitih
domena. Da bi obezbedio util computing kompanija moe da ponudi svoje resurse javnosti
na prodaju.
Jedan od najeih modela je volunteer computing aplikacije je centralni server koji
daje zadatke iniocima(nodovima). Klijenti bi na dobrovoljnoj bazi instalirali potreban
softver koji bi omoguio kreiranje grid-a.
Drugi model bi bila firma koja bi prodavala svoje resurse kada oni nebi bili
korieni.

1.5 Util computing se u praksi


Najee se koristi za specijalne namene. Ovakav sistem ima znatno niu poetnu
cenu ili kroz volunteer computing moe biti dostupan bez ikakve nadoknade. Zapravo
raunarski resursi su najee iznajmljeni. Korisnici koji imaju potrebu za velim
raunarskim resursima ili im se takve potrebe javljaju u odreenim intervalima
korienjem util computinga mogu da izbegnu probleme koji bi nastali prilikom fizikog
nabavljanja i sastavljanja velikog broja raunara.
Sajt berze bi bio adekvatan primer. Zato e mo razmotriti problem koj bi se javljao.
Nakon otvaranja berze u 10 asaova posetioci sajta su u najveoj meri brokeri koji gledaju
trenutno stanje akcija. Sve do zatvaranja berze u 14 asova koliina poseta se nebi znatno
-3-

Nenad eki

Flash Data Computing

menjala i konstantno bi imala poprilino isto optereenje, tako da u tom vremenskom


intervalu moemo smatratir da broj posetilaca sajtu prestavlja normativnu veliinu. Nakon
zatvaranja berze. Serveri beze izvravaju odredjene proraune kao i javno objavljivanje
vrednosti akcija na kraju tog radnog dana berze. Boj posetilaca se naglo poveava nakon
zatvaranja berze. Znatno vei broj posetilaca eli da vidi kako su njihove akcije prole tog
dana kao i brokeri koji bi sumirali taj dan. Medjutim to je najkritilniji momenat, jer to je
momenat kada serveri berze trebaju da u to kraem vremenskom intervalu generiu
statistiku analizu i zatvore i provere sve transakcije.
Prilikom gradjenja infrastrukture mogu se opredeliti za kupovinu velikog broja raunara
koji bi omoguili nesmetan rad prilikom najvee posete. Cena I trokovi bi bili ogromi a
potreba klijenta

1.6

Analiza

Postoje dva naina kreiranja super-raunara:

Posebno konstruisanje raunara na harverskom nivou.


Kreiranje super raunara softverskim putem. Udruivanje vie razliitih raunara u jednu
logiku celinu.

Glavna razlika izmedju jednog super raunara i grid super raunara se sagleda u tome da
jedan super raunar ima jedno napajanje jednu grafiku kartu dok grid super raunar je
sastavljen od mnotvo kompletnih raunara.
Posmatrano sa aspekta ideje kreiranja super raunara od velikog broja raunara. Grid
computing jo uvek nije doiveo svoju pravu ekspanziju. Standard za Grid komputing jo
uvek nije kreiran iako se konkretne implementacije koriste odreenim standardima
prilikom kreiranja. Nedostaci postojeih reenja su:

-4-

Nenad eki

Flash Data Computing

1.6.1
Analiza super raunara:
Super raunar
Prednost

Brzina
Cena

Pouzdanost
Trokovi nabavke
Trokovi odravanja
Vek trajanja
Potronja elektrine energije

Heterogenost hardvera
1.6.2

Mana

Analiza super grid raunara:

Super raunar
Brzina
Cena
Pouzdanost
Trokovi nabavke
Trokovi odravanja
Vek trajanja
Potronja elektrine energije
Heterogenost hardvera

Prednost

Mana

Glavni nedostaci grid super raunara su komplikovana instalacija, prevelika


heterogenost. Kao i opta ne obavetenost krajnjih korisnika koji bi trebalo da samo
inicjativno postanu volonteri. Naravno u sluaju kada se unutar neke organizacije kreira
grid i dalje ostaje problem komplikovane instalacije. Mali broj nodova
Glavne prednosti su da bilo koj hardver bi mogao da bude jedan od potencijalnih inioca
koji bi bili ukljueni u grid. Naravno usled prevelike heterogenosti to moe da prestavlja i
nedostatak. Zato se ili kreira namenski operativni sistem ili koristi Java kao platformo
nezavisna reenje.

1.7

Super raunar u kom pravcu ii

Pod pretpostavkom da postoji oblik udruivanja procesorskih moi unutar jednog


super raunara ili pak softversko kreiranje super raunara korienjem grid-a glavni
probleme kao i ne doslednost su da dosadanja reenja ne koriste potpunu mo svih
raunara.
Ideja koja se namee je kreiranje jedinstvene platforme koj bi omoguila
korienje svih ne iskorienih procesorkih ciklusa ili ukupne procesorske moi.
Naravno u praksi to postaje paradigma zbog velike razliisto poevi od samih
raunara, operativnih sistema i naina njihove povezanosti ili ne povezanosti.
Paradigma je skupiti ukupnu procesorsku mo i nju ponuditi kao opte dobro.

-5-

Nenad eki

Flash Data Computing

Bez obzira na koje se reenje koristi. Jedan super raunar uvek po svojim
performansama bri od bilo kog linog raunara kao i od dosadanjih implementacija bilo
kog grid-a. Razlog je sasvim jednostavan. Ni jedna zajednica grida nije udruila veliki broj
svojih inioca(nodova). Prosene cifre o kojima govorimo su reda veliine od 100-10 000
to ini manje od promila ukupne procesorske moi personalnih raunara.
U budunosti sve ree emo viati super raunare kao jedan brz procesora.
Poslednjih godina ve uveliko se uvode raunari sa vie procesora. Mehanizmi kao
softverska reenja na nivou operativnog sistema ili pak softvera koji e spajati vie
procesora u jedan samo su prvi korak ka pravoj implementaciji grid-a.
Jedno je sigurno, budunost donosi operativne sisteme koji e umeti da koriste vie
jezgara, kao i alate programerima da olaka i omogui i popularizuje paralelno
programiranje. Tek nakon toga e postojati dobra platforma i alati koji e omoguiti da se
kreira i standardizuje grid. Alati kao i operativni sistemi koji podravaju paralelno
programiranje odavno postoje ali su daleko ne popularni. Upravo iz razloga to se
izvravaju ili na posebnim hardverima ili u retko korienim operativnim sistemima.
Mehanizmi, modeli, alati za korienje distribuiranog raunanja i paralelnog
programiranja su ve osmiljeni, ali najvei problem su ne kompitabilnost sa personalnim
raunarima. Zahtevaju posebne operativne sisteme, posebne programske jezike(alate).
Da li postoji neki nain i da li postoji neki mehanizam koji bi omoguio pokretanje i
izvravanje zadatka na udaljenim raunarima, a da pritom ne zahteva posebnu aktivnost
korisnika, je pitanje koje se namee. Sa druge strane garantuje da daj zadatak nije pokrenut
od strane neke zlonamernog korisnika koja bi mogla ili ka iskoristi tu mo u svoju svrhu ili
pak da sazna privatne informacije vlasnika raunara.

1.8

Implementacije GRID-a

Microsoft nudi svoju verziju grid hpc-a. koji zahteva da su raunari pokrenuti
korienjem Windows operativnog sistema kao i ureivanje infrastrukture kao to je
instaliranje Aktivnog direktorijuma, Domena kontrolera. Domen kontroler i sama zahtevi
ne predstavljaju problem u lokalnom korienju ali je nemogue iskoristiti microsoftovo
reenje za globalnu primenu. Napominjem da ovaj problem nije samo u Microsoft-ovoj
implementaciji ve prestavlja globalni nedostatak.
Da bi se kreirao grid neophodno je kreirati virtualnu mainu koja bi bila
dostupna na svim operativnim sistemima. kao i u organizacijama kao i na desktop
raunarima. Na ono nata bih skrenu panju a o emu e se vie govoriri je korienje
FLASH VM koja je dostupna na preko 99% raunara u svetu. to prestavlja naj
prisutniju aplikaciju-virtualnu mainu u svetu.
Ne treba zaboraviti GPL reenja kao to su Beowulf ili Rock i Globus koji emo
obraditi kako radi.
Bez obzira na tip ili verziju mana svih dosadanjih sistema je komplikovano
korienje, zahteva pristanak korisinka, znanje za kreiranje i instalaciju. Naravno teoretski
virtualizacija moe da pomogne u praktinom delu razmetanja nodov. Naime, ono to bi
virtualizacija praktino olakala bi bilo prebacivanje virtualnih maina unutar grida ili

-6-

Nenad eki

Flash Data Computing

prestavljala mehanizam za daljinsko prebacivenja virtualnih grid maina na udaljene


raunare, gde bi sama virtulna maina predstavljala platformu kao virtualni host-platforma.
Ono to ovaj koncept ini loim je zahtevanje posebne aktivnosti od korisnika da pristane
da pokrene virtualnu mainu. Naravno ova ideja samo olakava pristupanost i portabilnost
ali opet ne nudi optost grida.
Pretpostavljam da emo u budunosti videti dva naina distribucije grid:

Grid e biti dostupan kao servis koji e biti instaliran u samom operativnom sistemu i
zahtevae od korisnika da pristane na njegovo korienje. Ne treba da nas zaudi
postojanje verzija windows ili osx operativnih sistema koji bi bili ponueni korisniku
apsolutno besplatno, a za uzvrat bi automacki nakon podizanju operativnog sistema
pokretali servis za grid.

Sam Grid-nod e biti instaliran na virtualnoj maini. to bi od korisnika zahtevalo


preuzimanje jednog fajla koji kojim bi pokretali u virtualnoj maini.

Globus Toolkit

Globus toolkit je skup alata koji omoguavaju raunaru da postane deo grid-a. O sam
nije grid niti je konani standard. Ve kao i ostala reenja prestavlja odreen oblik
implementacije paradigme grida.
Osnovni koncepti Globus toolkita. u OGSA, WSRF i GT4
OGSA

WSRF

zahteva

specificira
Stateful
Web
proiruje
Web
Service

Firura 1 Odnos izmeu OGSA, WSRF i Web Servisa.

Grid aplikacija se obino sastoji od vie razliitih komponenti. Na primer tipina grid
aplikacija bi imala:

VO Management Service: Koja bi nodove i korisnike smetala u neku od virtualnih


organizacija.

Resource Discovery and Management Service (Mehanizam za otkrivanje resursa I


upravljanje servisima): Da bi aplikacija koja se izvrava na gridu mogla da otkrije resurse
koji odgovaraju njenim potrebama, i upravljala njenim potrebama..

-7-

Nenad eki

Flash Data Computing

Job Management Service (Servis za upravljanje poslovima) : Da bi korisnici mogli da


poalju zadatak na grid.

I gomilu drugih servisa koji bi se brinuli o sigurnosti , upravljanju podacima, idt..

Svi ovi servisi meusobno komuniciraju. Na primer, Job Management Service moe da
konsultuje Resource Discovery Service da bi pronaao ve izraunat resurs koji bi
odgovarao zahtevima zadatog posla. Sa velikim brojem servisa i estom komunikacijom
postoji velika verovatnoa stvaranja haosa. Pitanje koje se postavlja je ta bi se dogodilo
kada bi svaki proizvoa radio sopstvenu implementaciju svog sistema za upravljanje
poslovima na totalno drugaiji nain. Kada bi svako prijavljivao ne samo drugaiju
funkcionalnost ve i drugaije interfejse. Praktino bi bilo nemogue omoguiti rad svih
delova da rade zajedno.
Reenje koje se namee je standardizacija tj definisanje osnovnih interfejsa za svaki
servis. Na primer, Uzevi na primer Svetsku globalnu mreu. Jedan od razloga zato je
Internet tako popularan je i to se zasniva na standardima zasnovanim na (HTML, HTTP,
itd) dogovorenih od strane svih glavnih uesnika (Microsoft, Netscape, itd). U sluaju da
je svaka kompanija reila da uradi svoju implementaciji. Svako ko bi eleo da koristi
Mikrosoftovo reenje morao bi da oekuje da je tvorac sajta napravio posebnu verziju za
taj pretraiva. Meutim usled dogovorenog standarda apsolutno je nebitno koji alat je
korien za kreiranje internet stranice kao to je nebitno sa kojim internet pretraivaem
gledate sadraj. Dakle html je dogovoren standard kao zajedniki jezik za sve
pretraivale i sajtove. Standardizacija je jedini oblik koji omoguava iru upotrebu.
Open Grid Services Architecture (OGSA), razvijen od strane Global Grid Foruma,
tei ka definisanju standarda otvorene arhitekture za grid zasnovana reenja. Cilj OGSA je
da standardizuje sve servise na jednu grid aplikaciju (job management services, resource
management services, security services, itd.) garantujui niz standardnih interfejsa za
servise ovog tipa. Standard je jo uvek u izradi. Ipak OGSA ve ima spisak zahteva koji
moraju biti ispunjeni za standardne interfejse. Drugim reima OGSA je otila samo daleko
u definisanju najvanijih servisa koji su neophodni za kreiranje i pokretanje grid aplikacije.
Dakle OGSA zahteva stateful servise.
Ipak , Potreba za posrednikom pri kreiranju i prebacivanju zadataka ukazuje da
mora da postoji neki standardi nain komunikacije. Na primer kada bi OGSA (na primer)
definisao interfejs za slanje posla JobSubmitInterface i metodu submitJob. Mora da postoji
neki standardni nain za pokretanje metode ako bi smo eleli da arhitektura dosegne
industriski nivo. Tako da su mogli da budu odabrani razni naini korienjem(CORBA,
RMI, ili ak tradicionalni RPCa). Iz razloga koji e biti objanjeni kasnije odabran je veb
servis kao nosea tehnologija.
Veb servis arhitektura je bila definitivno najbolje reenje izuzev injenice da je bilo
neophodno kreirati takav veb servis koji bi bio stateful. Naalost ne postoji ni jedan
standardan nain da se to postigne pa je neto moralo posebno da se uradi na tom problem.
Web Services Resource Framework
Ceo Web Services Resource Framework (WSRF), je specifikacija od strane OASISa.
WSRF specificira kako kreirati veb servis da bude stateful, naravno dodajui mnotvo
korisnih stvari. Odnos izmedju OGSA i WSRFa je jednostavan WSRF nudi stateful servise

-8-

Nenad eki

Flash Data Computing

koje OGSA treba ili OGSA je arhitektura, WSRF je infrastruktura na kojoj je


arhitektura napravljena.

-9-

Nenad eki

2.1

Flash Data Computing

Kako se to odnosi na gt4(Globus toolkit 4)

Firura 2 Odnos izmeu OGSA, GT4, WSRF i Web Servisa u [3]

Globus toolkit je skup alata, razvijenih od strane Globus alijanse, koju moemo da
koristimo u programiranju grid-zasnovanih aplikacija. Sam toolkit sadri par servisa vieg
nivoa koji se mogu koristiti u kreiranju grid aplikacije. Zapravo ovi servisi nude ispunjenje
svih apstraktnih zahteva koje je propisala OGSA. Drugim reima Globu tulkit prestavlja
set alata koji pruaju otkrivanje, traenje resursa, infrastrukturu za slanje poslova,
bezbednost idt. Iako GGF jo uvek radi na specifikaciji standarda, ne moe se rei da je
GT4 ispunio sve zahteve ili ih pak je ispunjava. Veina ovih servisa je implementirano na
gornjem sloju WSRF-a. Sam toolkit implementira neke servise koji nisu na WSRF-u i oni
se nazivaju "non-WS components". Za sada sam GT4 implementira sve standarde WSRFa. To je vrlo vano jer sve ostalo bi trebalo da bude izvravano na viim slojevima. Tako
da dokle god ne bude bio kreirana potpuna "Grid Nirvana", WSRF je samo ne ophodan
korak. Vrlo je teko tvrditi u kom pravcu e dalje ii razvoj, jedno je sigurno WSRF je
samo prvi korak. Treba napomenuti da WSRF nije jedina implementacija postoje i druge
kao to je WSRF.NET.

- 10 -

Nenad eki

Flash Data Computing

Firura 3 Odnos izmedju OGSA, WSRF i GT4

2.1.1

Kratak opis Veb servisa

Web servisi su jo jedan oblik tehnologije distribuiranog raunanja. Oni nam


dozvoljavaju da kreiramo klijent/server aplikacije. Iako veb servisi se oslanjaju na
postojeu tehnologiji kao HTTP oni se ne odnose na internet pretraivae i HTML. Naj
generalnija podela bi glasila veb (HTML) je sajt za ljude a veb servis (SOAP) za
softver.
2.1.2

Primer upotrebe veb servisa.

Klijentski program koj bi hteo da pristupi bilo kojoj informaciji prvo mora da
kontaktira veb servis, i postavi mu upit o vremenkoj prognozi. Server vraa vremensku
prognozu kao odgovor kroz veb servis.

Veb servisi nude odrei prednosti nad ostalim tehnologijama (RMI, CORBA, EJBs.
itd) tako to je platformski nezavistan jezik, poto koristi standardni XML jezik. Ovo znai
da svaki klijent pisan u c++ moe da koristi veb servis u javi koja je pokrenuta na linux-u.
Mane veb servisa su:

Brzina prenosa podataka je znatno manja sobzirom da se ne prenose binarni podaci. Ono
to se dobije na portabilnosti izgubi se na efikasnosti.

- 11 -

Nenad eki

Flash Data Computing

Sami veb servisi ne dozvoljavaju prevlik broj opcija kao to na primer CORBA poseduje
(perzistentnost, transport itd. Naravno u skorije vreme veb servis specifikacija i
implementacija kao na primer WSRF uvodi neke od potrebnih funkcionalnosti.
Prednosti u brzini rada COBRA ili EJB-a su znaajne ali raunati u svojoj komunikaciji
moraju da poseduju prethodno meusobno znanje. Tako da primena ovakve komunikacije
preko interneta ne bi postigla znaajniji uspeh jer zahteva odreene pripreme. Sa druge
strane korienjem veb servisa klijent ne mora da zna kako e izgledati sama komunikacija
dok je ne zatrai. Dakle u internoj komunikaciji veb servisi nisu idealno reenje, dok u
komunikaciji preko interneta oni predstavljaju praktinu neophodnost.

Firura 4 Tipican rad jednog veb servisa

1. Kao to je ranije napomenuto mi nemamo pretstavu o veb servisu koji emo pozvati. Tako da
u prvom koraku otkrivamo veb servis koji odgovara naim potrebama. Recimo da elimo da
komuniciramo sa servisom koji bi nam dao informaciju o vremenskoj prognozi u Srbiji. To
e mo postii kontaktiranje servisa za otkrivanje(discovery service) koji je i sam veb servis.
2. Servis za otkivanje nam vraa odgovor, sa obavetenjem koji serveri mogu da nam obezbede
eljene servise.
3. Sada kada znamo lokaciju, mi ne znamo sta je sve potrebno da bi smo ga iskoristili. Naravno
da znamo da je u pitanju servis za vremensku prognozu, ali nemamo pretstavu kako se zove
metoda i kog tipa bi bili parametri. Zato emo kontaktirati veb servis koji e ga
opisati(WSDL).
4. Veb servis odgovara jezikom nazvanim WSDL.

- 12 -

Nenad eki

Flash Data Computing

5. Sada konano znamo gde je lociran i kako treba pozvati servis. Sam poziv je izven
korienjem jezika SOAP. eljemo SOAP zahtev veb servisu da elimo vremensku prognozu
za odredjen grad.
Veb servis e odgovoriti SOAP porukom i poslati nam vremensku prognozu ili poslati
greku ukoliko je SOAP zahtev bio ne pravilan.

6.

2.1.3

Veb servis arhitektura

Firura 5 Veb servis arhitektura.

Service Processes: Prvi deo arhitekture generalo ukljuuje vie od jednog veb servisa. Na
primer otkrivanje pripada jednom delu arhitekture, poto nam omoguava da lociramo
odredjeni servis od kolekcije veb servisa.

Service Description: Jedna od najzanimljivijih zadataka je da oni su samo opisni, Svaki


servi koj ste lozirati moete od njega zatraiti da opie samog sebe i ukae koje operacije
on podrava i kako ga moete pozvati. Ovaj mehanizam je obezbedjen jezikom za
opisivanje veb servisa(Web Services Description Language - WSDL).

Service Invocation: Pozivanje servisa generalno bilo koj oblik distribuiranog servisa kao
to su COBRA ili EJB (Enterprise Java Bean) ukljuuje slanje poruka izmedju klijenta i
servera i kako bi server treba da formatira svoj odgovor. U teoriji moemo da isporistimo
bilo koj nain za pozivanje veb servisa na primer XML-RPC ili XML. Ipak SOAP je
najei izbor prilikom kreiranja web-servisa.

Transport: Na posetku sve ove poruke moraju na neki nain putovati izmedju servera i
klijenta najei izbor za komunikaciju je HTTP (HyperText Transfer Protocol), isti
protokol koj se koristi za tradicionalni veb. U teoriji mi moemo da koristimo bilo koj ali u
praksi i zbog rasprostranjenosti on je izbor.

Vei deo veb servis arhitekture je standardizovan od strane wwwc iste ogranizacije koja je
odgovorna za XML, HTML, CSS, itd.

- 13 -

Nenad eki

2.1.4

Flash Data Computing

Veb servis Serverska strana

Firura 6 Serverska strana

Web service: Veb servis je deo softvera koj prua niz operacija. U sluaju JAVA
programiranja veb servis bi bio java klasa a operacije bi bile implementirane kao JAVA
metode. meutim sam veb servis ne zna nita o SOAP zahtevima i odgovorima i zato nam
treba.

SOAP maina: koja je deo softvera koji zna kako da postupa sa SOAP zahtevima i
odgovorima.

Application server: Softvera koji omoguava prostor kome e pristupati veina klijenata.
SOAP maina radi kao aplikacija na aplikativnom serveru.

Veina aplikacionih servera nudi HTTP funkcionalnost. Tako da smo u mogunosti da


koristimo servis samom instalacijom SOAP maine. Naravno ukoliko to nije sluaj uvek
moemo da... koristimo

HTTP Server: Najee se naziva veb server (Apache, IIS).

2.1.5

WSRF: The Web Services Resource Framework

Veb servisi su tehnologija koja omoguava kreiranje grid zasnovanih reenja. Po


svojoj rasprostranjenosti po internetu i lakoi pristupa oni su naj pristupaniji metod za
distribuciju informacija. Meutim po svojoj specifikaciji oni poseduju dosta ogranienja
koja predstavljaju veliki problem za kreiranje grid aplikacija. Pojavom WSRF-a koji
poboljava odreene aspekte veb servisa i omoguava ih da budu prikladniji za grid
aplikacije.

- 14 -

Nenad eki

2.1.6

Flash Data Computing

WSRF: Sve je u stanjima

Obian veb servis je bez stanja. To zapravo znai da sam ne moe da zapamti
informaciju, ili zadri stanje izmeu dva poziva. Na primer recimo da elimo da saberemo
dva broja akumulativno. Prvo emo poslati broj pet. Veb servis e vratiti 5. U sledeem
pozivu aljemo broj 6 i oekivan rezultat bi bio 11 ali poto veb servis nema pretstavu o
prethodnom pozivu on nam vraa 6. Isto se i deava i sa treim pozivom prilikom slanja
broja 7. Ono to bi trebalo da bude ukupan akumulativni rezultat 18, od strane veb servisa
dobijamo 7.

Firura 7 Pristup resursima bez stanja

Postoji veliki broj sluajeva i aplikacija u kojima servis ne mora da zna stanja. U sluaju
korienja u gridu stanja su neophodna. Tako da idejno na veb servis bi zadravao
stanja i radio na sl nain.

- 15 -

Nenad eki

Flash Data Computing

Firura 8 Pristup resursima sa stanjem

2.1.7

Pristup resursima sa stanjem

Dodajui veb servisu mogunost da uva informacije o stanjima je zapravo


kompleksan problem. Reenja za ovaj problem moe da se zaobie tako to bi se veb servis
i informacije o stanjima uvala odvojeno.
Umesto to bi smo stanja stavili u sam servis(ime bi smo dobili stateful servis, to
je zapravo loa stvar.) mi e mo uvati u odvojenom entitetu nazvano resurs. Koj e
zapravo uvati informacije o stanju. Svaki resurs e imati jedinstveni klju, tako da kada
god poelimo informaciju o stanju mi e mo rei veb servisu da koristi odreeni resurs.
Na primer, uzmimo akululativni primer. Kao to je u narednoj figuri, na veb servis
moe da ima tri resursa(A,B,C) koje moemo da biramo. Ukoliko imamo intider koj
elimo da pamtimo izmedju poziva i poziva, klijent jednostavno treba da specificira ta eli
i metod za eljeni resurs.

- 16 -

Nenad eki

Flash Data Computing

U figuri moemo da vidimo da klijent eli da uradi operaciju sabiranja sa resursom


C. Kada veb servis primi zahtev za dodavanje, postarae se da prikupi resurs C tako da
sabiranje moe da se desi. Sam resurs moe da bude snimljen u memoriju, neki eksterni
prostor, ili ak bazu. Takoer treba primetiti kako sam veb servis moe da pristupi ka vie
od jednog resursa.
Naravno, resursi mogu da budu razliitih oblika i veliina. Sam resur moe da sadi
vie razliitih vrednosti( ne samo intider kao to je pokazano u primeru). Na resur moe
da sadri i fajlove.

Postavlja se logiko pitanje kako e klijent znati koj resur da iskoristi. URI moe da bude
dovoljan da izvri adresiranje veb servisa, ali kako da se specificira sam resurs. Naravno
- 17 -

Nenad eki

Flash Data Computing

postoji vie naina i principa kako se ovo moe reiti, ali recimo da je poeljan nain
korienjem WS-Addressing koji daje raznovrstan nain adresiranja veb servisa(kada se
uporedi sa klasinim URI).
Spajanje veb servisa sa resursom naziva se WS-Resource. WS-Resource je
zapravo krajnja putanja reference u WS-adresnom argonu.

WSRF specification
Web Services Resources Framework koji se sastoji od pet razliitih specifikacija. Sve one
se na neki nain odnose jedna prema drugoj u cilju prianja upravljanja samim WSResources
WS-ResourceProperties
Sam resurs moe i nemora da sadi tip resursa. Na primer u prethodnoj figuri svaki resur
ima tri svojstva naziv fajla, veliinu ako i opis. WS-ResourceProperties opisuje svojstva
resursa kao i pristup i oni su opisani u WSDL interfejsu.
WS-ResourceLifetime
Resur nema trivijalan ivotni vek. Drugim reima, oni nisu statini entiteti kada se veb
server pokrene i nestanu nakon gaenja. Resur moe biti kreiran i uniten u bilo kom
momentu. WS-ResourceLifetime prua neko od osnovnih mehanizama za upravljenjem
ivotnim ciklusom resursa.
WS-ServiceGroup

- 18 -

Nenad eki

Flash Data Computing

Prua osnovne mehanizme grupisanja resursa u grupu. Grupisanje resursa nam olaava i
poveava funkcionalnost jer moemo grupisati resurse i ponuditi ih kao jedan servis servis
grupu.
WS-BaseFaults
Standardan nain prijavljivanja greke prilikom WS-Service poziva.
WS-Notification
Omoguava klijentima mehanizam javljanja. Klijent mora da se prijavi(subscrib) na
odreeno deavanje.WS-Notification e obavestiti sve klijente o promeni resursa prilikom
promene.
WS-Addressing
Kao to je ranije pomenuto WS-Addressing specifikacija prua nam mehanizam
adresiranja do odgovarajueg resursa. Za razliku od URI WS-Addressing je kolekcija Web
servicea i resursi.

- 19 -

Nenad eki

2.2

Flash Data Computing

The Globus Toolkit 4

Posmatrano sa ovog aspekta WSRF deluje poprili;no jednostavan i jsano definisan ali
ko god da je programirao grid zasnovane aplikacije zna da sve ovo nije dovoljno za
kreiranje grid aplikacije. WSRF je samo mali deo ali vaan GT4 toolkita. WSRF je
infrastruktura na kojoj je ceo toolkit zasnovan. Sam toolkit ukljuuje dosta komponenti
koje se mogu koristiti u programiranju grid aplikacija.
2.2.1

Arhitektura

Globus toolkit se sastoji od dosta komponenti i sve komponente su podeljene u pet


kategorija: Sigurnost, Upravljanje podacima, Upravljanjem izvravanjem, informacionim
servisom i standardnim runtime.
Iako sam Globus se fokusira na Web servise sam toolkit ukljuuje i komponente koje nisu
zasnovane na veb servisima. GridFTP komponente koje su prvo bile kreira zbog svoje
nunosti a kasnije proglaene GGF specifikacijom.

- 20 -

Nenad eki

Flash Data Computing

Figure 1 GT4 architecture

Flash VM

Zadatak ovog diplomskog rada je pronai mehanizam za kreiranje grida


korienjem bilo kog mehaniza tj. alata koji je prisutan na svim raunarima ili pak u
to veoj meri raunara.

3.1

Istorijat Flash-a

Adobe Flash (ranije poznat kao Shockwave Flash ili Macromedia Flash) nastao je 1996 I
postao vrlo popularan alat za kreiranje animiranog I interaktivnog sadraja za veb stranice. Flash se
najee koristi za kreiranje animacija, reklamnih banerima i raznih veb komponenti kaje
omoguavaju reprodukiju video sadraja, a od skora, za kreiranje internet bogatih aplikacija (RIA).
Flash moe da manipulie vektorskom i rasterskom grafikom i podrava obostrani striming audia i
videa. Podrava skrip jezik pod nazivom ActionScript.
Fajlovi su u SWF formatu, tradicionalno nazvani ShockWave Flash filmovi i mogu biti objekti
neke web stranice ili puteni u samostalnom Flash playeru. Mogue je sjediniti Flash film i
samostalni plejer u Projekat. samo izvrujui Flash film.
Program Flash je osmislio i zapoeo da razvija Jonathan Gay-a. 1993 - Jonathan Gay, Charlie
Jackson, and Michelle Welsh osnovali su kompaniju i nazvali je FutureWave Software i kreirali
svoju prvi proizvod, SmartSketch. Aplikacija za crtanje SmartSketch je osmiljena da olaka
kreiranje crtea na internetu sa idejom kao da se koriti papir. U poetku nije nudio nita novo na
tritu pa kao takvo reenje i nije bio zapaen. Ubrzo se prepoznla potreba vektorke veb animacije.
1995 SmartSketch-u je dodata slika-po-slika animacija(frame-by-frame) i tada je dobio naziv
FutureSplash Animator za MAC i PC raunare. Nakon ega je proizvod ponudjen Adobe-u i
korien je od strane Microsofta za rane radove na internetu (MSN). Decembra 1996. Macromedia
je kupila program i nazvala ga Flash koristei rei Future i Splash od FutureWave naziva.
Nakon kupovine Macromedia je ubrzala razvoj .
FutureSplash Animator (April,1996): prva verzija.
Macromedia Flash 1 (Novembar,1996): Macromedia je re-brandirala naziv FutureSplash Animatora.
Macromedia Flash 2 (Jun 1997): Nova verzija, podrka za Biblioteku objekata(Grafikih simbola u
projektu)
Macromedia Flash 3 (Maj 1998): Nova verzija, Movie clip, JavaScript plug-in integracija
Macromedia Flash 4 (Jun 1999): Interne promenljive, napredniji ActionScript, striming MP3.
Macromedia Flash 5 (Avgust 2000): ActionScript 1.0(Zasnovan na ECMAScript), XML podrka
HTML foramtiranje dinamikog teksta.
Macromedia Flash MX (Mart 2002): Video kodeci, Unicode, UI komponente, kopresija, AS api za
crtanje
Macromedia Flash Professional 2004(Septembar 2003): ActionScript 2, Objektno orjentisano
programiranje za Flash, timeline Efekti.

- 21 -

Nenad eki

Flash Data Computing

Macromedia Flash 8(Septembar 2005): Brizina, kvalitet i dostupnost na mobilnim uredjaijam(Flash


Lite). Nove mogunosti su
Adobe Flash CS3(April 2007): Flash je otkupljen od strane kompanije Adobe, ActionScript 3 i
bolja integracija sa Adobe-ovim paketima PhotoShop-om, Ilustratorom. Bolja podrka za vektorsku
grafiku.
Adobe Flash CS4 Poslednja verzija Flash-a nazvanog Diesel I netreba ga meati sa Flash
Playerom 10 Astro, dodata je podrka za inferznu kinematiku(bones), osnovnu 3D ojektnu
manipulaciju, objektnu animaciju, poboljan engine za tekst I dalje proirivanje ActionScripta 3.
Dalji razvoj
Adobe labs (ranije nazvan Macromedia Labs) nudi za preuzimanje: Flash 9, Flex 3 I
ActionScript 9. Novo u razvoju Flash-a je poveavanje upotrebne vrednosti na prezantacionom
sloju za mobilne ureaje handheld devices.
Od novembra 2007 Adobe aktivno razvija Adobe AIR projekat koje je platfomski nezavisan I
omoguava programerima da iskoriste svoje znanje u kreiranju (Flash, Flex, HTML, AJAX)
desktop aplikacija.Planirana je Podrka za DRM u Flash-u. kao I podrku za putanje internet
oglasa u potpunosti pre nego to bi bio reprodukovan neki video zapis.
Od Maja 2008 najavljen je Open Screen Project koj bi jo poveao korisniki oseaj.

Programski jezik
U svojim poecima Flash je bio primarno namenjen animaciji i imao je ogroman ogranienja za
programiranje. Od uvedjenja ECMAScripa dakle iste sintakse kao i JavaScripte ali u drugom
frameworku omoguio je osnovnu iteraktivnost ka kreiranju i korienju dinamikih(dugme, teksta,
padajuih menija) koji su do sada vidjeni u velikom broju aplikacija.
Flash MX 2004 uvodi ActioScript 2 koj itekako olakava kreiranje Flash Aplikacija.
Flash 9 uvodi ActionScript 3 je Objektno orjentisan programski jezik koji omoguava vie kontrole
kao i ponovnu upotrebu koda. Na posletku Flash biblioteke omoguavaju korienje XML-a za
prikaz podataka u pretraivaima. Tehnologija je poznatija kao Asynchronous Flash and XML,
poput AJAX-a. Potreba za Asynchronous Flash-om i XML je izazvala potrebu za formalniji
pristupu i tehnologija koja to omoguava naziva se Adobe Flex, koj koristi Flash runtime za
kreiranje internet Aplikacija.

Koncepti zatite
Uzevi u obzir da se SWF fajlovi izvravaju na kljentskoj strani mogui metodi zatite su
korienjem SWF obstruktora (obfuscators).

ActionScript

ActionScript je jezik zasnovan na ECMAScripti. Primarno se koristi za razvoj websajtova i


softvera koristei Adobe Flash Player platformu(u oliku SWF-a embedovanog u veb
stranicu). Takoer se moe sresti u aplikacija za rad sa bazom(Alfa Five), i u osnovnoj
robotici (Make Controller Kit).

- 22 -

Nenad eki

Flash Data Computing

ActionScrip je u poetku zamiljen da olaka i omogui rad sa 2D vektorskom grafikom.


Trenutne nadogranje jezika u verziji 3 su omoguile razvoj igara kao i bogatih internet
aplikacija sa podrkom za video i audio striming.

ActionScript jezik - Biografija

Paradigma: Multi-paradigm
Kreiran:1998
Kreirao: Gary Grossman
Razvija:Macromedia(sada Adobe System)
Poslednja verzija: 3.0/27 Jun 2006
Nain programiranja:Strickt, Static, Safe
Glavna implementacija: Adobe Flash, Adobe Flex
Glavni uticaj: JavaScript, Java
Operativni sistem: Nezavistan
Ekstenzija: AS
Internet media tip: application/actionscript

- 23 -

Nenad eki

3.2

Flash Data Computing

Primer programiranja u ActionScript-u

AS2
var greet:TextField = new TextField();
greet.text = "Hello World";

this.addChild(greet);

AS3 Flash IDE


package com.example
{
import flash.text.TextField;
import flash.display.Sprite;
public class Greeter extends Sprite
{
public function Greeter()
{
var txtHello:TextField = new TextField();
txtHello.text = "Hello World";
addChild(txtHello);
}
}
}

AS3 Flex ID
Greeter.as
package
{
public class Greeter
{
public static function sayHello():String
{
var greet:String = "Hello, world!";
return greet;
}
}
}

- 24 -

Nenad eki

Flash Data Computing

Greeter.mxml
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" xmlns="*" layout="vertical"
creationComplete="initApp()">
<mx:Script>
<![CDATA[
public function initApp():void
{
// Prints our "Hello, world!" message into "mainTxt".
mainTxt.text = Greeter.sayHello();
}
]]>
</mx:Script>
<mx:Label id="title" fontSize="24" fontStyle="bold" text='"Hello, world!" Example'/>
<mx:TextArea id="mainTxt" width="250"/>
</mx:Application>

3.3

Tipovi podataka

3.3.1

ActionScript 2

String Lista karaktera "Zdravo o vliki svete "

Number Bilo koja numerika vrednost.

Boolean Prost binarni zapis "true" ili "false".


Object Objekat podrava kompleksne tipove od kojie nasledjuje. Dozvoljava
grupisanje metoda, funkcija, parametara, i drugijh objekata.

ActionScript 2 kompleksni tipovi.

MovieClip ActionScript kreacija koja dozvoljava laku upotrebu vidljivih


objekata

TextField Jednostavan dinamiki ili tekstualno polje za unos. Nasleeno od


MovieClip tipa.

Button Dugme sa 4 slike-frejma(stanja):Iznad, preko, dole i pritisnuto.


Nasleeno od MovieClip tipa.

Date Dozvoljava pristup informacija o nekom specifinoj taki u vremenu.

Array Lienerano skladitenje podataka.

XML XML objekat.


XMLNode - XML nod.

- 25 -

Nenad eki

Flash Data Computing

LoadVars Promenljiva za uitavanje dozvoljava skladitenje i slanje HTTP POST


i HTTP GET promenljivih.

Zvuk

NetStream

NetConnection

MovieClipLoader

EventListener

3.3.2

ActionScript 3

Boolean Tip koj dozvoljava vrednosti true,false, 1, 0. Nijedna druga vrednost


nije dozvoljena.

int je tip koj je 32 bitni intier izmedju -2,147,483,648 i 2,147,483,647.

Null tip koj sadri samo jednu vrednost null. Ovo je poletna vrednost za String i
sve kompleksne klase koje predstavljaju kompleksne tipove, kao i Object tip.

Number Broj je tip koj moe da prestavlja intier, unsigned integers i broj sa
pokretnim zarezom.

Koristi se 64 bitna preciznost kao to je specificirano po IEEE standardu za


Binarnu Aritmetiku (IEEE-754).

String String je 16 bitni niz karaktera. Interno su smeteni kao Unikod karakteri,
koristei UTF-16 format. U ranijim verzijama korien je UTF-8 format.

uint Unsigned intider 32 bita i ima vrednost od 0 do 4,294,967,295.


void Void je tip koj sadri jednu vrednost underfined. U ranijim verzijama je
bila poetna vrednost tipa Objekat. Sada je poetna vrednost null.

ActionScript 3 kompleksni tipovi.

Object Objekat tip je definisan Objekat klasom. Objekat klasa slui kao osnovna
klasa za definisanje u ActionScriptu.

Array Sadi listu podataka. Iako je AS3 strongly-typed jezik nepodrava


imenske nizove. Ve sadraj niza moe biti bilo kog tipa.

MovieClip Animirani film objekat za prikaz. Nasledjen (sa manjim


modifikacijama) i prestavlja glavnu Flashovu vremensku liniju.

Bitmap Ne animirana bitmapa za prikaz.


Shape Ne animiran vektor za prikaz.

ByteArray Sadri niz binarnih podataka.

- 26 -

Nenad eki

Flash Data Computing

TextField Jednostavan dinamiki ili tekstualno polje za unos. Nasleen od text


field objekta.

SimpleButton Jdugme koja podrava stanja gore, preko, dole i obaveznom


zonom za klik.

Date Datum objekat i sadri trenutno sistemsko vreme.

Error Generiki objekat za greku koj se javlja useld izuzetka (exception).

Function jezgro klasa za sve flash definicije.

RegExp Regularni izrazni objekti za string.

Video Objekat za prikazivanje video sadraja podrava direktno(progressive


download) ili striming (RTMP). Od verzije 9.0.115.0, podran je open h.264/MP4
high-definition video format, ako i standardni Flash video(FLV).
XML prepravljen XML objekat zasnovan na E4C standardu. Pristu je drukaciji
od AS2 i zato je ponudjen tip XMLDocument kao kompitabilnost sa predhodnom
veryijijom.

XMLList Niz objekata rarliitog sadraja u XML klasi.

Kao to moemo da pritetimo evolucija actionScript-a kao programsko jezika


prevazilazi osnonu i prvobitnu namenu koja je bila da olaka manipulaciju
grafikom i zvukom preko interenta

- 27 -

Nenad eki

3.4

Flash Data Computing

Rasporostranjenost Flasha.

3.4.1

Dostupnost flash vm

Globalno u svetu Septembar 2008


Flash Player 7

Flash Player 8

Flash Player 9

Flash Player Flash


Player 9.0.115*

98.60%
98.70%
99.10%
97.50%

98.30%
98.30%
98.90%
97.30%

97.70%
98.10%
98.00%
96.30%

89.40%
90.00%
88.60%
88.30%

Flash Player 7

Flash Player 8

Flash Player 9

Flash Player Flash


Player 9.0.115*

99.00%
99.10%
98.50%
99.30%
97.30%

98.70%
98.90%
97.90%
99.30%
97.10%

97.70%
97.80%
96.50%
98.80%
96.20%

81.70%
83.30%
78.60%
81.30%
82.40%

Flash Player 7

Flash Player 8

Flash Player 9

Flash Player Flash


Player 9.0.115*

98.80%
98.70%
98.50%
99.80%

98.50%
98.50%
98.10%
99.50%

97.20%
97.30%
96.50%
98.00%

61.80%
62.10%
61.90%
61.00%

Flash Player 7
98.80%
99.00%
98.10%
99.50%
97.30%

Flash Player 8
98.30%
98.50%
97.60%
99.30%
95.50%

Flash Player 9
95.70%
96.80%
94.30%
95.30%
93.30%

Razvijena trita
US/Canada
Evropa
Japan

Globalno u svetu Jun 2008

Razvijena trita
US/Canada
Evropa
Japan
Emerging Markets3

Globalno u svetu Mart 2008

Razvijena trita
US/Canada
Evropa
Japan

Globalno u svetu Decembar 2007

Razvijena trita
US/Canada
Evropa
Japan
Emerging Markets3

Flash Player 64
98.80%
99.00%
98.10%
99.50%
97.40%

http://www.adobe.com/products/player_census/flashplayer/version_penetration.html

- 28 -

Nenad eki

3.4.2

Flash Data Computing

Instalirane verzije flash vm

Figure 2 Napomena statiskika obuhvata US, Kanadu, Francusku, Nemaku, Japan i prestavlja stanje Septembra
2008.

http://www.adobe.com/products/player_census/flashplayer/
3.4.3
Regioni

Africa
Azija
Evropa
Srednji istok
Severna amerika
Latino amerika
Australija
Ukupno Svet

Statistika korienja interneta


Populacija Internet
korisnici
955206348
3776181949
800401065
197090443
337167248
576091673
33981562
6676120288

Internet
Usage,

4514400
114304000
105096093
3284800
108096800
18068919
7620480
360985492

http://www.internetworldstats.com/stats.htm

- 29 -

51065630
578538257
384633765
41939200
248241969
139009209
20204331
1463632361

%
populacije
5.30%
15.30%
48.10%
21.30%
73.60%
24.10%
59.50%
21.90%

korisnici porast u
korienju
% od
sveta
3.50%
39.50%
26.30%
2.90%
17.00%
9.50%
1.40%
100.00%

2000-2008
10.312
4.061
2.66
11.768
1.296
6.693
1.651
3.055

Nenad eki

Flash Data Computing

Flash kao grid

Dostupnos flash vm maine prestavlja flash kao idealnog kandidata za formiranje grid-a.

4.1

Sluajevi korienja DataGrid sistema

U sistemu DataGrid postoje tri osnovna sluajeva korienja (Slika 4.1):

Priprema Grid kontrole (bootGrid)

Inicijalizacija (Initialization)

Izvrenje (Execution)

bootGrid

GridServer

Initialization

ClientApplication

Execution

Slika 4.1: Osnovni sluajevi korienja

Ova tri SK istovremeno predstavljaju i faze izvrenja aplikacije. Osnovni akteri


(uloge) u sistemu su serverska aplikacija (GridServer) i klijentska aplikacija
(ClientApplication). Navedeni SK se odvijaju u komunikacionom kontekstu izmeu ova
dva aktera.
4.1.1

Priprema Grid kontrole

Serverska aplikacija (GridServer) se inicijalno nalazi (Slika 4.2) u reimu


neprekidnog oslukivanja (listening), oekujui zahtev nekog od klijenata da joj pristupi. U
ovim uslovima se odvija SK Priprema Grid kontrole (bootGrid).

- 30 -

Nenad eki

Flash Data Computing

listening

GridServer

requesting

ClientApplication
bootingGrid

Slika 4.2: SK Priprema Grid kontrole

Klijent predstavlja potpuno nezavisnu klijentsku platformu (u odnosu na


GridServer), koja je u stanju da uspostavi standardnu Internet komunikaciju. Pri prvom
obraanju serveru (requesting), vri se registracija klijenta, dodeljuje mu se novi
identifikator (UID), kreira se novi klijentski objekat koji se isporuuje kroz Web resurs
(npr. swf fajl), i koji predstavlja osnovni entitet posredstvom koga se vri komunikacija
(bootingGrid). U sluaju da se klijent ve obraao serveru, on poseduje UID, tako da mu se
samo isporuuje klijentski objekat.
4.1.2

1.2 Inicijalizacija

Priprema Grid kontrole, predstavlja permanentnu aktivnost registrovanja klijenta za


korienje od strane sistema. Inicijalizacija (Initialization) je SK kojim zapoinje
eksploatacija klijenata za potrebe GridServer-a. Ona specijalizuje u dva SK, preciznije ima
dve faze: verifikaciju klijenta i odgovor na verifikaciju.

verification

GridServer
verificationResponding

ClientApplication

Slika 4.3: SK Inicijalizacija

Registrovani klijent, koji je na mrei, sadri iv klijentski objekat, koji alje signal
GridServer-u da je klijent spreman za korienje (verification). Server evidentira aktivnog
klijenta i alje mu odgovarajui odgovor (verificationResponding):

Odgovor sa resursom kroz ovaj tip odgovora obavlja isporuku resursa klijentu,

Samo odgovor sluaj kada serverska aplikacija nema trenutne potrebe za


korienje klijenta.

U oba sluaja GridServer verifikuje klijenta za potencijalnog egzekutora, smetajui ga u


listu verifikovanih klijenata. Na taj nain server vri pooling klijenata, vodei rauna o
njihovoj trenutnoj zauzetosti, ili spremnosti za prihvatanje novodobijenih zadataka.

- 31 -

Nenad eki

4.1.3

Flash Data Computing

1.3 Izvrenje

SK Izvrenje (Execution) predstavlja najsloeniji SK DataGrid sistema. Ovaj sluaj


prikazuje da je kljuna funkcionalnost koja je reavana u sistemu komunikaciona,
posredstvom koje serverska aplikacija distribuira aplikacione resurse (objekte, klijentsku
aplikaciju, podatke), na razne tipove klijentskih platformi. Serverska aplikacija kontrolie
isporuku, izvrenje i uklanjanje ovih resursa sa klijentske platforme.

loadResource

pauseExecution

stopExecution
GridServer

ClientApplication

unoloadResource

removeResource

Slika 4: SK Izvrenje

U SK Izvrenje postoji pet sluajeva korienja (Slika 4):

Uitavanje resursa

Pauziranje izvrenja

Zaustavljanje izvrenja

Pranjenje resursa

Uklanjanje resursa

Uitavanje resursa
Uitavanje resursa (loadResource) je SK
Pauziranje izvrenja
Pauziranje izvrenja (pauseExecution) je SK
Zaustavljanje izvrenja
Zaustavljanje izvrenja (stopExecution) je SK
Pranjenje resursa
Pranjenje resursa (unloadResource) je SK
Uklanjanje resursa

- 32 -

Nenad eki

Flash Data Computing

Uklanjanje resursa (removeResource) je SK

- 33 -

Nenad eki

Flash Data Computing

4.2

2. Konceptualni model

Konceptualni model (Slika 4.5) predstavlja osnovne statike koncepte sistema. Ovaj
model se dalje razvija u dijagram klasa, dodavajui na koncepte metode koje se
implementiraju i podatke koje koncepti sadre. Osnovna namena konceptualnog modela je
da prikae koncepte i relacije izmeu njih.
ClientApplication

0..*

GridServer

TaskPool
1

1
1
0..*

1
ClientObject

Task

ClientPool

Resource

Slika 4.5: Konceptualni model aplikacije

Osnovna klasa aplikacije je GridServer. Ona u sebi sadri dva pool-a koncepti
TaskPool i ClientPool. GridServer takoe zna za koncept koji se razvija na klijentskoj
strani ClientApplication. Ova klasa enkapsulira aplikaciju koja se distribuira po zahtevu
na klijentsku platformu posredstvom mree. Svaki primerak klijentske aplikacije dobija
jedinstveni identifikator UID, koji omoguava njegovu identifikaciju kod konkurentskog
pristupa veeg broja klijenata na GridServer. Sve akcije koje se izvravaju na klijentskoj
platformi su enkapsulirane u koncept (klasu) ClientObject. Klijentska aplikacija, da bi bila
upotrebljiva, mora da sadri jednu instancu ClientObject klase. Preko ove klase se vri i
komunikacija izmeu serverske i klijentske platforme. GridServer uva klekciju aktivnih
ClientObject objekata u klasi ClientPool. Klasa ClientObject zapravo servisira zahteve
GridServer-a za izvrenje odreenih zadataka na klijentskoj strani. GridServer prima
zadatke od entiteta van sistema, i dodaje ih u TaskPool. Zadaci su predstavljeni klasom
Task i sadre reference na resurse, neophodne za njihovo izvrenje. Resursi su
predstavljeni konceptom Resource, mogu da budu bilo kog tipa i isporuuju se klijentskoj
aplikaciji, kako bi se izvrili na klijentskoj platformi.

- 34 -

Nenad eki

4.3

Flash Data Computing

3. Sekvencijalni dijagrami

Sekvencijalni dijagrami su vrsta dijagrama interakcije koji prikazuju hronologiju


interakcije izmeu objekata u sistemu. U toku interakcije, izmeu objekata se razmenjuju
poruke u vidu funkcionalnih poziva i podaci u vidu objekata ili literala (podataka osnovnih
tipova).
4.3.1

3.1 Priprema Grid kontrole

Na osnovu istoimenog SK konstruisan je sekvencijalni dijagram (Slika 4.6).


Pokretanjem GridServer-a, poziva se interna funkcija startListen, kojom se GridServer
dovodi u reim neprekidnog oslukivanja (listening).
cap : ClientApplication

gs : GridServer

clo : ClientObject

1 : startListen()

2 : request()

3 : new()
4 : initialize()
5 : clo := getInstance()

6 : clo := response()

Slika 4.6: Sekvencijalni dijagram za SK Priprema Grid kontrole

Klijentska aplikacija (ClientApplcation) alje zahtev serveru za nekim resursom


(poziv request). GridServer kreira novi klijentski objekt (clo). Pri konstrukciji, ovaj objekt
se inicijlizuje potrebnim podacima (initialize), nakon ega ga GridServer prosleuje
klijentskoj aplikaciji (metode getInstance i response).
4.3.2

3.2 Inicijalizacija

Inicijalizacija (Initialization) je SK kojim zapoinje eksploatacija klijenata za


potrebe GridServer-a (Slika 4.6). Ona podrazumeva da se na klijentskoj platformi ve
nalazi klijentski objekat, koji zapoinje inicijalizaciju pozivom metode verify kljentske
aplikacije. Ovaj poziv se prosleuje GridServer-u, koji evidentira - dodaje aktivnog
klijenta u listu, enkapsuliranu u klasi ClientPool. Poto se radi o sinhronoj komunikaciji,
GridServer najpe proveri da li postoji nerasporeen zadatak u listi zadataka koja se
odrava u klasi TaskPool. Ako takav zadatak postoji, GridServer ga dobija preko metode
getUndeliveredTask i dodeljuje ga novom klijentskom objektu, smetenom u ClientPool-u.

- 35 -

Nenad eki

Flash Data Computing

clo : ClientObject

cap : ClientApplication

1 : verify()

gs : GridServer

2 : verifyMe()

cp : ClientPool

tp : TaskPool

3 : add()
4 : undeliveredTask := getUndeliveredTasks()
5 [if(udeliveredTask!=null)] : delegateTask()

7 : putResource()

6 : taskResource := response()
8 : accepted()

Slika 7: Sekvencijalni dijagram za SK Inicijalizacija

U odgovoru GridServer a klijentu (response), alje se resurs(i), neophodan za


izvrenje zadatka. Ovaj resurs se prosleuje klijentskom objektu, nakon ega klijentska
aplikacija alje potvrdu preuzimanja istog. Klijentski objekat i aplikacija su spremni za
izvrenje zadatka.
4.3.3

3.3 Izvrenje
Izvrenje (Execution) je najkompleksniji SK sistema, prvenstveno zbog velikog
broja stanja u kojima moe da se nae resurs pri izvravanju na klijentskoj strani (Poglavlje
4.3).
Za sada je predviena osnovna funkcionalnost izvravanja zadataka. Zadatak je
mogue pokrenuti na bilo kom nodu i primiti njegov rezultat. Dalji razvoj podrazumeva
kreiranje mehanizama koji bi omoguili efikasno reavanje konkurentnih zadataka.

- 36 -

Nenad eki

Flash Data Computing

Dalji razvoj

Postignuto
Kreiranje flash grid mree i distribucije zadataka.

Dalji razvoj i mogui smerovi


p2p.
Implementacija Erlanga (Paralelizam).
Ublique computing.
API ka klasinom gridu.
Grid neuronska mrea.
Veb operativni sistemi.

- 37 -

Nenad eki

Flash Data Computing

Literatura:
[1] Wikipedia Distributed computing http://en.wikipedia.org/wiki/Distributed_computing
[2] Grid computing http://en.wikipedia.org/wiki/Grid_computing
[3] Cloud computing http://en.wikipedia.org/wiki/Cloud_computing
[4] Cluster (computing) http://en.wikipedia.org/wiki/Computer_cluster
[5] Erlang http://erlang.org/doc.html
[6] Globus Alliance http://www.globus.org/alliance/publications/papers.php
[7] Adobe http://www.adobe.com/
[8] Milosavljevi, M., Naziv knjige, Izdava, Beograd, 2008.
[9] Milosavljevi, M., Naziv lanka, Univerzitet Singidunum, Beograd, 2009.
[10]Njegu, A., Projektovanje informacionih sistema, prezentacije sa predavanja, Univerzitet
Singidunum, Beograd, 2008.

- 38 -

You might also like