Professional Documents
Culture Documents
Blobs & Queues
Blobs & Queues
Student:
yyy
prof.dr.sc. G. M.
Queue i Blob
FSR
SADRAJ
1
UVOD ................................................................................................................................. 2
ZAKLJUAK ................................................................................................................... 17
PRILOZI ........................................................................................................................... 18
6.1 Kazalo slika i tablica.................................................................................................. 18
6.1.1
Kazalo slika ........................................................................................................ 18
6.2 Popis oznaka i kratica ................................................................................................ 18
LITERATURA ................................................................................................................. 20
Seminarski rad
2013/14
Queue i Blob
FSR
UVOD
Prvi put smo upoznati s Windows Azure-om na Microsoft NetWork konferenciji u veljai 2012.
godine, koja je odrana u Mostaru. Kroz razna predavanja imali smo priliku da se upoznamo sa
tada novim konceptom, te se i tada inilo da je to projekt koji e postati jako znaajan. Meutim
postojala je oteavajua okolnost, a to je da usprkos tome to je Microsoft nudio mogunost
probnog perioda, stanovnici Bosne i Hercegovine nisu mogli ostvariti tu pogodnost. Naalost
ova injenica se do danas nije promijenila, pa je zbog toga primjer koji je objanjen u nastavku
uraen samo u emulatoru koji nudi Visual Studio.
Primjer prikazuje dodavanje datoteka na blob, preciznije uitavanje slika odreenih formata na
blob. Takoer, mogue je kroz skalirane slike vidjeti koje slike postoje na blobu, te ih po potrebi
i izbrisati. Primjer je uraen u MVC tehnologiji, te emo u nastavku dodati slike koda, te izgled
aplikacije.
Naravno, prvo da kaemo neto openito o Windows Azure-u. To je internetski skalirana
platforma u oblaku koja je namijenjena za pruanje usluga u raunarstvu. Kreirana je od strane
Microsoft-a za izgradnju, upravljanje i implementaciju aplikacija i usluga kroz globalnu mreu
podatkovnih centara kojima upravlja Microsoft. Ukljuuje mnoge odvojene znaajke s
odgovarajuim razvojnim uslugama koje se mogu koristiti pojedinano ili zajedno.
Kroz ovaj rad emo ukratko objasniti dva koncepta koja se veu za pohranu podataka u
Windows Azure platformi, a to su blob-ovi (engl. blob = Binary Large Object) i redovi ekanja
(engl. queues). Iako kroz ovaj rad neemo detaljnije objanjavati druga dva naina pohrane,
vano je naglasiti da se radi o tablicama i pogonima (engl. drives).
Seminarski rad
2013/14
Queue i Blob
FSR
Azure red ekanja (engl. queue) je servis za pohranu velikog broja poruka kojima se moe
pristupiti s bilo koje lokacije preko autentificiranih poziva koristei HTTP ili HTTPS.
http://moj_racun.queue.core.windows.net/slike_za_download
Prijenos poruka od Azure Web uloge (engl. role) do Azure Worker uloge.
Seminarski rad
2013/14
Queue i Blob
-
FSR
Aplikacija treba pohraniti preko 5 GB koliine poruka u red ekanja, gdje poruke imaju
ivotni vijek manji od 7 dana.
Aplikacija eli pratiti napredak obrade poruka unutar poruke. To je korisno u sluaju
pada workera koji obrauje poruku. Naknadno, worker moe koristiti tu informaciju
kako bi nastavio gdje je stao prethodni worker.
Red jami isporuku poruka te osigurava da e se poruka obraditi barem jednom. Takoer, prua
i REST suelje, koje omoguuje aplikacijama napisanim u jezicima osim C# da pristupe redu
ekanja bilo kada s bilo kojeg mjesta preko interneta. Ova mogunost ini aplikacije u oblaku
kao i lokalne aplikacije vrlo jednostavne za integraciju, lako proirive te skalabilne.
Obino, za koritenje Azure reda ekanja kao sabirnice poruka, aplikacija treba koristiti i Azure
blob skladite kako bi se smanjilo koritenje memorije i poboljale performanse.
Zbog ove injenice, u nastavku (poglavlje 3) emo detaljnije opisati i Azure blob.
2.1
U nastavku emo opisati kako stvoriti red ekanja u oblaku, te kako staviti i dohvatiti poruke iz
queueva. Red ekanja se moe kreirati sa uloge radnika ili sa web uloge. Odgovornosti uloge
radnika se implementiraju kroz jednu funkciju i pozivaju se prilikom pokretanja aplikacije iz
Azure okruja.
Svi nazivi, odnosno imena u redu ekanja moraju imati samo alfanumerike znakove, te su
case-sensitive1.
Seminarski rad
2013/14
Queue i Blob
FSR
Prije nego to se moe izgraditi red ekanja, treba se instancirati QueueStorage. Konstruktor
QueueStorage-a kao parametar prihvaa objekt informacije o raunu. U razvojnom okruenju
podaci o raunu mogu biti programski uneseni ili hard-coded2 u konfiguracijskim datotekama.
Kao to je prikazano na slici 2-2, naziv korisnikog rauna dobije se iz ConnectionString-a
te se preko njega moe kreirati klijent reda ekanja. Sa slike 2-3 se moe iitati kako dobiti
referencu na red ekanja, te vrlo vana funkcija koja prilikom prvog koritenja kreira red
ekanja ukoliko ne postoji.
2.2
Hard-coded programming nain programiranja u kojemu su svi podaci upisani u source kod, umjesto da ih
unosi korisnik
3
Engl. Unicode Transformation Format 8 nain zapisa kodnih toaka u standardnom unicode pomou nizova
bajtova (8 bita)
2
Seminarski rad
2013/14
Queue i Blob
FSR
kako kreirati red ekanja i u sluaju kada ne postoji, sada je potrebno samo dodati kod, koji se
nalazi na slici 2-4, za dodavanje poruke u red ekanja.
2.2.2
Kako bi promijenili sadraj poruke prvo je potrebno pronai naziv korisnikog rauna, zatim
kreirati klijent reda ekanja i povui referencu na red ekanja (kao to je prikazano na slikama
2-2 i 2-3). Zatim se sadraj poruke moe promijeniti, pisanjem koda kao to je na slici 2-5.
2.2.3
Kod za brisanje reda ekanja je prilino jednostavan, prvo je potrebno pronai naziv
korisnikog rauna, zatim kreirati klijent reda ekanja i povui referencu na red ekanja (kao
to je prikazano na slikama 2-2 i 2-3).
Sve to je dalje potrebno je unijeti sljedei kod: queue.Delete( );.
Seminarski rad
2013/14
Queue i Blob
FSR
U najopenitijem smislu, pod pojmom blob obino se podrazumijeva Binary Large Object
ili u prijevodu veliki binarni objekt. Slino kao i kod baza podataka, gdje se pojam blob
podaci odnosi na podatke pohranjene u bazi podataka.
Azure je proirio ovaj pojam na generiku implementaciju pohrane koja omoguuje klijentskim
podacima bilo koje vrste da se uitaju na posluitelja za pohranu u binarnom formatu. Stoga
Azure blob skladite podataka moemo definirati kao servis za pohranu velike koliine
nestrukturiranih podataka kojima se moe pristupiti s bilo kojeg mjesta na svijetu putem HTTP
ili HTTPS protokola. Jedan blob moe imati veliinu koja prelazi 100 GB, dok jedan korisniki
raun moe imati 200 TB blobova.
Uobiajene svrhe koritenja blobova su:
-
Pohranjivanje podataka za analizu od strane lokalnih ili Windows Azure hosted usluga.
Blob skladite podataka se moe koristiti javno za prikazivanje podataka ili za internu pohranu
aplikacija.
Seminarski rad
2013/14
Queue i Blob
FSR
Na slici 2-1 prikazan je koncept strukture blob skladita u oblaku. Za pristup blob skladitu
potrebno je imati korisniki raun, preko kojega se moe stvoriti vie blob spremnika. Iako na
slici nije prikazano, jedan spremnik moe sadravati grupu blob skladita, koji opet mogu
sadravati vie datoteka ili mogu imati svoje metapodatke.
Blob skladitima se moe pristupati koristei sljedei URL format:
http://<korisnicki racun>.blob.core.windows.net/<spremnik>/<blob>
3.1
Svaki block moe biti razliite veliine sve dok ne prelazi veliinu od 4MB, dok
block blob moe maksimalno sadravati 50000 blokova. Sukladno tome, maksimalna
veliina block bloba je 200GB.
Pogodni za aplikacije koje spremaju velike datoteke kojima vie itatelja pristupa
istovremeno; kao to su slike, dokumenti, kod i streaming video.
Seminarski rad
2013/14
Queue i Blob
-
FSR
Pisanje u page blob se javlja in-place i odmah se preda (engl. commit) blobu.
Sva blob skladita podataka se nalaze u spremniku. U sluaju da ne postoji, spremnik je mogue
kreirati. Meutim, sve glavne funkcije emo objasniti u nastavku, kroz primjer.
Seminarski rad
2013/14
Queue i Blob
FSR
Kako smo u ovom radu opisali blob skladite, kroz sljedei primjer uitavanja slika na blob
ilustrirati emo rad s blob skladitem. Odluili smo se na koritenje MVC5 4 tehnologije pri
izradi primjera iz razloga to smo se ve prethodno upoznali s ovom tehnologijom kroz praksu.
4.1
Prije nego to smo poeli s radom na aplikaciji bilo je potrebno instalirati Azure SDK u Visual
Studio-u kako bi uope mogli raditi na ovoj aplikaciji. Nakon toga dovoljno je odabrati File ->
New -> Project, te pod Visual C# odabrati Cloud i nazvati projekt po elji (u naem sluaju:
DRS BlobUpload). Kako emo koristiti MVC 4 tehnologiju, potrebno je u novom prozoru
odabrati ASP.NET MVC 4 Web Role.
Engl. Model-View-Controller obrazac softverske arhitekture koji se, kao to i ime sugerira, sastoji od tri dijela.
Koristi se za odvajanje pojedinih dijelova aplikacije u komponente, ovisno o njihovoj namjeni.
5
Seminarski rad
2013/14
10
Queue i Blob
FSR
odabrati Windows Azure storage emulator. Tek sada moemo nastaviti raditi na naoj
aplikaciji.
Kako bi pozvali raun za pohranu i kreirali spremnik, kreirana je klasa i metoda u MVC projektu
kao to je prikazano na slici 4-2. Kako bi se kod mogao izvriti potrebno je ukljuiti tri
WindowsAzure biblioteke koje su takoer prikazane na slici. Takoer u kodu, podvueno
crveno, je naziv ConnectionString-a koji smo prethodno napravili. U kodu moemo primjetiti
if petlju u kojoj se specificira kreiranje spremnika, ukoliko on ve ne postoji.
Seminarski rad
2013/14
11
Queue i Blob
FSR
Seminarski rad
2013/14
12
Queue i Blob
FSR
Vratimo se na pogled Upload. Ovaj dio je najsliniji obinom html i css kodu koji smo radili
na prethodnim kolegijima, razlika se oituje u pozivanju metoda iz Controller-a, te u prijelazu
iz html/css koda u C# kod koji se vri dodavanjem znaka @. Detaljniji kod moemo vidjeti
na sljedeoj slici 4-5.
Inline css css u liniji; css koji se koristi u tagovima, a ne u <head> dijelu ili zasebnoj datoteci
Seminarski rad
2013/14
13
Queue i Blob
FSR
Ovaj efekt moemo bolje vidjeti na slici 4-8, gdje s lijeve strane moemo vidjeti dvije male
slike a na desnoj vidimo uveani prikaz slike koja se nalazi na blob skladitu.
Seminarski rad
2013/14
14
Queue i Blob
FSR
4.2
Iako u ovom radu nismo mogli praktino uraditi ovaj korak u razvoju aplikacije, samo emo
ukratko opisati to je potrebno uraditi kako bi objavili ovu aplikaciju, odnosno kako bi ju mogli
Seminarski rad
2013/14
15
Queue i Blob
FSR
koristiti za uitavanje slika na Windows Azure blob skladite podataka. Prvo to je potrebno
uraditi jeste kreirati Azure korisniki raun. To je mogue uraditi na web stranici Azure-a te
pratiti upute, s tim da odaberemo DataServices -> Storage -> QuickCreate. Nakon to zavrimo
s kreiranjem rauna, otvorit emo Manage Access Keys gdje moemo vidjeti podatke koji e
biti potrebni.
Sada je potrebno promijeniti ConnectionString, kao to smo prethodno uradili, s razlikom da
smo prethodno odabrali Azure emulator dok emo u ovom koraku odabrati Manually enter
credentials te emo popuniti prazna polja s podacima iz Manage Access Keys.
Potrebno je spojiti se sa Server Explorer-a na lijevoj strani, na Azure raun. Kliknemo lijevim
klikom mia na Windows Azure Storage te kliknemo na Add New Storage Account...
Nakon toga jo je potrebno kliknuti desnim klikom na MvcWebRole1 projekt te odabrati
Publish to Windows Azure, te e se pojaviti novi prozor u kojemu e biti potrebno odabrati
svoje podatke, te dalje slijediti upute upisujui potrebne podatke.
Seminarski rad
2013/14
16
Queue i Blob
FSR
ZAKLJUAK
Seminarski rad
2013/14
17
Queue i Blob
FSR
PRILOZI
6.1
Kazalo slika
6.2
BLOB
CSS
HTML
HTTP(S)
MVC
Model-View-Controller
SDK
URL
UTF-8
Seminarski rad
2013/14
18
Queue i Blob
FSR
Saetak
Windows Azure Queue je vrlo pogodna usluga za pohranu velike koliine poruka. Jedna queue
poruka moe biti do 64 KB veliine, a queue moe sadravati milijune poruka, sve dok se ne
dosegne kapacitet spremita za poruke to je ogranieno veliinom korisnikog rauna koje je
200 TB. Azure Blob spremite je servis za spremanje velike koliine nestruktuiranih podataka
kojima se takoer moe pristupiti, kao i redovima ekanja, preko HTTP ili HTTPS iz bilo kojeg
dijela Zemlje. Blobovi, veliine i do 100 GB, se uobiajeno koriste u svrhu: posluivanja slika
ili dokumenata direktno u pregledniku, pohranu datoteka za distribuirani pristup, streaming
video i audio datoteka, izvoenja sigurnog backup recovery, pohrane podataka za analizu koju
izvode neki od Azure hosted servisa i slino. Blob spremite se moe koristiti za pohranu
podataka privatno za unutarnje aplikacije ili javno odnosno izlaganje podataka na internetu.
Kroz primjer internet aplikacije koji je uraen u ASP.NET MVC 4, ilustrirano je uitvanje slika
na blob skladite.
7.2
Kljune rijei
Seminarski rad
2013/14
19
Queue i Blob
8
[1]
FSR
LITERATURA
Henry Li (2009). Introducing Windows Azure (67-112), Apress, 978-1-4302-2470-9,
New York
[*]
[2]
http://msdn.microsoft.com/en-us/library/azure/dn578280.aspx
[3]
http://msdn.microsoft.com/library/azure/gg433040
[4]
http://msdn.microsoft.com/en-us/library/hh767287.aspx
[5]
http://azure.microsoft.com/en-us/documentation/articles/storage-dotnet-how-to-useblobs/
[6]
http://azure.microsoft.com/en-us/documentation/articles/storage-dotnet-how-to-usequeues/
[7]
http://code.msdn.microsoft.com/windowsazure/How-To-Use-Azure-Blob-16882fe2
[8]
http://www.microsoft.com/en-us/news/cloud/index.html
Seminarski rad
2013/14
20