DR - Flash Data Computing
DR - Flash Data Computing
Nenad eki
Beograd, 2008.
Mentor:
Dr doc Angelina Njegu
Student:
Nenad eki
Br. indeksa:
184/2004
Beograd, 2008.
MENTOR
________________________
Dr doc Angelina Njegu
DEKAN
________________________
Prof. dr Milan Milosavljevi
Sadraj
1.1
Computing................................................................................................................. - 1 -
1.2
1.2.1
1.3
1.4
1.5
1.6
Analiza....................................................................................................................... - 4 -
1.6.1
1.6.2
1.7
1.8
2.1.1
2.1.2
2.1.3
2.1.4
2.1.5
2.1.6
2.1.7
2.2
2.2.1
3
Arhitektura .......................................................................................................- 20 -
3.2
3.3
3.3.1
ActionScript 2 ...................................................................................................- 25 -
3.3.2
ActionScript 3 ...................................................................................................- 26 -
3.4
3.4.1
3.4.2
3.4.3
4
4.1.1
4.1.2
4.1.3
1.3 Izvrenje......................................................................................................- 32 -
4.2
4.3
3. Sekvencijalni dijagrami..........................................................................................- 35 -
4.3.1
4.3.2
4.3.3
3.3 Izvrenje......................................................................................................- 36 -
Nenad eki
1.1
Computing
1.2
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
Nenad eki
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
Nenad eki
1.6
Analiza
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
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
Super raunar
Brzina
Cena
Pouzdanost
Trokovi nabavke
Trokovi odravanja
Vek trajanja
Potronja elektrine energije
Heterogenost hardvera
Prednost
Mana
1.7
-5-
Nenad eki
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
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.
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
Grid aplikacija se obino sastoji od vie razliitih komponenti. Na primer tipina grid
aplikacija bi imala:
-7-
Nenad eki
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
-9-
Nenad eki
2.1
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
2.1.1
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
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.
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
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
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 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
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.
2.1.5
- 14 -
Nenad eki
2.1.6
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.
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
2.1.7
- 16 -
Nenad eki
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
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
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
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
- 20 -
Nenad eki
Flash VM
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
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
- 22 -
Nenad eki
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
AS2
var greet:TextField = new TextField();
greet.text = "Hello World";
this.addChild(greet);
AS3 Flex ID
Greeter.as
package
{
public class Greeter
{
public static function sayHello():String
{
var greet:String = "Hello, world!";
return greet;
}
}
}
- 24 -
Nenad eki
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
- 25 -
Nenad eki
Zvuk
NetStream
NetConnection
MovieClipLoader
EventListener
3.3.2
ActionScript 3
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.
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.
Object Objekat tip je definisan Objekat klasom. Objekat klasa slui kao osnovna
klasa za definisanje u ActionScriptu.
- 26 -
Nenad eki
- 27 -
Nenad eki
3.4
Rasporostranjenost Flasha.
3.4.1
Dostupnost flash vm
Flash Player 8
Flash Player 9
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
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
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
Razvijena trita
US/Canada
Evropa
Japan
Emerging Markets3
Razvijena trita
US/Canada
Evropa
Japan
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
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
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
Dostupnos flash vm maine prestavlja flash kao idealnog kandidata za formiranje grid-a.
4.1
Inicijalizacija (Initialization)
Izvrenje (Execution)
bootGrid
GridServer
Initialization
ClientApplication
Execution
- 30 -
Nenad eki
listening
GridServer
requesting
ClientApplication
bootingGrid
1.2 Inicijalizacija
verification
GridServer
verificationResponding
ClientApplication
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,
- 31 -
Nenad eki
4.1.3
1.3 Izvrenje
loadResource
pauseExecution
stopExecution
GridServer
ClientApplication
unoloadResource
removeResource
Slika 4: SK Izvrenje
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
- 33 -
Nenad eki
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
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
3. Sekvencijalni dijagrami
gs : GridServer
clo : ClientObject
1 : startListen()
2 : request()
3 : new()
4 : initialize()
5 : clo := getInstance()
6 : clo := response()
3.2 Inicijalizacija
- 35 -
Nenad eki
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()
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
Dalji razvoj
Postignuto
Kreiranje flash grid mree i distribucije zadataka.
- 37 -
Nenad eki
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 -