Upload
trinhhuong
View
231
Download
2
Embed Size (px)
Citation preview
SVEUČILIŠTE U ZAGREBU
FAKULTET ORGANIZACIJE I INFORMATIKE
V A R A Ž D I N
Ivan Grgić
BAZE PODATAKA NA SQL AZURE PLATFORMI
ZAVRŠNI RAD
Varaždin, 2014.
SVEUČILIŠTE U ZAGREBU
FAKULTET ORGANIZACIJE I INFORMATIKE
V A R A Ž D I N
Ivan Grgić
Matični broj: 33070/02-I
Studij: Informacijski sustavi
BAZE PODATAKA NA SQL AZURE PLATFORMI
ZAVRŠNI RAD
Mentor:
Izv. prof. dr. sc. Kornelije Rabuzin
Varaždin, prosinac 2014.
Sadržaj
1. Uvod .................................................................................................................................... 1
2. Što je računalstvo u oblaku (engl. Cloud Computing) ........................................................ 2
2.1 Povijesni pregled ......................................................................................................... 3
2.2 Servisni model računalstva u oblaku ........................................................................... 5
2.2.1 Infrastruktura kao usluga ......................................................................................... 5
2.2.2 Platforma kao usluga ................................................................................................ 6
2.2.3 Softver kao usluga .................................................................................................... 6
2.3 Vrste računalstva u oblaku .......................................................................................... 7
2.3.1 Privatni oblak ........................................................................................................... 7
2.3.2 Javni oblak ............................................................................................................... 7
2.3.3 Zajednički oblak ....................................................................................................... 8
2.3.4 Hibridni oblak .......................................................................................................... 8
2.4 Prednosti i nedostatci računalnog oblaka .................................................................... 8
2.4.1 Prednosti računalnog oblaka .................................................................................... 8
2.4.2 Nedostatci računalnog oblaka .................................................................................. 9
3. Microsoft Windows Azure platforma ............................................................................... 10
3.1 Office 365 .................................................................................................................. 10
3.2 Windows Azure ......................................................................................................... 11
3.2.1 Windows Azure App Fabric .................................................................................. 14
3.2.2 Windows Azure ..................................................................................................... 15
3.2.3 Table Storage ......................................................................................................... 16
3.2.4 Blob Storage ........................................................................................................... 17
3.2.5 Queue Storage ........................................................................................................ 17
4. SQL Azure ........................................................................................................................ 18
4.1 SQL Azure Database ................................................................................................. 18
4.2 Azure Reporting ........................................................................................................ 19
4.3 SQL Azure Data Sync ............................................................................................... 19
5. Migracija baze podataka na SQL Azure ........................................................................... 21
5.1 Sustav za evidenciju diplomiranih studenata (SEDS) ............................................... 21
5.2 Dijagram slučajeva korištenja (engl. Use Case Diagram) ......................................... 22
5.3 ERA model ................................................................................................................ 23
5.4 Microsoft Azure Portal i migracija baze podataka .................................................... 24
6. Zaključak ........................................................................................................................... 35
7. Literatura ........................................................................................................................... 36
8. Popis slika ......................................................................................................................... 38
1
1. Uvod
Ubrzani razvoj računalne tehnologije i širenje Interneta u posljednjih desetak godina
kao i povećanje njegove brzine omogućilo je poslovnu primjenjivost Interneta, a pri tome je
došlo do razvoja mnogih novih usluga. Upravo razvojem novih usluga pojavio se i koncept
računalstva u oblaku koji iz dana u dan bilježi rast. Računalstvo u oblaku je usluga koja
omogućuje pružanje računalnih resursa, hardvera i softvera, preko mrežne infrastrukture
krajnjim korisnicima. Korisnik takvih usluga može koristiti najnoviju infrastrukturu,
tehnologiju i računalne resurse bez velikih troškova, koristeći web preglednik. Takav koncept
korisniku omogućuje da putem Interneta pristupa svojim servisima, aplikacijama ili podacima
sa bilo kojeg mjesta u bilo koje vrijeme. Za korisnika je to prednost jer omogućuje dostupnost
i pouzdanost usluge, fleksibilnost te razmjenu podataka uz minimalne troškove kao što su
kupnja jeftinijih računala i izbjegavanje kupnje licenci za određenu vrstu uslužnih programa,
servera ili operacijskih sustava.
Osim Interneta kao globalnog pokretača novih usluga treba spomenuti računalno
sklopovlje bez kojeg niti jedna usluga ne bi postojala. Razvojem sklopovlja, pojavom
višejezgrenosti i virtualizacije, pojeftinjenjem opreme, povećanjem snage i brzine došli smo u
položaj da računalni oblak možemo jeftino i vrlo lako implementirati. Tu mogućnost
prepoznale su i iskoristile globalne IT tvrtke poput Microsofta, Google-a, Amazona i SAP-a te
su tržištu ponudile svoje usluge u oblaku. Jedna od takvih usluga je Windows Azure tvrtke
Microsoft koju ću detaljnije objasniti jer je usko vezena uz tematiku koju obrađujem u ovom
radu. Kako je tema ovog rada usmjerena prema bazama podataka na Windows Azure
platformi, detaljnije ću objasniti jedan dio te platforme koji se zove SQL Azure.
Cilj ovog rada je prikazati koncept baza podataka u oblaku i implementaciju na
konkretnom primjeru koji uključuje bazu podataka web aplikacijom. Da bismo to sve
razumjeli opisati ću koncept računalstva u oblaku i njegov povijesni razvoj do danas. Objasnit
ću modele i vrste oblaka koji danas postoje kao i razlike među njima. U nastavku rada pobliže
ću opisati Windows Azure i njegove usluge, prednosti i nedostatke te razloge koristit ove
uslugu. Unutar Azure platforme nalazi se SQL Azure servis koji je tema mojeg rada. Objasnit
ću što je SQL Azure, što nam novoga donosi te kako se koristi i konfigurira na praktičnom
primjeru.
2
2. Što je računalstvo u oblaku (engl. Cloud Computing)
U stručnoj literaturi pojam računalnog oblaka postao je termin sa mnoštvom definicija,
što je tipično kod pojave nečega novoga. Stoga razni autori iz različitih područja informatike
tumače pojam računalnog oblaka na svoj način pa je to dovelo do pojave mnoštva definicija.
Iz tog razloga navest ću definicije za koje smatram da najtočnije opisuju što je računalni
oblak.
Prema Gartneru [2] računalni oblak je „vrsta računalstva u kojoj se skalabilni i
elastični IT resursi distribuiraju u vidu usluge vanjskim korisnicima koristeći Internet
tehnologije“.
Nadalje, NIST (Nacionalni institut za standarde i tehnologiju, SAD) objavljuje publikaciju
„Special publication 800-145“ [3] u kojoj navodi da je „računalstvo u oblaku model za
omogućavanje sveprisutnog, odgovarajućeg, mrežnog pristupa na zahtjev za dijeljenje
konfigurabilnih računalnih resursa (npr. mreže, servera, spremišta podataka, aplikacije i
servisa/usluga) koji se mogu brzo omogućiti i dodijeliti uz minimalan napor i interakciju sa
davateljem usluge“.
Osim ove dvije definicije navest ću još jednu definiciju istaknutog hrvatskog
stručnjaka i predavača Tomislava Bronzina [4] koji kaže da je „računalstvo u oblacima prije
svega tehnološka inovacija i napredak, ali je istovremeno i inovacija u smislu novog načina
poslovanja. Ono briše granice između razvijenih zemalja i onih u razvoju, budući da svim
poduzetnicima, neovisno o tome bave li se informacijskim tehnologijama, proizvodnim
djelatnostima ili uslugama, omogućava izravan pristup svim tržištima u svijetu gdje je
računalstvo u oblaku dostupno. Računalstvo u oblaku omogućava korisnicima da uz smanjene
troškove pokrenu poslovni poduhvat, ali i da u momentu kada im je to potrebno, imaju odmah
na raspolaganju dodatne resurse“.
Iz navedenih definicija možemo zaključiti da se računalstvo u oblaku temelji na
iznajmljivanju računalne infrastrukture za obavljanje različitih usluga kako što su spremanje
podataka, objavljivanje web stranica pa do postavljanja virtualnih računala posebne namjene i
sve to na principu „plati koliko koristiš“. Za krajnjeg korisnika to znači da može postaviti
neku uslugu, ali i koristiti neku uslugu u oblaku korištenjem različitih uređaja od jeftinog
računala i prijenosnog računala do pametnog telefona što uvelike optimizira troškove.
3
2.1 Povijesni pregled
Ako se vratimo u prošlost možemo zaključiti da je računalstvo u oblaku nastalo na
temeljima distribuiranih sustava. Distribuirani sustavi se sastoje od skupine računala,
povezanih računalnom mrežom, koja su opremljena distribuiranim aplikacijama. Upravo to
nas asocira na klijent-server model koji je upravo distribuirani sustav koji se sastoji od
poslužitelja za upravljanje i serviranje podataka na jednoj strani i klijenta na drugoj koji
zahtijeva od poslužitelja podatke ili resurse. [5]
U [6] autori Voas i Zhang navode šest faza računalne paradigme koja su dovela do razvoja i
pojave koncepta ali i usluge računalstva u oblaku. Slika 2.1.
Slika 2.1 Faze razvoja računalstva u oblaku [6]
Prema Voasu i Zhangu na slici 2.1 prikazano je šest faza računalne paradigme:
Faza 1 – mnogo korisnika dijeli moćna „mainframe“ računala koristeći terminal
Faza 2 – osobno računalo postalo je dovoljno snažno da zadovolji potrebe korisnika
4
Faza 3 – osobno računalo, prijenosno računalo i poslužitelji povezani su lokalnom
mrežom što im omogućuje da dijele resurse i povećaju performanse
Faza 4 – lokalne računalne mreže povezane su sa drugim mrežama formirajući
globalnu mrežu kao što je Internet što je omogućilo korištenje udaljenih aplikacija i
drugih resursa
Faza 5 – grid računalstvo omogućilo je dijeljenje zajedničke računalne snage i
prostora za pohranu podataka preko distribuiranih sustava
Faza 6 – računalstvo u oblaku omogućuje dijeljenje resursa putem Interneta na
jednostavan i skalabilan način.
Ideja računalstva u oblaku stara je koliko i sam Internet, ali pojavom računala koja su imala
poslovnu primjenjivost stvoreno je okruženje za brzi razvoj koncepta zasnovanog na oblaku.
Već sredinom prošlog stoljeća kada su kompanije poput IBM-a uvidjele mogućnosti zarade u
poslovanju primjenom računala počele su razmišljati na koji način mogu opsluživati manje
firme uz pomoć jednog računala sa više terminala. Na slici 2.2 se može vidjeti razvoj tog
koncepta do danas. Prve smjernice prema tom konceptu iznio je profesor John McCarthy 60-
ih godina prošlog stoljeća koji je izumitelj pojma „umjetna inteligencija“ i začetnik jezika
LISP. McCarthy navodi da bi računala, odnosno procesorska moć i spremišta za podatke
jednog dana mogla biti dostupno ljudima kao i bilo koja javna usluga poput struje i vode.
Slika 2.2 Povijest računalstva u oblaku [7]
Ako pogledamo gornju sliku možemo zaključiti da se s komercijalizacijom oblaka
krenulo prije 8 godina u tvrtki Amazon koja je imala ključnu ulogu u razvoju računalstva u
oblaku. U Amazonu su s vremenom shvatili da njihovi podatkovni centri imaju prosječnu
5
iskoristivost resursa oko 10% što je dovelo do zaključka da bi svoje podatkovne centre mogli
bolje i efikasnije iskoristiti kada bi mogli dinamički regulirati njihovo opterećenje. Sredinom
2002. Amazon pokreće servis sličan oblaku nazvan „Amazon.com Web Services (AWS)“
pomoću kojeg su krajnjim korisnicima ponudili uslugu iznajmljivanja procesorskog vremena i
prostora za smještaj podataka na računalima u svojim podatkovnim centrima naplaćujući to
po principu „plati koliko koristiš“. Nakon Amazona priliku da ugrabe dio kolača ugledale su i
ostale mega kompanije poput Google-a i Microsofta koji su u današnje vrijeme i direktni
konkurenti sa sličnim uslugama na tržištu. U nastavku rada ću ukratko opisati i njihove usluge
koje nude na tržištu, ali prije toga je potrebno opisati vrste i usluge računalstva u oblaku.
2.2 Servisni model računalstva u oblaku
Prema Bronzinu servisni model podrazumijeva razne aspekte računalstva kao što su
softver, pristup podacima, spremišta podataka bez potrebe poznavanja lokacije te računalne
infrastrukture od strane korisnika. Računalstvo u oblaku prema NIST definiciji može se
podijeliti u 3 kategorije [3]:
Infrastruktura kao usluga (engl. Infrastructure as a Service - IaaS)
Platforma kao usluga (engl. Platform as a Service - PaaS)
Softver kao usluga (engl. Software as a Service - SaaS)
Slika 2.3 Tri servisna modela [8]
2.2.1 Infrastruktura kao usluga
U ovu kategoriju spadaju poslužitelji,sustavi za pohranu podataka (engl. Storage) i
mrežna oprema. Krajnji korisnik iznajmljuje fizički poslužitelj ili virtualni stroj koja se izvodi
u oblaku i ima izlaz na Internet. Korisnik može unajmiti veći broj virtualnih mašina, odabrati
jačinu procesora ili količinu radne memorije i konfigurirati ih na način koji on želi. U većem
broju slučajeva korisnik odabire mašinu sa već predinstaliranim operacijskim sustavom
(Windows Server ili Linux) za određenu namjenu, kao što je web server, mail server, dns
server, sql server i sl. te sve to konfigurira kroz administracijsko sučelje pružatelja usluge.
6
Usluge se naplaćuju po satu rada virtualne mašine i po količini prenesenih podataka. Primjer
su Google Compute Engine, Rackspace Open Cloud, Microfost Azure, Amazon EC2 ili IBM
SmartCloud Enterprise. [9]
2.2.2 Platforma kao usluga
Platforma kao usluga je kategorija računalstva u oblaku koja pruža platformu i
okruženje programerima koji im omogućuju lakšu izradu aplikacija i korištenje usluga putem
web preglednika. Platforma uključuje skup razvojnih aplikacija i pomoćnih alata koji su
instalirani na host računala pružatelja usluga koji osiguravaju dostupnost tih usluga. Ova
usluga može pomoći razvojnim inženjerima da ostvare svoje ideje, od izrade aplikacije do
testiranja i implementacije. Ova usluga korisniku može omogućiti slijedeće: operacijski
sustav, server-side skriptnu okolinu, sustav za upravljanje bazom podataka, ostale serverske
aplikacije, korisničku podršku, skladištenje, mrežni pristup, alate za razvoj i dizajn i hosting.
Programeri ili tvrtke mogu imati veliku korist od ove usluge jer za određene faze svoje
proizvodnje ne trebaju kupovati opremu, softver i licence. Pružatelji PaaS usluga su Engine
Yard, Red Hat OpenShift, Google App Engine, Windows Azure Cloud Services ili AppFog.
[10]
2.2.3 Softver kao usluga
Softver kao usluga je servis preko kojega mali korisnici ili organizacije mogu
pristupiti softverskim aplikacija preko Interneta. Princip je da se korisnik prijavi u oblaku, u
kojem se nalazi širok raspon aplikacija koje može koristiti. Primjeri takvih aplikacija su
Google Apps for Business, Office 365, ZenDesk Plus, Clarizen ali i čak Twitter i Facebook.
Korisnici su u mogućnosti pristupiti usluzi putem Interneta iz bilo kojeg dijela svijeta. Postoje
usluge koje specifičnim poslovnim korisnicima ili organizacijama daju mogućnost korištenja
aplikacije za niz potreba, uključujući računovodstvo i fakturiranje, prodaju, praćenje
planiranja, praćenje performansi te komunikaciju između zaposlenika ili članova tima putem
maila ili IM poruka.
Možemo navesti nekoliko razloga zašto je softver kao usluga podjednako dobra za
organizacije, ali i običnog korisnika:
Nema dodatnih troškova za kupnju hardvera – sve što je potrebno za optimalno
korištenje aplikacija omogućuje pružatelj usluge
Nema troškova za instaliranje i konfiguraciju aplikacija – sve je spremno odmah
nakon što se korisnik pretplati na odabranu uslugu
7
Plaća se ono što se koristiti – ako je neka aplikacija potrebna samo za određeno
vrijeme tada se plaća samo ono razdoblje u kojem se je aplikacija koristila
Skalabilnost – ako korisnik odluči da mu je potrebno više prostora za pohranu ili
dodatne usluge, dovoljno je samo da u par klikova miša odabere ono što želi i odmah
mu je dostupno, npr. nema potreba za kupnjom novog tvrdog diska
Ažuriranje je automatizirano – korisnik ne treba brinuti kada će izaći neka nova zakrpa
i je li ona instalirana. Nova verzija aplikacije je odmah dostupna bez naknade.
Iz ovog možemo zaključiti sve prednosti ove usluge, dokle god postoji Internet veza
aplikacije su dostupne s bilo kojeg mjesta. Naravno ovo je i najveća mana, jer ako nema
Internet veze korisnik ne može do svojih podataka. [11]
2.3 Vrste računalstva u oblaku
Prema NIST-u [3] postoje 4 vrste usluga u oblaku, a to su: javni oblak, privatni oblak,
cloud zajednica i hibridni oblak. Ove usluge mogu biti raspoređene na različite načine ovisno
o organizacijskoj strukturi i mjesto primjene.
Slika 2.4 Četiri implementacijska modela [13]
2.3.1 Privatni oblak
To je oblak implementiran unutar organizacije. Infrastruktura može biti u vlasništvu
organizacije, ali i ne mora. Privatni oblak označava računalnu arhitekturu koja je zaštićena od
vanjskih utjecaja, tj. od pristupa sa Interneta. Dostupna je za korištenje od strane kompanije i
njezinih zaposlenika. Organizacije koje imaju sustave temeljene na privatnom oblaku koriste
u većoj mjeri virtualizacijska rješenja i fokusiraju se na distribuciju usluga iz svojih
podatkovnih centara. Prednost ovakvog rješenja je što organizacija zadržava potpunu kontrolu
nad organizacijskim podacima i definira vlastitu sigurnosnu politiku. [14]
2.3.2 Javni oblak
Javni ili eksterni oblak predstavlja računalstvo u oblaku u njegovom pravom smislu.
Traženi i potrebni resursi se dinamički dodjeljuju u obliku web servisa putem Interneta.
8
Pružatelji ovakvih usluga imaju jako velike podatkovne centre, posjeduju ogromne resurse
koje dinamički dodjeljuju krajnjim korisnicima. Zbog velikog broja korisnika, usluga javnog
oblaka postala je ekonomski isplativa što je omogućilo nižu cijenu usluge i optimizaciju
resursa. Neki od najpoznatijih sustava javnog oblaka su Amazon Web Services (AWS)
uključujući Amazon EC2 ili Amazon S3 (Simple Service Storage) i Microsoft Azure koji čine
IaaS ponudu. [14]
2.3.3 Zajednički oblak
Infrastruktura oblaka je podijeljena između više organizacija koje dijele zajedničke
interese poput poslovne politike, misije ili sigurnosti. Može biti u vlasništvu jedne ili više
organizacija u zajednici ili kod neke treće osobe. Isto se odnosi na upravljanje oblakom. [14]
2.3.4 Hibridni oblak
Predstavlja infrastrukturu koja je kombinacija dva ili više različitih oblaka koji u
stvarnosti ostaju jedinstveni entiteti, ali su povezani standardiziranom tehnologijom koja
omogućuje efikasan prijenos podataka ili aplikacija. Hibridni oblaci povezuju javne i privatne
modele oblaka. Proširivanjem privatnog oblaka resursima javnog oblaka postiže se veća
razina raspoloživosti kako bi se lakše izdržala velika opterećenja. [14]
2.4 Prednosti i nedostatci računalnog oblaka
Iz prethodnih rečenica ustanovili smo koristeći računalni oblak možemo smanjiti
troškove kupnje sklopovlja, programa i usluga. Na prvi pogled čini se prilično jednostavno i
jeftino, ali ne mora biti tako. Organizacije koje uzimaju usluge oblaka moraju biti jako
oprezne jer troškovi usluge mogu biti i jako skupi. Kao i svaka usluga, tako i usluga
računalstva u oblaku ima svoje prednosti i nedostatke.
2.4.1 Prednosti računalnog oblaka
Smanjenje troškova možemo navesti kao najvažniju osobinu računalnog oblaka.
Tehnologija računalstva u oblaku donosi uštedu vremena, novca i zaposlenika, a to su ciljevi
kojima teži svaka organizacija. S druge strane, organizacije koje su tek osnovane, u oblaku
imaju pravu oazu mogućnosti i to uz minimalna ulaganja. U trenutku kada se ukažu potreba
za novim resursima jednostavno skaliraju zahtjeve u oblaku i dokupe potrebnu količinu novih
resursa (procesorske snage, memorije, skladišnog prostora ili novih programskih usluga).
Osim tog troška, nema troškova poput ulaganja u infrastrukturu i servere već se i dalje plaća
9
onoliko koliko se potroši što organizacijama olakšava planiranje i procjenu troškova. Iz ovog
primjera možemo ustanoviti kako su najvažnije prednosti ove usluge „korištenje po potrebi“ i
„plati koliko koristiš“. Osim smanjenja troškova možemo navesti i fleksibilnost u tehničkom
smislu kao prednost. Organizacije oblakom dobivaju fleksibilnost koja im daje dodatne
mogućnosti, koje ne bi imali korištenjem vlastite infrastrukture. Tako se bez velikog napora
može točno odrediti koliko je potrebno snage ili prostora. Administratori ne trebaju brinuti
oko kupnje hardvera kako ne bi ostali bez potrebnih kapaciteta. Nadalje, administrator ne
treba brinuti o nadogradnjama ili zakrpama, kao i o novim verzijama aplikacija jer sustav to
sam odrađuje. [15]
U računalnom oblaku skalabilnost je jako bitna osobina. Aplikacije koje su u oblaku
imaju mogućnost da se prilagođavaju visini opterećenja sustava, a da pritom performanse
ostanu nepromijenjene. Za primjer možemo dati neku uslugu gdje nam je preko noći skočio
broj korisnika sa nekoliko stotina na nekoliko milijuna. Naš sustav za upravljanja bazom
podataka prethodno je konfiguriran za manji broj zahtjeva, ali ga možemo u par sekundi
podesiti tako da mu dodamo nekoliko procesora ili nekoliko GB. Ova fleksibilnost omogućuje
učinkovitije upravljanje resursima što stvara uštede organizaciji. Kada nam nešto treba to si
uzmemo, a kada više nema potrebe prestanemo koristiti.
2.4.2 Nedostatci računalnog oblaka
Najvažniji nedostatci računalnog oblaka su dostupnost, raspoloživost i sigurnost.
Pružatelji usluga ulažu velike napore kako bi pružili korisnicima tj. organizacijama sigurnost i
povjerenje. Organizacijama je to najkritičnija točka ove tehnologije. Osim toga, sigurnost
podataka predstavlja najveći problem i izazov pružateljima usluga. Davatelj usluge u oblaku
mora jamčiti sigurnost podataka. Sigurnosni rizici predstavljaju najveći problem od kojih ću
spomenuti najvažnije [15]:
Zlonamjerni korisnici
Krađa identiteta
Zaštita i privatnost
Ovisnost o pružatelju usluga
Gubitak i neovlašteno otkrivanje podataka
10
3. Microsoft Windows Azure platforma
U današnje vrijeme mnoge kompanije pružaju usluge koje su neki oblik računalstva u
oblaku. Već smo napomenuli kako su najistaknutije kompanije poput Microsoft-a, Amazon-a
i Google-a razvile svoje tipove platformi u oblaku pružajući korisnicima razne vrste usluga.
Za Microsoft možemo reći da je kompanija koja je, od pojave računalstva u oblaku, lider u IT
industriji te koja je u kratkom vremenu razvila niz servisa koji spadaju u sve tri vrste usluga
računalstava u oblaku: platforma kao servis, infrastruktura kao servis i softver kao servis. Bez
obzira koju vrstu usluge korisnik odabere današnji servisi ne mogu se zamisliti bez primjene
virtualizacije. Virtualizacija predstavlja temelj svakog modernog sustava pa tako i sustava
razvijenog od strane Microsofta koji danas u ponudi ima razvojna okruženja o oblaku, baze
podataka u oblaku pa i same operacijske sustave. Sa ekonomskog aspekta ovo je odlična
prilika za mala i srednja poduzeća jer nema početnih troškova investiranja u infrastrukturu,
održavanje i nadogradnju. Osim toga prednost je i već spomenuta usluga plaćanja gdje
korisnik plaća samo one servise koje koristi i koliko ih vremenski u minutama koristi.
Microsoft je svoje usluge za korisnike podijelio u 2 kategorije:
Office 365 – usluga Softver kao servis
Azure – (Windows server, SQL server i ostale aplikacije u oblaku) – usluga Platforma
kao servis
3.1 Office 365
Office 365 je skup alata i usluga namijenjenim krajnjem korisniku koje se nalaze u
oblaku. Ova usluga korisnicima pruža mogućnost korištenja e-pošte, razmjenu poruka,
dokumenata i informacija na portalu kao i uspostavljanje video konferencija. Office 365
prvenstveno donosi online veziju Worda, Excela, PowerPointa, Notesa, ali i Exchange
servera, SharePoint servera i Lync servera. Prednost ove usluge je ta što je sve na jednom
mjestu, nije potrebno kupovati opremu, voditi računa o licencama, backupu podataka i sl. Na
korisniku, tj. administratoru sustava je samo odgovornost da na što optimalniji način iskoristi
ovu uslugu. Ključ uspjeha Officea 365 je u tome što donosi integraciju aplikacija i podataka,
laku dostupnost i jednostavno upravljanje. Veliki korak prema naprijed napravljen je sa
integracijom SharePoint servera i Exchange servera gdje su korisnici u mogućnosti dijeliti
podatke, dokumente i ideje na lak i brz način sa kolegama gdje god da se nalaze. Osim pisanja
mailova postoji mogućnost razmjene kratkih tekstualnih poruka te glasovne i video
konferencije. Lync server koji je također uključen u Office 365 omogućuje povezivanje ljudi
11
ma gdje oni bili putem računala ili mobilnog uređaja. Lync sjedinjuje govorne pozive,
videopozive i razmjenu izravnih poruka kako bi se organizirali zajednički virtualni sastanci i
konferencije ili dijelili dokumenti, vodile bilješke i sl. Microsoft je odlučio Office 365
podijeliti na dvije grupe korisnika, Business i Enterprise te prema tim grupama kreirati po tri
paketa usluge Office 365. Business paket usluga započinje cijenom od 3.80€ do 9.60€
mjesečno i prilagođen je malim kompanijama i stoga ima ograničenje do 300 korisnika.
Enterprise paket namijenjen je srednjim i velikim kompanijama, cijena paketa kreće se od
6.10€ do 18.20€ mjesečno te omogućuje neograničen broj korisnika. Jedna od novosti je da
korisnik može preuzeti verziju za stolna računala i Office 365 koristiti i kad nije na mreži.
Prednosti koje navode iz Microsofta za ovu uslugu su [16]:
Zajamčena dostupnost tijekom 99,9% vremena
Profesionalna informatička web podrška i svakodnevna 24-satna telefonska podrška u
slučaju problema
Integracija sa Active Directory servisom radi lakšeg upravljanja sa korisnicima i
dozvolama
Vrhunska sigurnost podataka
Pay-as-you-go mogućnost koja daje korisniku da upravlja troškovima
3.2 Windows Azure
Windows Azure platforma je skup tehnologija temeljenih na oblaku pri čemu svaka
tehnologija osigurava specifičan skup servisa za korisnike. Grubo rečeno Azure platforma
osigurava nam razne servise poput držanja aplikacija u oblaku, izrade aplikacija, čuvanje
podataka, izrada virtualnih mašina, sustava za izvještavanje kao i administriranje sustava pri
čemu su u pozadini tehnologije poput Windows Servera ili SQL servera.
Windows Azure platforma dizajnirana je kako bi korisniku pružila jednostavnu, moćnu i
pouzdanu platformu za pokretanje aplikacija, kreiranje aplikacija, čuvanje podataka i ostalih
usluga, kako za običnog korisnika tako i za poslovne korisnike.
12
Slika 3.1 Windows Azure platforma [17]
Windows Azure platforma može se koristiti u razne svrhe:
Za smještaj web stranica na poslužitelje, upravljanje aplikacijama, čuvanje podataka u
Microsoftovim podatkovnim centrima
Nadogradnju web servisa novim funkcionalnostima
Izradu aplikacija, mijenjanje i distribuciju aplikacija za Web sa minimalnim resursima
Izradu aplikacije, testiranje aplikacija, traženje i ispravak grešaka u aplikacijama i
distribuciju web servisa
Smanjenje troškova potrebnih za izgradnju ili proširenje arhitekture i resursa
Smanjenje ukupnih troškova upravljanju IT-jem
Windows Azure pruža i infrastrukturu i platformu kao uslugu za distribuciju
aplikacija. Svaka aplikacija razvija se za određenu platformu koja uključuje operacijski
sustav, sustav za pohranu podataka i ostale servise. Korisnik koji razvija aplikacije za Azure
platformu koristi iste programske jezike i alate kao kada razvija klasične web aplikacije.
Potrebno je poznavati Visual Studio razvojno okruženje i .Net Framework. Sa Azure
platformom postavljanje i održavanje ovakvih aplikacija je pojednostavljeno i automatizirano.
Korištenje Azure platforme omogućuje programeru da se fokusira i posveti razvoju aplikacija
i time uštedi na vremena koje bi potrošio u slučaju administracije i konfiguracije određenih
servera i servisa.
Korisnik koji želi postaviti svoju aplikaciju na Azure platformu treba proći slijedeće korake:
Pristupiti Azure portalu preko svog web preglednika
Prijavit se sa svojim Microsoft računom
13
Odabrati servis koji želi koristiti
Poslati aplikaciju u Azure
Podesiti parametre poput memorije, instanci, prostora
Nakon toga Azure platforma će obaviti posao distribucije aplikacije, kreirati potrebnu
virtualnu mašinu za izvođenje, ali i voditi računa o radu aplikacije, greškama, nadogradnji
softvera, hardvera kao i o dostupnosti i sigurnosti.
Iako je Windows Azure Microsoftova platforma pa možemo pretpostaviti da je
otvorena samo za Microsoft proizvode, to nije istina. Microsoft sa Azure platformom
intenzivno promovira open source rješenja te je za sad podržao veliki broj tehnologija kao što
su PHP, Python, Ruby, Java, MySql te osim virtualnih mašina na MS serverima u ponudi ima
Linux VM koje zauzimaju preko 70% cijele ponude usluga. Azure možemo koristiti sa bilo
kojom gore navedenom tehnologijom iz razloga što je cijela platforma napravljana koristeći
određene standarde tj. korišteni su standardni protokoli HTTP i XML korištenjem REST
poziva.
REST (eng. Representation State Transfer) je način korištenja HTTP protokola. Roy
Fielding, jedan od prvotnih autora HTTP specifikacije upotrijebio je termin REST u svojoj
doktorskoj disertaciji. Ovakvim arhitektonskim stilom, svim resursima se pristupa preko
standardnog sučelja te se stoga koristi i u Windows Azure-u. Komponenta koja implementira
REST arhitekturu se naziva REST komponenta, a korisnik pristupa komponenti koristeći
URL. Korisniku je potreban samo URL i metoda za interpretiranje odgovora. Podložna
aplikacija i arhitektura sustava koje stoje iza URL nisu važne budući da se promjene u
podložnoj arhitekturi i implementaciji mogu promijeniti dokle god povratna informacija i
referenca URL ostanu iste.
Azure platforma sastoji se od četiri dijela:
Windows Azure App Fabric – mnoštvo servisa koji omogućuju povezivanje između
lokalnih i oblačnih aplikacija koristeći protokole HTTP, API
Windows Azure – Windows okruženje koje omogućuje pokretanje aplikacija i
pohranu podataka
SQL Azure – relacijska baza podataka koja se nalazi u oblaku
Windows Azure Marketplace – online servis za kupovinu aplikacija
14
Slika 3.2 Podjela Windows Azure platforme [18]
3.2.1 Windows Azure App Fabric
App Fabric (Slika 3.2) je skup usluga i servisa koji omogućavaju korisnicima
povezivanje i integraciju aplikacija na vlastitim serverima ili sa Microsoftovim i drugim
aplikacijama i uslugama na Internetu. Omogućava programerima da iz dijelova naprave
cjelinu tj. povežu više različitih aplikacija u jednu. Da bi aplikacija funkcionirale, programeri
se moraju osloniti na aplikacijsku infrastrukturu. Možemo zaključiti da Windows Azure
AppFabric osigurava infrastrukturu za izvršavanje aplikacija.
Windows Azure AppFabric čine tri servisa:
Access Control
Service Bus
Cashing
Access Control osigurava kontrolu pristupa pomoću Single Sign-on mehanizma
korištenjem standardnih metoda autorizacije već poznatih pružatelja usluga. To znači da
korisnik u svoju aplikaciju može na jednostavan način dodati autentifikacijsku mogućnost
prijave putem Google-a, LiveId, Facebook ili Active Directory servisa. Naravno, još uvijek
nije riješen problem uspostavljanja povjerenja kod pružatelja socijalnih identiteta. [18]
Sevice Bus je usluga koja pomaže programerima povezivanje aplikacija u oblaku s
onima van njega. Isto tako omogućuje spajanje aplikacija u oblaku sa SQL azure platformom
što daje mogućnost programerima razvoj sustava zasnovanog u cijelosti na oblaku. Service
Bus omogućuje premošćivanje web usluga iz oblaka u sigurnu lokalnu mrežu. Za primjer
možemo navesti aplikaciju koja je razvijana za oblak i nalazi se u oblaku, ali priča sa
15
servisom za obradu podataka koji se nalazi na našem internom serveru u firmi. Zbog
sigurnosne politike naše organizacije i zaštite podataka taj servis mora ostati unutar
organizacije. Service Bus u ovom slučaju omogućuje razmjenu poruka između ove dvije
aplikacije na način da preusmjerava poruke lokalne aplikacije i aplikacije u oblaku. [18]
Caching je jedan od najučinkovitijih načina povećanja performansi sustava koji često
pristupa podacima. Što su podaci lakše dostupni aplikacija radi brže. Pri tome svrha Azure
AppFabric Cachinga je upravo ta da osigura i poboljša performanse često pristupanim
podacima. Koristi se distribuirana pričuvna memorija koja se uvijek nalazi u radnoj memoriji
na serverima raspodijeljenim unutar podatkovnog centra u kojoj se stvara indeks podataka
koji najviše perzistiraju. [18]
3.2.2 Windows Azure
Windows Azure platformu čine tri glavne komponente [18]:
Compute service
Fabric
Storage service
Compute service je komponenta koja omogućava izvršavanje aplikacija tj.
programskog koda u oblaku. Primarna joj je namjena podrška aplikacijama kojima u isto
vrijeme pristupa veliki broj korisnika. Ova usluga je virtualni alat zasnovan na Windows
Serveru raznih hardverskih konfiguracija (Slika 3.3) koji se nalazi u podatkovnom centru
Microsofta.
Slika 3.3 Pregled konfiguracija u oblaku [19]
Skalabilnost ovakvog radnog okruženja ovisi o konfiguraciji koju korisnik odabere, a sama
aplikacija se može skalirati bez ograničenja. Isto tako usluga Azure Compute podržava .Net
framework i ostale razvojne pristupe kao npr. aplikacije pisane preko Visual Studija
korištenjem jezika kao sto su C#, VB.net, C++ i Java.
16
Fabric kao komponenta Windows Azure-a je virtualna softverska infrastruktura koja
obuhvaća brojne računalne resurse, a Windows Azure koristi Fabric kako bi osigurao
izgradnju zajedničkih blokova koji su potrebni za izradu robusnih aplikacija na razini
organizacije. Ti resursi uključuju procesore, memoriju, fizičko arhiviranje i periferne uređaje
koji su međusobno povezani. Svrha Fabric-a je izdvojiti fizičku računalnu arhitekturu od
programera te zbog toga se Fabric pojavljuje kao samostalan sustav bez obzira koliko se
stvarnih sustava koristi za izradu Fabric-a. Fabric infrastruktura omogućuje dinamičnu
skalabilnost koja je ključna za okruženje računalstva u oblaku i principa naplate plati koliko
koristiš. [18]
Storage service nije relacijska baza podataka, već komponenta koja nudi nekoliko
načina spremanje podataka. To su:
Table Storage
Blob Storage
Queue Storage
3.2.3 Table Storage
Table Storage ima namjenu spremanja velike količine nestrukturiranih podataka. To
nije relacijski sustav, nema relacije, ključeve, indekse i ne poznaje normalizaciju podataka. Za
Table Storage možemo reći da je „specifična tablica“ koja se koristi za opisivanje i grupiranje
entiteta. Za razliku od relacijskih baza, entiteti unutar tablice ne trebaju imati istu strukturu ili
shemu. To znači da unutar iste tablice možemo imati entitet koji sadržava svojstva proizvoda
zajedno sa entitetom koji sadržava svojstva koja opisuju mogućnosti proizvoda. Postoje neka
pravila o entitetima: svaki entitet može imati do 252 svojstva, ali veličina entiteta sa
svojstvima i vrijednostima ne može biti veća od 1MB. Nadalje, tablica u koju se spremaju
podaci podržava slijedeće tipove podataka: Int32, Int64, String (do 64KB), Doubel,
DateTime, Boolean, Byte. Svaki entitet treba sadržavati tri atributa, a to su par PartitionKey i
RowKey te Time Stamp. Pomoću PartitionKey-a možemo grupirati entitete i određivati
skalabilnost tablice, a RowKey je jedinstveni identifikator unutar particije za određeni entitet.
TimeStamp vrijednost pokazuje kada je zadnji put enititet mijenjan. Podaci u Table Storageu
mogu se koristiti pomoću REST API sučelja te ovakav pristup omogućava programerima
integraciju sa raznim uslugama bez obzira na platformu. Table Storage nije relacijski sustav i
kao takav ne sadrži indexe, no usprkos tome razlog za njegovo korištenje je u pravilu brzina i
obrada velikih količina nestrukturiranih podataka kao i povoljnija cijena obrade. Praktičnu
17
primjenu ima kada želimo dnevno spremati velike količine podataka, kao što su log datoteke
rada aplikacije ili nekog servisa. Osim cijene za korisnika je iznimno važno da ne postoji
fizičko ograničenje količine zapisa, tj. korisnik ima na raspolaganju onoliko koliko je zakupio
prostora na Azure računu, a maksimalno 200 TB. [18][20]
3.2.4 Blob Storage
Blob Storage ili Binary Large Objects je servis za dohvaćanje i spremanje podatka tj.
spremanje bilo kakvih binarnih objekata. Blob Storage nam služi za čuvanje nestrukturiranih
podataka koji ovisno o vrsti datoteke mogu imati i maksimalnu veličinu od 1TB.
Implementacija Blob Storage-a slična je datotečnom sustavu tvrdih diskova koje
koristimo u osobnim računalima, samo što se podaci ne zapisuju u sektore nego u kontejnere
koji su neka vrsta blokova. Svaki kontejner može imati više blobova isto kao što i tvrdi disk
više direktorija i u njemu određeni broj datoteka. Blob Storage po načinu korištenja dijeli se
na dvije skupine. Prva je organizirana u blokove blobova, a koriste se za pohranu podataka
kao što su streaming video datoteka koje mogu imati najveću veličinu do 200 GB. Druga vrsta
blobova su organizirane kao „stranice blobova“ (engl. Page Blobs) koje su optimizirane za
nasumično čitanje i pisanje podataka raznih tipova datoteka. Svaki Page Blob sastoji se od
jedne ili više 512 bitnih stranica podataka pa do maksimalne veličine od 1TB po datoteci.
Najpoznatiji primjer Page Bloba su virtualni diskovi koji se učitaju u instanucu te ga lokalni
operacijski sustav prepozna kao fizički medij. Zapravo riječ je o Blob Storage-u. Veličina
takve datoteke kreće se od 16MB do 1TB, a prepoznajemo ju po ekstenziji *.VHD.
3.2.5 Queue Storage
Queue Storage je servis za pohranu velikog broja poruka, a implementiran je u obliku
jednostavne strukture podataka tj. reda. U red možemo stavljati i vaditi poruke od 64kb, a red
može sadržavati milijune poruka i jedino ograničenje je veličina zakupljenog prostora koje je
ograničeno na 200 TB. Sve poruke koje stavljamo u red poprimaju vrijednost stringova.
Queue Storage servisu možemo pristupiti od bilo kuda jer je vidljiv kao REST servis i na taj
način ostvariti komunikaciju.
18
4. SQL Azure
SQL Azure je relacijska baza podataka, proširenje Microsoft SQL Servera, koja je
smještena i izvodi se na Azure oblaku. Ova baza podataka podržava istu T-SQL verziju SQL-
a kao postojeći SQL Server. Isto tako SQL Azure nudi standardna obilježja relacijskih baza
podataka kao što su okidači, pogledi, pohranjene procedure, funkcije i indeksi. Podacima koji
su pohranjeni u ovoj bazi podataka moguće je pristupiti, dodavati ili ih mijenjati. Održavanje
SQL azure platforme radi sam sustav, tako da se korisnik ne treba zamarati oko ažuriranja
sustava ili načina na koji radi backup podataka. Za običnog korisnika SQL azure platforma
označava sustav koji ima visoku raspoloživost, sigurnost i skalabilnost. SQL Azure pruža sve
usluge kao i SQL Server, samo u oblaku, pa ću istaknuti sustav izvještavanja u oblaku i
sustav sinkronizacije podataka koji čine cjelinu tj. podjelu SQL Azure usluge. Sql Azure
platforma se sastoji od tri dijela (Slika 4.1) [18]:
SQL Azure Database,
SQL Azure Reporting,
SQL Azure Data Sync.
Slika 4.1 Podjela SQL Azure platforme
[18]
4.1 SQL Azure Database
SQL Azure baza podataka vrlo je jednostavna za razumjeti jer pruža sve funkcije baze
podataka SQL Servera kao usluga u oblaku. Aplikacija koja koristi SQL Azure bazu podataka
može se koristiti na Windows Azure platformi ili u podatkovnom centru organizacije. Bez
obzira gdje se nalazi, aplikacija pristupa podacima uz pomoć TDS protokola (eng. Tabular
19
Data Stream). Ovaj protokol koristi i za pristup lokalnoj SQL bazi podataka te stoga
aplikacije SQL Azure baze podataka mogu koristiti bilo koji postojeći SQL klijent, a budući
da Azure baza podataka izgleda kao običan SQL server, može se koristiti alat poput SQL
Server Management Studio-a te ostalih komercijalnih alata. Svaki SQL Azure račun može
imati jedan ili više logičkih servera što omogućava bolju organizaciju podataka, a naplata ove
usluge je povoljnija jer to nisu stvarne instance SQL Servera. Svaki server može imati više
baza podataka od kojih svaka može imati najviše 50GB. Korisnik može slobodno koristiti više
baza podataka ako mu jedna iz nekog razloga nije dovoljna. Također se ima mogućnost izrade
trenutnih slika (engl. snaphshot) jedne SQL Azure baze podataka što omogućava jednostavni
backup mehanizam. Kako administracijom SQL Azura upravlja Microsoft, korisnik ne može
isključiti sustav ili napraviti nekakav zahvat na hardveru. Okruženje u kojem djeluje SQL
Azure je standardno, ali usluga koju dobije aplikacija je robusnija nego samostalna instanca
koju pruža SQL Server. Svi podaci u SQL Azure bazi podataka su replicirani na tri različite
geografske lokacije te je na taj način osigurana sigurnost podataka i visoka dostupnost u
slučaju neplaniranog pada sustava ili mreže. Cilj ovog sustava je korisniku pružiti jeftinu i
pouzdanu bazu podataka za sve vrste aplikacija. [18]
4.2 Azure Reporting
Spremanje podataka u SQL Azure bazu podataka je uobičajena radnja u svakoj
organizaciji. Međutim kada posjedujemo podatke želimo ih pročitati i na temelju njih donositi
razne poslovne odluke. Upravo to je zadaća Azure Reporting sustava koji je baziran na SQL
Server Reporting Services-u (SSRS) i pruža nam mogućnost izrade izvještaja koji su bazirani
na podacima iz oblaka. Postoje dva načina čitanja izvještaja. Prvi je pristup direktno sa portala
Sql Azure Reporting sustava ili za ostale direktno preko URL linka. Drugi način je koristiti
ReportViewer kontrole za Visual Studio IDE u kojem se mogu razvijati aplikacije i ugraditi
izvještajni sustav koji čita podatke u oblaku i ispisuje ih u aplikaciji. SQL Azure Reporting
sustav ne pruža sve mogućnosti kao SQL Server sustav, na primjer izrada „schedulera“ za
izradu izvještaja u određenim vremenskim intervalima. Bez obzira na neke nedostatke, ovaj
sustav je i dalje koristan i sastavni dio obitelji SQL Azura. [18]
4.3 SQL Azure Data Sync
Spremanje podataka u SQL Azure bazu podatka je dostupno svakoj aplikaciji s vezom
na Internet. No, ipak postoje česte situacije kada ima smisla držati kopiju podataka osim u
oblaku i na nekom drugom mjestu npr. organizacija mora imati kopiju istih informacija
20
lokalno radi osiguranja pristupa podacima u slučaju pada mreže. Za ovakve scenarije,
mogućnost sinkronizacije podataka u SQL Azure bazi podataka sa ostalim pohranjenim
podacima je vrlo važna. Microsoft je otišao korak dalje i olakšao posao programerima, stoga
više nema potrebe za pisanjem sinkronizacijskih aplikacija jer je implementirana
sinkronizacija podataka u SQL Azure platformu koristeći Microsoft Sync Framework. [18]
21
5. Migracija baze podataka na SQL Azure
U ovom poglavlju opisat ću način implementacije osmišljenog projekta migracije baze
podataka na SQL Azure platformu, tj. u oblak. Projekt se odnosi na web aplikaciju napisanu u
C# programskom jeziku koja koristi SQL server sustav za upravljanje bazama podataka.
5.1 Sustav za evidenciju diplomiranih studenata (SEDS)
Aplikacija imenom „Sustav za evidenciju diplomiranih studenata” (SEDS) ima cilj
olakšati rad Studentske referade i Arhiva fakulteta unutar ustanove. Ova aplikacija će
omogućiti upisivanje podataka o diplomiranom studentu preddiplomskog i diplomskog studija
putem korisničkog sučelja u bazu te samim tim omogućiti pretraživanje tih podataka. Svrha
ovog sustava je skratiti potrebno vrijeme za pronalaženje podataka o studentu te omogućiti
brže izdavanje dokumenata i pružanje raznih informacija. Predviđeni korisnici ove web
aplikacije podijeljeni su u 3 role:
Studentska referada – upisivanje i ažuriranje podataka o studentima te izdavanje
dokumenata
Arhiva fakulteta – upisivanje i ažuriranje podataka o studentima završenih studija
Uprava fakulteta – pretraživanje podataka i pregled generiranih izvještaja
Korisnici aplikacije upisuju podatke o studentu kroz web sučelje i spremaju u bazu podataka.
Neki od atributa koji opisuju studenta, a važan su dio ovog sustava: ime i prezime, oib, jmbg,
jmbag, broj diplome, vrsta diplome, vrsta studija, ustrojbena jedinica, tema diplomskog rada,
ime mentora i sl. Na temelju prikupljenih podataka zaposlenici studentske referade brže i
jednostavnije studentima daju povratne informacije. S druge strane Uprava fakulteta na
jednostavniji način može provjeriti određenog studenta tj. njegovu diplomu, datum
diplomiranja, naziv rada i ime mentora.
Na temelju prikupljenih korisničkih zahtjeva izrada aplikacije podijeljena je u 3 faze:
Izrada modela baze podataka
Pisanje programskog koda
Testiranje i implementacija
Sustav za upravljanje bazom podataka u mojem radu se temelji na Micorosft SQL Server
2012 sustavu, a nakon migracije na SQL Azure sustavu. Uz pomoć alata SQL Server
Managment Studio napravio sam relacijsku bazu i napunio ju sa potrebnim podacima. Za
pisanje programskog koda korišten je alat Visual Studio 2013. Aplikacija je napisana u C#
22
programskom jeziku, a glavna .Net tehnologija rada s podacima odrađena je kroz alat Entity
Framework. Predložak dizajna kojeg sam koristio je besplatna „Bootstrap“ tema.
Kako bih web aplikaciju instalirao i pustio u rad, potrebno je poslužiteljsko računalo (engl.
Server) na kojem će biti smještena web aplikacija kao i programska podrška bez koje
instalacija nije moguća.
Hardverska komponenta:
o Poslužitelj – Web server novije generacije na javnoj ili privatnoj IP adresi u
domenskom prostoru (DNS)
Baza podataka
o SQL Azure baza podataka
Instalirani softver
o OS Microsoft Windows 2008 R2 ili novije
o Internet Information Services (IIS), verzija 7.0 ili novije
o Microsoft .NET Framework Version 3.5 ili novije
Ostalo
o Omogućiti udaljeni pristup zbog potrebe servisa i održavanja
U ovom slučaju baza podataka neće biti instalirana na poslužitelju već ću koristiti SQL Azure
bazu podataka iz oblaka.
5.2 Dijagram slučajeva korištenja (engl. Use Case Diagram)
Ako upotrijebimo dijagram slučajeva korištenja, možemo vidjeti da je korisnik ovog
sustava studentska referada, Uprava i administrator. Sustav je osmišljen tako da se korisnik
prvo treba prijaviti u sustav kako bi mogao koristiti aplikaciju. Neke od aktivnosti nakon
prijave su upisivanje podataka o studentu, ažuriranje i brisanje kao i pretraživanje. Osim toga
postoji i katalog koji je šifrarnik te koji omogućuje vizualizaciju upisanih podataka u bazu.
(Slika 5.1)
23
Slika 5.1 Dijagram korištenja SEDS aplikacije
5.3 ERA model
Model entiteta, veza i atributa (EVA ili ERA model), kao metoda konceptualnog
modeliranja podataka, pokazuje koji sve entiteti sudjeluju u aplikaciji, na koji način su vezani
te od kojih se atributa sastoji pojedini entitet. Iz navedenog možemo zaključiti da izrada ERA
modela prethodi izradi baze podataka. Izrada ili dizajn baze podataka prema nekim autorima
je više umjetnost nego znanost. Rabuzin [1] navodi da „prilikom dizajniranja baze podataka
prvo treba (dobro) razmisliti koje podatke treba spremiti u bazu. Nije dobro odmah prionuti
poslu i kreirati tablice jer ćemo brzo doći do problema. Važno je na početku odrediti
entitete,njihove atribute te veze među njima, što ponekad nije jednostavno“. Prikazani ERA
model (Slika 5.2) odnosi se na promatranu bazu podataka aplikacije.
24
Slika 5.2 ERA model baze podataka
5.4 Microsoft Azure Portal i migracija baze podataka
Najjednostavniji način upravljanja oblakom je korištenje Windows Azure portala (Slika
5.3). Uz pomoć njega možemo odraditi sve potrebne radnje koje nam padnu na pamet. To
uključuje migraciju baze podataka od SEDS aplikacije u SQL Azure. U narednih par primjera
prikazat ću cijeli postupak kreiranja baze podataka i migracije baze podataka u oblak, čitanje
podataka i pisanje podataka u bazu.
Slika 5.3 Izgled Azure Management Portala
25
Želimo li napraviti novu SQL bazu podataka, na slici 5.3 vidimo ekran koji se odnosi na SQL
bazu podataka. Kliknemo li na poveznicu „CREATE A SQL DATABASE“ otvara nam se
prozor u kojem ćemo definirati svojstva naše baze podataka (Slika 5.4)
Slika 5.4 Koraci stvaranja SQL baze u oblaku
Nakon što smo upisali naziv baze, odabrali Azure pretplatnika i tip paketa ostaje nam da u
narednih nekoliko sekundi kreiramo instancu SQL Servera (Slika 5.5.)
Slika 5.5 Stvaranje SQL korisnika
26
Nakon što smo popunili tražena polja i potvrdili odabir, Windows Azure nam je kreirao SQL
bazu podataka koja se zove „SEDS“. Isto tako omogućen je udaljeni pristup na instancu SQL
servera preko ove poveznice: „ijygznh4nn.database.windows.net,1433“
Slika 5.6 Pogled na izrađenu instancu SQL servera
Kako bismo bili sigurni da li uistinu to radi pokrenuti ćemo SQL Management Studio i
pokušati se spojiti na našu instancu SQL servera u oblaku (Slika 5.7).
Slika 5.7 Ekran za spajanje na SQL Azure bazu podataka
27
Nakon uspješnog spajanja na SQL Azure bazu podataka (Slika 5.8) možemo jednom
naredbom provjeriti koji sustav se nalazi u pozadini upišemo li „select @@version“.
Slika 5.8 Pogled kroz SQL Management Studio
Nakon što smo se uvjerili da se nalazimo u oblaku možemo nastaviti sa procesom migracije
baze podataka na SQL Azure platformu. Taj postupak se obavlja kroz SQL Management
Studio u par koraka iz lokalne instance SQL servera (Slika 5.9).
Slika 5.9 Spajanje na lokalnu instancu SQL servera
28
Nakon spajanja na lokalnu instancu SQL servera potrebno je odabrati SEDS bazu za
migraciju na SQL Azure. Tu radnju odrađuje „čarobnjak“ za migraciju na SQL Azure. (Slika
5.10, 5.11).
Slika 5.10 Koraci migracije na SQL Azure
Na slici 5.10 vidi se postupak migracije u kojem iz padajućeg izbornika se odabire opcija
„Deploy Database to SQL Azure“ nakon čega se otvara se prozor u kojem se odabire
odredišni poslužitelj te ime nove baze podataka (Slika 5.11).
Slika 5.11 Odabir odredišnog poslužitelja
29
Odabirom poslužitelja i potvrdom s naredbom „Next“ SQL server započinje proces migracije
baze podataka sa lokalne instance na instancu u SQL Azure sustav. (Slika 5.12).
Slika 5.12 Migracijski proces uspješan
Nakon uspješne migracije SEDS baze podataka na SQL Azure platformu preostaje još samo
da u web aplikaciji promijenimo putanju prema novoj bazi podataka. SQL Azure sustav je
prilikom izrade instance SQL baze generirao podatke za povezivanje prilagođene za različite
programske jezike. Ovi podaci su potrebni radi ostvarivanja komunikacije sa SQL Azure
serverom (Slika 5.13).
30
Slika 5.13 Programski kod za pristup do baze podataka
Spajanje na SQL Azure iz web aplikacije zahtjeva ažuriranje Web.Config datoteke u Visual
Studio projektu sa potrebnim pristupnim parametrima uz pomoć kojih se ostvaruje veza s
bazom (Slika 5.14).
31
Slika 5.14 Izmjena parametara u Web.Config datoteci
Aplikacija sada „priča“ sa bazom podataka smještenom negdje u podatkovnom centru
Microsofta. Korisnik više ne mora brinuti o administraciji sustava već to za njega radi
Windows Azure. Na slici 5.15 može se vidjeti izgled SEDS baze podataka koju sam migrirao
sa lokalnog SQL servera na SQL Azure.
Ovim primjerom sam pokušao pobliže prikazati kako je postupak migracije s lokalnog servera
na server u oblaku zapravo vrlo jednostavan. U svega nekoliko minuta baza podataka je
spremna za korištenje. Nije bilo potrebe kupovati licenciranu bazu podataka, niti potrebe za
instalacijom i podešavanjem servera, to je sve odradio SQL Azure.
32
Slika 5.15 Prikaz Azure baze podataka kroz SQL Management Studio
Budući da je baza podataka prebačena na SQL Azure i promijenjen dio programskog koda uz
pomoć kojeg se spaja na bazu podataka, sada se može pokrenuti web aplikacija.
Upišemo li se u web preglednik adresa SEDS aplikacije (http://maestro.ffzg.hr/seds) otvara se
ekran za prijavu korisnika. Korisnik upisuje korisničko ime i lozinku te ga sustav pušta dalje.
U slučaju pogrešne lozinke ili korisničkog imena sustav upozorava o netočnim podacima za
prijavu (Slika 5.16).
33
Slika 5.16 Ekran za prijavu korisnika u sustav
Kada se korisnik uspješno prijavi u sustav otvara se radni prozor aplikacije za evidenciju
diplomiranih studenata. Aplikacija je vrlo pregledna kao što se može vidjeti na slici 5.17.
Slika 5.17 Izgled aplikacije za evidenciju diplomiranih studenata
Želimo li upisati podatke o novom studentu i spremiti podatke o njemu u bazu podataka to
možemo vidjeti na slici 5.18 gdje su podaci o studentu podijeljeni su u 3 kategorije: osnovni
podaci o studentu, upisani studiji i diplome. Podatke o studentu nismo upisali kroz jedan
34
ekran zbog preglednosti, jer jedan student može upisati više studija i može ostvariti više
diploma.
Slika 5.18 Upis podataka o studentu
Spomenuo sam kako sustav koristi veći broj korisnika sa različitim dozvolama. Na slici 5.19
se može vidjeti odabir i promjena uloge (engl. Role).
Slika 5.19 Promjena uloge korisnika
35
6. Zaključak
U ovom radu je mnogo govoreno o računalstvu u oblaku koje postaje sve popularnije
rješenje i u svojoj komercijalnoj domeni nezaobilazna alternativa za mala i srednja poduzeća.
Kompanije poput Microsofta, Amazona i Google-a puno su investirale zadnjih godina u
razvoj računalstva u oblaku i u usluge koje se u njemu izvode, tako da danas jednostavno sve
što poželimo možemo dobiti u oblaku ili smjestiti u oblak po prihvatljivoj cijeni. Kompanija
Google otišla je toliko daleko da je izdala cijeli operacijski sustav koji koristi skoro sve usluge
iz oblaka, popularno nazvan Chrome OS. Proizvođači prijenosnih računala poput Samsunga i
HP-a već su pustili takva računala u prodaju, ali nisu izazvala revoluciju među konzumentima
no našla su svoju publiku i svakim danom sve je više takvih korisnika. Iz ovih nekoliko
primjera možemo zaključiti da era računalstva u oblaku je već nastala iako toga nismo svjesni.
Pojavom pametnih telefona učinjen je veliki korak razvoja računalstva u oblaku. Osim
pozitivnih primjera ove usluge postoje i neki negativni aspekti kao što su tajnost i čuvanje
podataka od zlonamjernih korisnika. Kompanije mnogo ulažu u svoju infrastrukturu kako bi
zadobile povjerenje svojih korisnika, ali ni to ne sprečava neke države da prilagode svoje
zakone i u svakom trenutku zatraže uvid u nečije podatke.
Računalstvo u oblaku bila mi je inspiracija za ovaj rad u kojem sam pokazao kako na
jednostavan način svoje aplikacije i podatke prebaciti u oblak, a da pri tom ne treba
razmišljati o poslužiteljima, njihovim konfiguracijama, softveru, licencama i sl. Jednostavno u
par klikova mišem stvorimo okruženje u kojem će se nalaziti baza podataka, web aplikacija ili
virtualni poslužitelj za neku posebnu namjenu. U slučaju nedovoljnih sredstava za kupnju
računala, programske opreme i izrade infrastrukture,ovo je po mojem mišljenju najbolja i
najjeftinija alternativa.
36
7. Literatura
[1] Rabuzin K (2011) Uvod u SQL. Fakultet organizacije i informatike Varaždin: Čakovec
[2] Gartner (2009) Definition Cloud Computing. Preuzeto 3.prosinca 2014. s
http://blogs.gartner.com/daryl_plummer/2009/01/27/experts-define-cloud-computing-
can-we-get-a-little-definition-in-our-definitions/
[3] NIST (National Institute of Standards and Technology, Department of Commerce,
USA), Special Publication 800 - 145 (2011) Preuzeto 4. prosinca 2014. s
http://faculty.winthrop.edu/domanm/csci411/Handouts/NIST.pdf
[4] Bronzin T. (2010) Računalstvo u oblaku i mobilne aplikacije. Preuzeto 3. prosinca
2014. s http://www.tportal.hr/scitech/tehno/98379/Odrzan-sesti-Advanced-
Technology-Day.html
[5] A Walk In The Cloud. Preuzeto 5. Prosinca 2014. s http://smart-cloud-
computing.blogspot.com/2010/12/walk-in-cloud.html
[6] Voas J, Zhang J. ( 2009) Cloud computing: New wine or just a new bottle? Preuzeto 3.
Prosinca 2014. s http://studytm.files.wordpress.com/2014/03/hand-book-of-cloud-
computing.pdf
[7] The History of Cloud Computing. Preuzeto 3. prosinca 2014. s
https://greatcloudmigration.wordpress.com/2014/03/03/the-history-of-cloud-
computing/
[8] Chapman S (2014) PPM on the Cloud: Advantages of a Private Cloud. Preuzeto 5.
prosinca 2014. s http://www.pcubed.com/bulletins/ppm-cloud-advantages-private-
cloud
[9] Sullivan D (2014) IaaS Providers List: 2014 Comparison And Guide. Preuzeto 6.
prosinca 2014. s http://www.tomsitpro.com/articles/iaas-providers,1-1560.html
[10] Sullivan D (2014) PaaS Providers List: 2014 Comparison And Guide. Preuzeto 6.
prosinca 2014. s http://www.tomsitpro.com/articles/paas-providers,1-1517.html
[11] What is SaaS? Preuzeto 6. prosinca 2014. s http://www.interoute.com/what-saas
[12] Amazon Web Services. Preuzeto 3. prosinca 2014. s
http://en.wikipedia.org/wiki/Amazon_Web_Services
[13] Bronzin T, Stipić A (2012) Mobilna poslovna inteligencija i računarstvo u oblaku.
Preuzeto 5. prosinca 2014. s https://bib.irb.hr/datoteka/583887.CASE-
Mobilna_poslovna_inteligencija_i_racunarstvo_u_oblaku-ASTIPIC_TBRONZIN-
1_3.pdf
[14] What are Deployment Models in Cloud Computing? Preuzeto 4. prosinca 2014. s
http://www.cloud-competence-center.com/understanding/cloud-computing-
deployment-models/
[15] Carnet (2010) Cload Computing NCERT-PUBDOC-2010-03-293. Preuzeto 5.
prosinca 2014. s http://www.cert.hr/sites/default/files/NCERT-PUBDOC-2010-03-
293.pdf
37
[16] Office 365 za tvrtke. Preuzeto 5. prosinca 2014. s http://office.microsoft.com/hr-
hr/business/sto-je-office-365-FX102997580.aspx
[17] Introducition Windows Azure Platform. Preuzeto 5. prosinca 2014. s
https://galvesribeiro.wordpress.com/tag/windows-azure/
[18] Chapell D (2010) Intruduction The Windows Azure Platform. Preuzeto 6. prosinca
2014. s
http://www.davidchappell.com/writing/white_papers/Introducing_the_Windows_Azur
e_Platform,_v1.4--Chappell.pdf
[19] Choosing The Right Compute Virtual Machine Size (2013). Preuzeto 5.prosinca
2014. s https://alexandrebrisebois.wordpress.com/2013/01/05/choosing-the-right-
compute-virtual-machine-size/
[20] Wood M (2013) An Introduction to Windows Azure Table Storage. Preuzeto 6.
prosinca 2014. s https://www.simple-talk.com/cloud/cloud-data/an-introduction-to-
windows-azure-table-storage/
38
8. Popis slika
Slika 2.1 Faze razvoja računalstva u oblaku ........................................................................................... 3
Slika 2.2 Povijest računalstva u oblaku ................................................................................................... 4
Slika 2.3 Tri servisna modela .................................................................................................................. 5
Slika 2.4 Četiri implementacijska modela ............................................................................................... 7
Slika 3.1 Windows Azure platforma ..................................................................................................... 12
Slika 3.2 Podjela Windows Azure platforme ........................................................................................ 14
Slika 3.3 Pregled konfiguracija u oblaku .............................................................................................. 15
Slika 4.1 Podjela SQL Azure platforme ................................................................................................ 18
Slika 5.1 Dijagram korištenja SEDS aplikacije ..................................................................................... 23
Slika 5.2 ERA model baze podataka ..................................................................................................... 24
Slika 5.3 Izgled Azure Management Portala ......................................................................................... 24
Slika 5.4 Koraci stvaranja SQL baze u oblaku ...................................................................................... 25
Slika 5.5 Stvaranje SQL korisnika ........................................................................................................ 25
Slika 5.6 Pogled na izrađenu instancu SQL servera .............................................................................. 26
Slika 5.7 Ekran za spajanje na SQL Azure bazu podataka .................................................................... 26
Slika 5.8 Pogled kroz SQL Management Studio ................................................................................... 27
Slika 5.9 Spajanje na lokalnu instancu SQL servera ............................................................................. 27
Slika 5.10 Koraci migracije na SQL Azure ........................................................................................... 28
Slika 5.11 Odabir odredišnog poslužitelja ............................................................................................. 28
Slika 5.12 Migracijski proces uspješan ................................................................................................. 29
Slika 5.13 Programski kod za pristup do baze podataka ....................................................................... 30
Slika 5.14 Izmjena parametara u Web.Config datoteci ......................................................................... 31
Slika 5.15 Prikaz Azure baze podataka kroz SQL Management Studio ............................................... 32
Slika 5.16 Ekran za prijavu korisnika u sustav ...................................................................................... 33
Slika 5.17 Izgled aplikacije za evidenciju diplomiranih studenata ....................................................... 33
Slika 5.18 Upis podataka o studentu ..................................................................................................... 34
Slika 5.19 Promjena uloge korisnika ..................................................................................................... 34