veleučilište u rijeci uloga cloud computinga u razvoju web aplikacija

VELEUČILIŠTE U RIJECI
Specijalistički diplomski stručni studij informatike
ULOGA CLOUD COMPUTINGA U RAZVOJU WEB
APLIKACIJA
(Seminar)
Mentor: mr. sc. Tomljanović Jasminka, viši predavač
Student: Adela Mujanović
Rijeka, 2013.
SADRŢAJ
UVOD ........................................................................................................................................ 3
CLOUD COMPUTING ............................................................................................................. 4
KARAKTERISTIKE CLOUD COMPUTING-A ...................................................................... 6
PODJELA OBLAKA PREMA INFRASTRUKTURI ............................................................... 9
WEB APLIKACIJE ................................................................................................................. 12
Struktura web aplikacija ................................................................................................... 12
PREDNOSTI I NEDOSTACI CLOUD COMPUTING-a I WEB APLIKACIJE ................... 14
ZAKLJUČAK .......................................................................................................................... 18
2
UVOD
Web - aplikacije sve više postaju prisutne u svakodnevnom korištenju. Počevši od
društvenih igara pa do ozbiljnih projekata. Stalna dostupnost putem Interneta i mogućnost
suradnje ljudi koji nisu u mogućnosti svakodnevno se nalaziti bili su privilegija tvrtkama koje
su si mogle priuštiti potreban softver i infrastrukturu.
U nastavku ću govoriti o Cloud computing-u koji zapravo nije niti tehnologija, niti način
poslovanja. To je zapravo koncept koji uključuje softver kao uslugu, model SaaS, a temelj im
je Internet kao platforma. Podaci se drže na serverima, a pristupa im se putem internetskih
preglednika ili specijaliziranih aplikacija. Ipak, ne smijemo miješati cloud computing s
clusterima odnosno mrežama koja tvore “superračunala”, jer sam hardver ne mora biti
iznimno zahtjevan.
3
CLOUD COMPUTING
Jasna definicija cloud computing-a, još uvijek ne postoji. Postoje samo neke opće
prihvaćene definicije koncepta cloud computing-a. Mnogi analitičari se i dalje ne mogu točno
dogovoriti oko definicije što cloud computing zaista jest, a najtočnija bi bila ona da je cloud
computing koncept podjele programskog okruženja koje koristi Internet kao platformu te
omogućuje da aplikacije i dokumenti poslani iz bilo kojeg dijela svijeta budu pohranjeni i
čuvaju se na unaprijed predviĎenim poslužiteljima. Cloud computing je i dalje u razvoju, a
ključ njegovog daljnjeg razvoja je kombinirano korištenje virtualnih strojeva i aplikacija. Od
trenutka pojave ove tehnologije na tržištu se pojavilo mnoštvo novih davatelja usluga cloud
computinga(Google, Amazon, GoGrid i dr.), a trend se i dalje nije ugasio. Svaki od njih ima
svoje prednosti i nedostatke pa se korisnici obično odlučuju za one koji najbolje
zadovoljavaju njihove potrebe. Kako svaki korisnik ima drugačije potrebe i bitne su mu
drugačije značajke računalnog sustava (sigurnost, dostupnost, količina resursa), činjenica da
svaki poslužitelj ima drugačije osobine dobra je za daljnji razvoj tehnologije. Cloud model
promovira dostupnost i sastoji se od pet ključnih karakteristika, tri modela pružanja usluga te
četiri modela implementacije.
Isporuka cloud computing usluge je podijeljena na tri arhitekturalna modela i različite
izvedene kombinacije. Tri osnovne klasifikacije često se nazivaju SPI(SaaS,PaaS,Iaas) model,
pri čemu SPI označava program, platformu ili infrastrukturu. Mogući modeli pružanja usluge
su SaaS (eng. Cloud Software as a Service), PaaS (eng. Cloud Platform as a Service) i IaaS
(eng. Cloud Infrastructure as a Service).
4
Slika 1. Cloud computing
Izvor: http://www.muskiportal.com/wp-content/uploads/2010/08/Cloud-Computing.jpg
5
KARAKTERISTIKE CLOUD COMPUTING-A
Kao i svaka tehnologija, tako i cloud computing ima odreĎene prednosti i
nedostatke. Postoji pet ključnih karakteristika koje pokazuju odnos i razlike cloud
computing sustava u odnosu na tradicionalni pristup u računarstvu.
Pet ključnih karakteristika Cloud Computinga:
1. Pružanje usluge na zahtjev korisnika (eng. On-demand self-service) - Korisnik može
samostalno odabrati i pokrenuti računalne resurse. Može birati vrijeme posluživanja i
mrežni prostor za pohranu podataka bez potrebe za interakcijom s djelatnicima
pojedinog davatelja usluge. U principu, danas većina poslužitelja svoje usluge temelji
upravo na pristupu da korisnici plaćaju usluge u ovisnosti o vremenu i obujmu u
kojem ih koriste. Ovaj model cloud computinga pomaže u podržavanju izvedbenih i
kapacitivnih aspekata objekata koji ovise o razini usluge. Self-service priroda cloud
computinga organizacijama omogućuje stvaranje elastične okoline koja se povećava i
smanjuje ovisno o radnim uvjetima i ciljanim performansama. „Plati po korištenju“
priroda cloud computinga se može smatrati kao najam opreme koja se plaća ovisno o
tome koliko je opreme, na koje vrijeme i s kojim uslugama iznajmljeno. Virtualizacija
je ključ ovoga modela. Organizacije koje koriste informacijske tehnologije shvaćaju
da im virtualizacija omogućava brzo i jednostavno stvaranje kopija postojećih okolina.
Trošak ovih okolina je jako malen jer one mogu postojati na istom poslužitelju kao
proizvodna okolina. Isto tako, nove aplikacije se mogu razvijati i rasprostirati u novim
virtualnim strojevima na postojećim fizičkim poslužiteljima, otvorenima za uporabu
preko Interneta. Aplikacije mogu biti skalirane, ako su uspješne na tržištu. Mogućnost
korištenja i plaćanja samo onih resursa koji su korišteni prebacuje rizik koliko
infrastrukture zauzeti od organizacije koja razvija aplikaciju na davatelja usluga cloud
computinga. TakoĎer pomiće i odgovornost za arhitekturalne odluke s arhitekata
aplikacije na razvojne inženjere. Ovi pomaci odgovornosti mogu povećati rizike.
2. Širok mrežni pristup (eng. Broad network access) - Mogućnosti su dostupne putem
mreže i njima se pristupa koristeći standardne mehanizme koji promoviraju
6
heterogenu uporabu „tankih“ i/ili „bogatijih“ klijentskih platformi (na primjer, mobilni
ureĎaji, laptopi te PDA ureĎaji) kao i tradicionalnih programskih usluga temeljenih na
„oblaku“. Ovo je vrlo blisko Microsoftovoj strategiji (ideja je da se bilo koji ureĎaj
može spojiti na sustav od bilo kuda).
3. Udruživanje resursa (eng. Resource pooling) - Računalni resursi pružatelja usluga
spajaju se kako bi poslužili sve korisnike koristeći model više zakupljenih jedinica
(eng. Multi-Tenant model), s različitim fizičkim i virtualnim resursima, koji se
dinamički dodjeljuju i uklanjaju prema zahtjevima korisnika. Korisnik uobičajeno
nema nadzor i znanje o točnom mjestu uporabljenih resursa, ali ipak ga može odrediti
na većoj razini apstrakcije (na primjer na razini države). Primjeri resursa uključuju
mrežni prostor, procesore, memoriju, mrežnu propusnost te virtualne strojeve.
4. Brza elastičnost(eng. Rapid elasticity) - Mogućnosti koje korisnicima nudi cloud
computing mogu biti ubrzano i elastično pokrenute, u nekim slučajevima i automatski,
kako bi se po potrebi ostvarilo proporcionalno povećanje ili smanjenje mogućnosti
kada one više nisu potrebne. Krajnjem korisniku mogućnosti koje koristi mogu
izgledati kao da nemaju ograničenja i mogu se kupiti u bilo kojoj količini u bilo koje
vrijeme (na primjer Amazon EC2).
5. Odmjerena usluga (eng. Measured service) - Sustavi koji koriste cloud computing
automatski provjeravaju i optimiraju uporabu resursa. Uporaba resursa se optimira
utjecajem na mjerenje sposobnosti apstrakcije prikladne potrebnom tipu usluge (na
primjer pohrana podataka, širina pojasa, aktivni korisnički računi). Uporaba resursa se
može pratiti, provjeravati i o njoj se mogu raditi izvješća pružajući tako transparentan
uvid davateljima usluge i korisnicima. Važno je primijetiti da se cloud computing
poslužitelji često (ali ne uvijek) koriste zajedno s virtualizacijskim tehnologijama.
MeĎutim, ne postoje zahtjevi koji usko povezuju apstrakciju sredstava i
virtualizacijske tehnologije pa se u mnogim ponudama virtualizacija operacijskih
sustava ipak ne koristi.
7
Slika 2. Ključne karakteristike cloud computing
Izvor: http://www.pctrikovi.com/images/stories/dariolovkovic2/cloud/cloud1.jpg
8
PODJELA OBLAKA PREMA INFRASTRUKTURI
1. Javni oblak (eng. Public Cloud) - Javni oblaci su oni u kojem provider usluga, kao što
su aplikacije i skladištenje, čini dostupnim široj javnosti preko Interneta. Oni su
obično smješteni van korisničkih prostorija i oni pružaju način da se smanji rizik i
trošak kupca pružanjem fleksibilnih i privremenih proširenja infrastrukture. Jedna od
prednosti javnog oblaka je da oni mogu biti puno veći od privatnog oblaka kompanije,
nudeći mogućnost skaliranje gore i dolje na zahtjev i prebacivanje infrastrukturnog
rizika od poduzeća do providera oblaka. Dijelovi javnog oblaka mogu biti podešeni za
isključivo korištenje jednog klijenta, kreiranjem virtualnog privatnog centra podataka.
U vlasništvu je tvrtke koja prodaje cloud computing usluge.
Slika 3. Javni oblak
Izvor: SUN.hr
2. Privatni oblak (eng. Private Cloud) –Privatni oblaci su napravljeni za isključivo korištenje
jednog klijenta, osiguravajući potpunu kontrolu nad podacima, sigurnost i kvalitetu
usluga.Infrastruktura Cloud computing-a dostupna je isključivo jednoj organizaciji.
Njome može upravljati sama organizacija ili netko drugi.Organizacije koriste privatne
oblake kada trebaju ili žele veći nadzor nad podacima nego što ga mogu imati
korištenjem javnog oblaka. Organizacija posjeduje infrastrukturu i ima nadzor nad
raspodjelom aplikacija na vlastitoj infrastrukturi. Privatni oblaci mogu biti rasporeĎeni
i unutar organizacijskog podatkovnog centra
9
Slika 4. Privatni oblak
Izvor:SUN.hr
3. Zajednički oblak (eng. Community Cloud) - Nekoliko organizacija dijeli strukturu
oblaka. Infrastruktura podržava posebne zajednice koje imaju zajedničke potrebe, misije,
zahtjeve sigurnosti i slično. Njima mogu upravljati same organizacije ili netko drugi (pružatelj
usluga cloud computinga).
4. Hibridni oblak (eng. Hybrid Cloud) Strukturu oblaka čine dva ili više različitih
oblaka (privatni, zajednički ili javni) koji ostaju jedinstveni entiteti, ali su meĎusobno
povezani standardiziranim ili prikladnim tehnologijama koje omogućavaju efikasan
prijenos podataka ili aplikacija.
Hibridni oblaci povezuju javne i privatne modele oblaka. Mogućnost proširivanja
privatnog oblaka s resursima javnog oblaka može se koristiti za održavanje uslužnih razina
kako bi se lakše izdržala velika opterećenja. To se najčešće može vidjeti kod uporabe oblaka
za pohranu podataka kako bi podržali Web 2.0 aplikacije. Hibridni oblak se takoĎer može
koristiti za upravljanje planiranim velikim opterećenjima. Privatni oblaci mogu se koristiti za
izvoĎenje periodičkih zadataka koji se jednostavno rasporeĎuju na javne oblake.
10
Slika 5. Hibridni oblak
Izvo:SUN.hr
11
WEB APLIKACIJE
UvoĎenjem dinamičnosti u web, više se ne govori o web stranicama, već o web
aplikacijama. Web aplikacija predstavlja aplikaciju kojoj se pristupa putem računalne mreže
kao što je Internet ili intranet. Izraz web aplikacija takoĎer može predstavljati računalni
program koji se odvija unutar okruženja web preglednika (npr. Java applet) ili kodiran u
programskom jeziku koji podržava web preglednike (kao što je JavaScript, kombiniran sa
markup jezikom kao HTML) i oslanja se na uobičajene web preglednike za izvršavanje
aplikacije. Web aplikacije su popularne zbog sveprisutnosti web preglednika, i praktičnosti
korištenja web preglednika kao klijenta, ponekad nazvanih "tanki klijent" Mogućnost
ažuriranja i održavanja web aplikacija bez distribucije i instalacije programske podrške na
potencijalno tisuće klijentskih računala je ključni razlog njihove popularnosti, kao i
naslijeĎena podrška za kompatibilnost na više platformi (engl. cross-platform). Njihovom
ubrzanom širenju su ponajviše doprinijele usluge koje omogućuju korisnicima korištenje,
razmjenu i promjenu informacija neovisno o platformi kroz infrastrukturu Interneta. Primjeri
Web aplikacija su pretraživači, aplikacije za elektroničku poštu, aplikacije za kupnju i različiti
portali.
Struktura web aplikacija
Aplikacije se često rastavljaju u logičke cjeline koje se nazivaju "razinama", gdje je
svakoj razini dodijeljena odgovarajuća uloga. Tradicionalne aplikacije se najčešće sastoje od
samo jedne razine koja se nalazi na klijentskom računalu dok je kod web aplikacija prirodan
pristup n-razina. Iako su mnoge varijacije moguće, najuobičajenija struktura je trorazinska
aplikacija. U najuobičajenijoj formi tri razine su prezentacijska, aplikacijska i razina pohrane u tom redoslijedu. Web preglednik predstavlja prvu razinu (prezentacijsku), sustav koji koristi
neku poslužiteljsku web tehnologiju (kao npr. ASP, ASP.NET, CGI, ColdFusion, JSP/Java,
12
PHP itd.) predstavlja srednji sloj (aplikacijsku logiku), a baza podataka je treća razina
(pohrana). Web preglednik šalje zahtjeve srednjem sloju, koji obraĎuje zahtjeve slanjem upita
i ažuriranja u bazu podataka te generira korisničko sučelje.
Za složenije aplikacije, trorazinsko rješenje može biti nedostatno i javlja se potreba za nrazinskim pristupom, gdje je najveća prednost rastavljanje poslovne logike, koja se nalazi u
aplikacijskom sloju, u detaljniji model. Ili pak dodavanjem integracijskog sloja koji razdvaja
podatkovni sloj od ostalih slojeva pružajući "jednostavno-za-korištenje" sučelje (engl. easyto-use) za pristup podacima. Npr. pristup podacima o klijentima bi se izvršavao pozivajući
funkciju dohvatiKlijente() umjesto izrade SQL upita direktno na traženu tablicu u bazi
podataka. Takav pristup dopušta promjenu baze podataka bez promjene ostalih razina.
WWW je sistem s univerzalno prihvaćenim standardima za skladištenje, pronalaženje,
formiranje i prezentaciju informacija u konceptu povezivanja klijenta s poslužiteljem. Web
stranice se zasnivaju na standardnom HTML (engl. Hypertext Markup Language) jeziku koji
formatira dokumente i pravi dinamičke poveznice prema drugim dokumentima i slikama
smještenima na istom ili na drugim računalima.
HTTP (engl. Hypertext Transfer Protocol) je komunikacijski protokol koji omogućava promet
web stranica u mreži. Kompletna putanja do traženih web stranica naziva se URL (engl.
Uniform Resource Locator). Za realizaciju WWW servisa važan je web poslužitelj. Web
poslužitelj predstavlja računalo koje sadrži programsku podršku za pronalaženje i skladištenje
web stranica. On pronalazi web stranice koje korisnik računala zahtjeva i dostavlja ih
korisniku.1
1
http://bib.irb.hr/datoteka/495298.MV_dipl.pdf
13
PREDNOSTI I NEDOSTACI CLOUD COMPUTING-a I WEB
APLIKACIJE
Prednosti korištenja cloud computinga su:
 niža cijena sklopovske podrške u smislu da korisnik ne mora kupovati novo
sklopovlje, nego ga po potrebi iznajmljuje preko Interneta,
 korisniku je uvijek dostupna posljednja, najnovija inačica programske podrške,
 programska podrška i podaci su dostupni sa svakog računala s kojeg korisnik ima
pristup Internetu,
 manji troškovi održavanja i nadogradnje programske podrške. Nema troškova izravno
vezanih uz kupovinu sučelja, licenciranih programa, baze podataka, poslužitelja za
elektroničku poštu, kao ni troškova vezanih za njihovu instalaciju i konfiguraciju te
kasnije održavanje,
 u uslugu je uključena profesionalna antivirusna zaštita,
 dostupnost aplikacija,
 skalabilnost aplikacija - mogućnost opsluživanja velikog broja korisnika,
 fleksibilnost u izmjeni i prilagodbi aplikacija i
 stalno praćenje rada i održavanje infrastrukture.
Nedostaci cloud computinga su:
 problem dostupnosti,
 problem sigurnosti,
 problem ovisnosti o jednom pružatelju programske podrške,
 usvajanje novog načina razvoja aplikacija,
 nemogućnost jednostavnog premještanja postojećih aplikacija te
14
 nepostojanje standarda za povezivanje aplikacija različitih proizvoĎača, razmjenu
podataka,
 premještanje podataka te programske podrške iz „oblaka jednog proizvoĎača“ u
„oblak drugog“
Prednosti web aplikacije
 Web aplikacije ne zahtijevaju složenu proceduru implementacije kod velikih
organizacija. Sve što je potrebno je kompatibilni web preglednik.
 Aplikacije unutar web preglednika zahtijevaju malo ili ništa diskovnog prostora kod
klijenta
 Web aplikacije ne zahtijevaju nikakve procedure nadogradnje jer se sve nove značajke
i mogućnosti ugraĎuju na poslužitelju i automatski su dostavljene korisnicima.
 Web aplikacije se jednostavno integriraju sa ostalim procedurama poslužiteljske strane
kao što su elektronička pošta i pretraživanje.
 Web aplikacije rade bez obzira na operacijski sustav koji je instaliran na korisnikovom
računalu i programer ne mora raditi sučelje posebno za Windows, MacOS, Unix, ili
druge operativne sustave.
 Jednostavnost korištenja aplikacija.
 Sveobuhvatna podrška.
 Ušteda vremena (korisnicima i poduzećima).
Nedostaci web aplikacije
 Web aplikacije zahtijevaju kompatibilne web preglednike. Ako proizvoĎač
preglednika odluči ne implementirati odreĎene značajke, napustiti odreĎenu platformu
ili operacijski sustav, to može utjecati na veliki broj korisnika.
 Još uvijek nedovoljno usuglašeni standardi za HTML, CSS (engl. Cascading Style
Sheet) i DOM (engl. Document Object Model) od strane proizvoĎača web
preglednika.
 Korisnik u svom pregledniku može samostalno podesiti neke parametre prikaza, npr.
font, veličinu slova, i dr., pa se narušava konzistentnost prikaza aplikacije.
15
 Brzina rada aplikacije ovisi o brzini mrežne povezanosti s poslužiteljem na kojem se
nalazi aplikacija (brzini Interneta ili intraneta).
 Problemi sa sigurnošću na mreži (zaštita protiv upada, virusa i dr.).
 Aplikacije u pregledniku ovise o aplikacijskim datotekama kojima se pristupa na
udaljenim poslužiteljima putem Interneta. U slučaju prekida veze, aplikacija se više ne
može koristiti.
 Kako većina web aplikacija nije open-source, postoji značajan gubitak fleksibilnosti,
što korisnike čini ovisnima o poslužiteljima treće strane, ne dozvoljavajući prilagodbu
programa i sprječava korisnike od korištenja aplikacije u offline modu (u većini
slučajeva).
 Ovise u potpunosti o dostupnosti poslužitelja na kojem se nalazi aplikacija.
 Tvrtka koja pruža uslugu korištenja web aplikacije ima veliku kontrolu nad
aplikacijom i funkcionalnostima te je u mogućnosti implementirati nove mogućnosti
kad god želi, bez obzira na želje korisnika, a što može rezultirati nezadovoljstvom
korisnika.
 U teoriji tvrtke mogu nadzirati sve aspekte aplikacije što može uzrokovati probleme sa
privatnošću.
Web aplikacije i cloud computing su tehnologije za koje se vjeruje da predstavljaju
budućnost. U tom smjeru se već duže vrijeme pozicioniraju Google, Apple, Microsoft,
Facebook i mnogi drugi svjetski tehnološki giganti. Google Apps, jedna od najpoznatijih web
aplikacija, je koncem 2010. godine postala službena uredska aplikacija za U.S. General
Services Administration, odnosno za 17.000 službenika američke Vlade. Google je već daleko
odmakao i u izradi operativnog sustava, Chrome OS, koji funkcionira upravo po principu web
aplikacija.
IPhone i Android ureĎaji su meĎu najpopularnijima u svijetu. Oba proizvoĎača se prodaju na
milijunima mobilnih ureĎaja svake godine. Značajan porast imaju upravo web aplikacije
kojima je je osnovna prednost kompatibilnost s vodećim mobilnim operativnim sustavima
zadržavajući gotovo sve prednosti klasičnih aplikacija.
Pomak na usluge orijentirane prema web aplikacijama i računarstvu u oblaku se već dogodio,
a trend će kroz godine samo rasti. Tvrtka koja će na vrijeme prijeći na nove će zasigurno
16
preuzeti kontrolu na svom tržištu u budućnosti. Ovaj trend obuhvaća i male tvrtke, a ne samo
multinacionalne koroporacije.
17
ZAKLJUČAK
Na kraju ovoga seminara sažeti ću ono najbitnije, a to je omogućeno razumijevanje
Cloud computinga i web aplikacija. Svakodnevno smo svjedoci bržem napretku tehnologije
koja nam donosi odreĎene prednosti i nedostatke.
Cloud computing je nova i obećavajuća paradigma pružanja usluga, ujedno brzo je
postao i jedna od najvažnijih, ako ne i najvažnija, tehnologija za istraživanje. Cloud
computing i dalje nije zastupljen na tržištu u mjeri kojoj bi mogao biti, tako da će stručnjaci
morati i dalje raditi na njegovom razvoju i stvaranju novih inovacija, uhodavanju postojećih
rješenja pazeći pri tome da sigurnost cijelog sustava ostane dovoljno dobra. Dosegnuti će
svoj potpuni razvojni potencijal tek kada se uklone dosadašnji problemi poput problema
sigurnosti, dostupnosti, teškog prebacivanja podataka, ovisnosti o jednom poslužitelju.
Svjedoci smo enormnih promjena koje su potresale web u zadnjih 10 godina. Prije
toga web stranica je bila jedan direktorij na nekom serveru u kojem su se nalazili meĎusobno
povezani dokumenti. Kako se web razvijao, počela se ukazivati potreba za drukčijim
rješenjem koje će olakšati razvoj i održavanje web stranica. Ako se u obzir uzmu sve
činjenice budućnost web aplikacija čini se pozitivnom, posebno kada poslovni korisnici uvide
sve prednosti koje one donose, kao npr. pojednostavljeno održavanje, platformska nezavisnost
i dr.
18
LITERATURA:
Web linkovi:
1. http://bib.irb.hr/datoteka/495298.MV_dipl.pdf
2. http://sigurnost.lss.hr/Dokumenti/cloud-computing.html
3. http://www.pctrikovi.com/tutorijali-i-savjeti/cloud-computing.html
4. http://www.neuralab.net/development-software-coding/cloud-computing-objasnjeno/
5. http://translate.google.hr/translate?hl=hr&langpair=en%7Chr&u=http://en.wikipedia.o
rg/wiki/Web_application
Časopisi:
1. http://www.bug.hr/bug/tekst/cloud-computing/94077.aspx
2. http://pogledkrozprozor.wordpress.com/2009/08/29/%E2%80%9Ecloudcomputing%E2%80%9C-ili-programska-rjesenja-u-oblacima/
3. http://hrcak.srce.hr/index.php?show=clanak&id_clanak_jezik=69202
4. http://hrcak.srce.hr/index.php?show=clanak&id_clanak_jezik=100837
5. http://hrcak.srce.hr/index.php?show=clanak&id_clanak_jezik=103900
6. http://office.microsoft.com/hr-hr/web-apps-help/koristenje-web-aplikacija-office-webapps-na-servisu-windows-live-skydrive-HA101231889.aspx
19