42
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.

Ivan Grgić BAZE PODATAKA NA SQL AZURE PLATFORMI

Embed Size (px)

Citation preview

Page 1: Ivan Grgić BAZE PODATAKA NA SQL AZURE PLATFORMI

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.

Page 2: Ivan Grgić BAZE PODATAKA NA SQL AZURE PLATFORMI

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.

Page 3: Ivan Grgić BAZE PODATAKA NA SQL AZURE PLATFORMI

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

Page 4: Ivan Grgić BAZE PODATAKA NA SQL AZURE PLATFORMI

6. Zaključak ........................................................................................................................... 35

7. Literatura ........................................................................................................................... 36

8. Popis slika ......................................................................................................................... 38

Page 5: Ivan Grgić BAZE PODATAKA NA SQL AZURE PLATFORMI

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.

Page 6: Ivan Grgić BAZE PODATAKA NA SQL AZURE PLATFORMI

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.

Page 7: Ivan Grgić BAZE PODATAKA NA SQL AZURE PLATFORMI

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

Page 8: Ivan Grgić BAZE PODATAKA NA SQL AZURE PLATFORMI

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

Page 9: Ivan Grgić BAZE PODATAKA NA SQL AZURE PLATFORMI

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.

Page 10: Ivan Grgić BAZE PODATAKA NA SQL AZURE PLATFORMI

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

Page 11: Ivan Grgić BAZE PODATAKA NA SQL AZURE PLATFORMI

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.

Page 12: Ivan Grgić BAZE PODATAKA NA SQL AZURE PLATFORMI

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

Page 13: Ivan Grgić BAZE PODATAKA NA SQL AZURE PLATFORMI

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

Page 14: Ivan Grgić BAZE PODATAKA NA SQL AZURE PLATFORMI

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

Page 15: Ivan Grgić BAZE PODATAKA NA SQL AZURE PLATFORMI

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.

Page 16: Ivan Grgić BAZE PODATAKA NA SQL AZURE PLATFORMI

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

Page 17: Ivan Grgić BAZE PODATAKA NA SQL AZURE PLATFORMI

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

Page 18: Ivan Grgić BAZE PODATAKA NA SQL AZURE PLATFORMI

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

Page 19: Ivan Grgić BAZE PODATAKA NA SQL AZURE PLATFORMI

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.

Page 20: Ivan Grgić BAZE PODATAKA NA SQL AZURE PLATFORMI

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

Page 21: Ivan Grgić BAZE PODATAKA NA SQL AZURE PLATFORMI

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.

Page 22: Ivan Grgić BAZE PODATAKA NA SQL AZURE PLATFORMI

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

Page 23: Ivan Grgić BAZE PODATAKA NA SQL AZURE PLATFORMI

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

Page 24: Ivan Grgić BAZE PODATAKA NA SQL AZURE PLATFORMI

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]

Page 25: Ivan Grgić BAZE PODATAKA NA SQL AZURE PLATFORMI

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#

Page 26: Ivan Grgić BAZE PODATAKA NA SQL AZURE PLATFORMI

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)

Page 27: Ivan Grgić BAZE PODATAKA NA SQL AZURE PLATFORMI

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.

Page 28: Ivan Grgić BAZE PODATAKA NA SQL AZURE PLATFORMI

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

Page 29: Ivan Grgić BAZE PODATAKA NA SQL AZURE PLATFORMI

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

Page 30: Ivan Grgić BAZE PODATAKA NA SQL AZURE PLATFORMI

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

Page 31: Ivan Grgić BAZE PODATAKA NA SQL AZURE PLATFORMI

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

Page 32: Ivan Grgić BAZE PODATAKA NA SQL AZURE PLATFORMI

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

Page 33: Ivan Grgić BAZE PODATAKA NA SQL AZURE PLATFORMI

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).

Page 34: Ivan Grgić BAZE PODATAKA NA SQL AZURE PLATFORMI

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).

Page 35: Ivan Grgić BAZE PODATAKA NA SQL AZURE PLATFORMI

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.

Page 36: Ivan Grgić BAZE PODATAKA NA SQL AZURE PLATFORMI

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).

Page 37: Ivan Grgić BAZE PODATAKA NA SQL AZURE PLATFORMI

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

Page 38: Ivan Grgić BAZE PODATAKA NA SQL AZURE PLATFORMI

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

Page 39: Ivan Grgić BAZE PODATAKA NA SQL AZURE PLATFORMI

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.

Page 40: Ivan Grgić BAZE PODATAKA NA SQL AZURE PLATFORMI

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

Page 41: Ivan Grgić BAZE PODATAKA NA SQL AZURE PLATFORMI

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/

Page 42: Ivan Grgić BAZE PODATAKA NA SQL AZURE PLATFORMI

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