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
© Copyright 2024 Paperzz