ANALIZA IN PRIMERJAVA OBLAČNIH STORITEV ZA RAZVOJ …

123
UNIVERZA V MARIBORU FAKULTETA ZA ELEKTROTEHNIKO, RAČUNALNIŠTVO IN INFORMATIKO Aleksander Damiš ANALIZA IN PRIMERJAVA OBLAČNIH STORITEV ZA RAZVOJ MOBILNIH ZALEDNIH STORITEV Magistrsko delo Maribor, november 2017

Transcript of ANALIZA IN PRIMERJAVA OBLAČNIH STORITEV ZA RAZVOJ …

UNIVERZA V MARIBORU

FAKULTETA ZA ELEKTROTEHNIKO,

RAČUNALNIŠTVO IN INFORMATIKO

Aleksander Damiš

ANALIZA IN PRIMERJAVA OBLAČNIH STORITEV ZA RAZVOJ MOBILNIH ZALEDNIH

STORITEV

Magistrsko delo

Maribor, november 2017

ANALIZA IN PRIMERJAVA OBLAČNIH STORITEV ZA

RAZVOJ MOBILNIH ZALEDNIH STORITEV Magistrsko delo

Študent: Aleksander Damiš

Študijski program: Študijski program 2. stopnje

Informatika in tehnologije komuniciranja

Smer: Informatika in tehnologije komuniciranja MAG

Mentor: doc. dr. Boštjan Šumak, univ. dipl. inž. rač. in inf.

Lektorica: Natalija Furman Pogladič, prof. slov.

I

II

Analiza in primerjava oblačnih storitev za razvoj mobilnih zalednih storitev

Ključne besede: BaaS, zaledne, mobilne, storitve, analiza

UDK: 621.397.7-026.26(043.2)

Povzetek

Magistrsko delo posega na področje uporabe zalednih oblačnih storitev na mobilnih

napravah, ki postajajo vedno bolj priljubljene, saj razvijalcem omogočajo hitro vzpostavitev,

povezljivost in enostavno upravljanje med mobilnimi aplikacijami in zaledjem, kjer se hranijo

podatki. V raziskovalnem delu smo predstavili koncept storitev računalništva v oblaku,

opazovali njen razvoj in prehod uporabe storitev na mobilne platforme ter možnosti njihove

uporabe. Podrobno smo analizirali in predstavili vidne ponudnike zalednih storitev ter

povzeli njihove prednosti in slabosti. Obravnavane ponudnike zalednih storitev smo

ovrednotili in ocenili po preferencah in potrebah razvijalca mobilnih aplikacij.

III

Analysis and comparison of cloud services for development of mobile backend services

Key words: BaaS, backend, mobile, services, analysis

UDK: 621.397.7-026.26(043.2)

Abstract

This master thesis concerns usage of backend cloud services on mobile phones, which are

recently gaining popularity among developers, mainly because of their rapid connection

establishment, connectivity and easy management of mobile applications. In our research,

we presented the concept of cloud services and its usage on different mobile platforms. We

also analyzed and described few of the most prominent providers of backend mobile

services. For the purpose of evaluating and assessing different providers of backend mobile

services, we developed comparative analysis, through which we summarized their cons

and pros based upon preferences and perspective of the developer.

IV

KAZALO

1 UVOD .............................................................................................................. 1

1.1 Opredelitev problema ............................................................................................. 2

1.2 Namen raziskovalnega dela ................................................................................... 3

1.3 Raziskovalna vprašanja, predvidene metode dela .................................................. 4

1.4 Sestava raziskovalnega dela .................................................................................. 5

2 RAČUNALNIŠTVO V OBLAKU ....................................................................... 6

2.1 Zgodovina .............................................................................................................. 6

2.2 Virtualizacija ........................................................................................................... 7

2.3 Modeli računalništva v oblaku ................................................................................ 9

3 UPORABA MOBILNIH ZALEDNIH REŠITEV V PRAKSI ............................... 12

3.1 Faza načrtovanja pregleda ................................................................................... 12

3.2 Faza izvajanja pregleda ....................................................................................... 15

3.3 Rezultati sistematičnega pregleda ........................................................................ 17

4 UPORABA ZALEDNIH STORITEV PRI RAZVOJU MOBILNIH APLIKACIJ .. 19

4.1 Implementacija, procesiranje in shranjevanje podatkov ........................................ 20

4.2 Povezljivost .......................................................................................................... 21

5 PREDSTAVITEV PONUDNIKOV ZALEDNIH STORITEV ............................. 24

5.1 Microsoft Azure .................................................................................................... 24

5.2 Google Firebase ................................................................................................... 26

V

5.3 Amazon AWS ....................................................................................................... 29

5.4 Backendless ......................................................................................................... 31

5.5 Kinvey .................................................................................................................. 34

6 NAČRT ZA PRIMERJAVO PONUDNIKOV ZALEDNIH STORITEV .............. 37

6.1 Izdelava namenske aplikacije ............................................................................... 37

6.2 Izdelava primerjalnega modela ............................................................................. 38

6.3 Integracija v Microsoft Azure ................................................................................ 41

6.4 Integracija v Google Firebase ............................................................................... 48

6.5 Integracija v Amazon AWS ................................................................................... 53

6.6 Integracija v Backendless ..................................................................................... 59

6.7 Integracija v Kinvey .............................................................................................. 66

7 KOMPARATIVNA ANALIZA PONUDNIKOV STORITEV BAAS .................... 74

7.1 Rezultati merjenja implementacije zalednih storitev.............................................. 74

7.2 Primerjalna analiza ponudnikov ............................................................................ 88

7.3 Rezultati in analiza primerjave .............................................................................. 98

8 SKLEP ........................................................................................................... 99

8.1 Omejitve magistrskega dela ............................................................................... 101

8.2 Predlogi za prihodnje delo .................................................................................. 101

VI

KAZALO SLIK

SLIKA 2.1: ARHITEKTURA OBLAKA S STALIŠČA VIRTUALIZACIJE [1]. ......................................... 8

SLIKA 2.2: NAJBOLJ ZNANI PONUDNIKI POSAMEZNIH MODELOV STORITEV V OBLAKU [21]........ 10

SLIKA 2.3: MODELI RAČUNALNIŠTVA V OBLAKU [22]. ............................................................ 11

SLIKA 4.1: SESTAVA ODJEMALEC – STREŽNIK APLIKACIJ [31]. .............................................. 20

SLIKA 4.2: PRIMERI UPORABE VMESNIKOV API GLEDE NA RAZLIČNE FORMATE [31]. .............. 22

SLIKA 6.1: PREDVIDEN RAZREDNI DIAGRAM NAŠE MOBILNE APLIKACIJE................................. 38

SLIKA 6.2: NADZORNA PLOŠČA PORTALA AZURE, IZ KATEREGA JE RAZVIDNO NOVO USTVARJENO

ZALEDJE NAMENSKE APLIKACIJE LIMEORDER. .............................................................. 42

SLIKA 6.3: VKLJUČITEV KNJIŽNIC RAZVOJNEGA OGRODJA AZURE MOBILE CLIENT SDK V

PROJEKT MOBILNE APLIKACIJE. ................................................................................... 43

SLIKA 6.4: IZDELAVA TABELE V SKRIPTNEM JEZIKU T-SQL. .................................................. 44

SLIKA 6.5: UPORABA NOTACIJ ZA TRANSFORMACIJO PODATKOV V PODATKOVNI BAZI

MICROSOFT SQL....................................................................................................... 45

SLIKA 6.6: AVTENTIFIKACIJO DO STORITEV AZURE. ............................................................. 46

SLIKA 6.7: IMPLEMENTACIJA SERIALIZACIJE ZA REFERENČNE ZAPISE V DRUGI PODATKOVNI

TABELI. ..................................................................................................................... 47

SLIKA 6.8: REGISTRACIJA IMPLEMENTIRANEGA VMESNIKA ZA PRETVORBO REFERENČNIH

ZAPISOV. ................................................................................................................... 47

SLIKA 6.9: DEL PROGRAMSKE KODE, KI SKRBI ZA NAKNADNO SINHRONIZACIJO PODATKOV. .... 48

SLIKA 6.10: NADZORNA PLOŠČA PORTALA FIREBASE, IZ KATEREGA JE RAZVIDNO NOVO

USTVARJENO ZALEDJE NAMENSKE APLIKACIJE LIMEORDER. .......................................... 49

SLIKA 6.11: VKLJUČITEV KNJIŽNIC RAZVOJNEGA OGRODJA FIREBASE SDK V PROJEKT MOBILNE

APLIKACIJE. ............................................................................................................... 50

SLIKA 6.12: SLIKA PRIKAZUJE NASTAVITEV PRAVIL DOSTOPA DO PODATKOVNE BAZE. ............ 51

SLIKA 6.13: INTERAKCIJA Z ZALEDNIMI STORITVAMI PONUDNIKA FIREBASE. ........................... 52

SLIKA 6.14: NADZORNA PLOŠČA PORTALA AWS, IZ KATEREGA JE RAZVIDNO NOVO USTVARJENO

ZALEDJE NAMENSKE APLIKACIJE LIMEORDER. .............................................................. 54

SLIKA 6.15: VKLJUČITEV RAZVOJNEGA OGRODJA AWS MOBILE SDK V MOBILNO APLIKACIJO. 55

SLIKA 6.16: AVTENTIFIKACIJA DO STORITEV AWS. .............................................................. 55

SLIKA 6.17: EKSPLICITNO DEFINIRANJE REGIJE PODATKOVNIH CENTROV. ............................. 56

SLIKA 6.18: UPORABA NOTACIJ ZA PODATKOVNO BAZO AMAZON DYNAMODB. ...................... 58

VII

SLIKA 6.19: NADZORNA PLOŠČA PORTALA BACKENDLESS, IZ KATEREGA JE RAZVIDNO NOVO

USTVARJENO ZALEDJE NAMENSKE APLIKACIJE LIMEORDER. .......................................... 61

SLIKA 6.20: AVTENTIFIKACIJO ZA UPORABO ZALEDNIH STORITEV BACKENDLESS. .................. 62

SLIKA 6.21: IZDELAVA ATRIBUTOV PODATKOVNE BAZE PREKO NAMENSKEGA ČAROVNIKA ZA

UPORABO ZALEDNIH STORITEV BACKENDLESS. ............................................................ 62

SLIKA 6.22: STRUKTURA OBJEKTA ZA SHRANJEVANJE V PODATKOVNO BAZO PONUDNIKA

BACKENDLESS. ......................................................................................................... 63

SLIKA 6.23: PROGRAMSKA KODA, IZ KATERE JE RAZVIDNA SERIALIZACIJA OBJEKTOV ZNOTRAJ

PRIPADAJOČIH FUNKCIJ IN UPORABA ASINHRONEGA OPRAVILA. ..................................... 65

SLIKA 6.24: NADZORNA PLOŠČA PORTALA KINVEY. ............................................................. 67

SLIKA 6.25: AVTENTIFIKACIJA DO STORITEV KINVEY. ........................................................... 68

SLIKA 6.26: UPORABA NOTACIJ ZA TRANSFORMACIJO PODATKOV. ........................................ 69

SLIKA 6.27: POTREBNA PRIJAVA UPORABNIKA PRED INTERAKCIJO Z ZALEDNIMI STORITVAMI

PONUDNIKA KINVEY. .................................................................................................. 70

SLIKA 6.28: PROGRAMSKA KODA, IZ KATERE JE RAZVIDNA UPORABA POSLUŠALCEV PRI KLICU

ZALEDNIH STORITEV KINVEY. ...................................................................................... 72

SLIKA 6.29: DEL PROGRAMSKE KODE ZA DELO V NAČINU BREZ POVEZAVE. ........................... 73

SLIKA 7.1: GRAF REZULTATA ZA MERJENJE POSAMEZNIH OPERACIJ PRI INTEGRACIJI

MICROSOFT AZURE. .................................................................................................. 77

SLIKA 7.2: GRAF REZULTATA MERJENJA POSAMEZNIH OPERACIJ PRI INTEGRACIJI GOOGLE

FIREBASE. ................................................................................................................. 80

SLIKA 7.3: GRAF REZULTATA MERJENJA POSAMEZNIH OPERACIJ PRI INTEGRACIJI AMAZON

AWS. ....................................................................................................................... 82

SLIKA 7.4: GRAF REZULTATA MERJENJA POSAMEZNIH OPERACIJ PRI INTEGRACIJI

BACKENDLESS. ......................................................................................................... 85

SLIKA 7.5: GRAF REZULTATA MERJENJA POSAMEZNIH OPERACIJ PRI INTEGRACIJI

BACKENDLESS. ......................................................................................................... 88

SLIKA 7.6: GRAF REZULTATOV MERJENJA HITROSTI DOSTOPA DO PODATKOV. ....................... 89

SLIKA 7.7: GRAF REZULTATOV TOČKOVANJA PONUDBE OBRAVNAVANIH PONUDNIKOV. .......... 97

VIII

KAZALO TABEL

TABELA 1.1: UPORABLJENE RAZISKOVALNE METODE IN METODE ANALIZE. .............................. 4

TABELA 3.1: SEZNAM UPORABLJENIH DIGITALNIH KNJIŽNIC. ................................................. 12

TABELA 3.2: SESTAVA KLJUČNIH BESED IN NJIHOVIH SOPOMENK. ......................................... 13

TABELA 3.3: SESTAVLJENI ISKALNI NIZI. .............................................................................. 13

TABELA 3.4: VKLJUČITVENI IN IZKLJUČITVENI KRITERIJI ZA OPREDELITEV USTREZNE

LITERATURE. ............................................................................................................. 14

TABELA 3.5: REZULTATI ZA IZVEDBO PREGLEDA LITERATURE. .............................................. 15

TABELA 3.6: ŠTEVILO RELEVANTNIH IN IZBRANIH VIROV. ...................................................... 16

TABELA 3.7: IZBRANA RAZISKOVALNA DELA. ....................................................................... 16

TABELA 5.1: CENIK ZA UPORABO STORITEV PLATFORME MICROSOFT AZURE [39]. ................ 26

TABELA 5.2: CENIK ZA UPORABO STORITEV PLATFORME FIREBASE [42]. ............................... 28

TABELA 5.3: ZAJETE MOBILNE STORITVE ZNOTRAJ OMEJENE BREZPLAČNE RAZLIŽICE AWS

FREE TIER [49]. ......................................................................................................... 31

TABELA 5.4: CENIK UPORABE STORITEV PLATFORME BACKENDLESS [52]. ............................ 34

TABELA 5.5: CENIK ZA UPORABO STORITEV PLATFORME KINVEY [59]. .................................. 36

TABELA 6.1: NAČRT ZA IZVEDBO PRIMERJALNE PROCEDURE 1. ............................................ 39

TABELA 6.2: NAČRT ZA IZVEDBO PRIMERJALNE PROCEDURE 2. ............................................ 39

TABELA 6.3: NAČRT ZA IZVEDBO PRIMERJALNE PROCEDURE 3. ............................................ 40

TABELA 7.1: REZULTATI MERJENJA INTEGRACIJE STORITEV MICROSOFT AZURE PO KORAKIH ZA

PRIMERJALNO PROCEDURO 1. .................................................................................... 75

TABELA 7.2: REZULTATI MERJENJA INTEGRACIJE STORITEV MICROSOFT AZURE PO KORAKIH ZA

PRIMERJALNO PROCEDURO 2. .................................................................................... 75

TABELA 7.3: REZULTATI MERJENJA INTEGRACIJE STORITEV MICROSOFT AZURE PO KORAKIH ZA

PRIMERJALNO PROCEDURO 3. .................................................................................... 75

TABELA 7.4: REZULTATI MERJENJA POSAMEZNIH OPERACIJ PRI INTEGRACIJI MICROSOFT

AZURE. ..................................................................................................................... 76

TABELA 7.5: REZULTATI MERJENJA INTEGRACIJE STORITEV GOOGLE FIREBASE PO KORAKIH ZA

PRIMERJALNO PROCEDURO 1. .................................................................................... 78

TABELA 7.6: REZULTATI MERJENJA INTEGRACIJE STORITEV GOOGLE FIREBASE PO KORAKIH ZA

PRIMERJALNO PROCEDURO 2. .................................................................................... 78

TABELA 7.7: REZULTATI MERJENJA INTEGRACIJE STORITEV GOOGLE FIREBASE PO KORAKIH ZA

PRIMERJALNO PROCEDURO 3. .................................................................................... 78

TABELA 7.8: REZULTATI MERJENJA POSAMEZNIH OPERACIJ PRI INTEGRACIJI FIREBASE. ........ 79

IX

TABELA 7.9: REZULTATI MERJENJA INTEGRACIJE STORITEV AMAZON AWS PO KORAKIH ZA

PRIMERJALNO PROCEDURO 1. .................................................................................... 80

TABELA 7.10: REZULTATI MERJENJA INTEGRACIJE STORITEV AMAZON AWS PO KORAKIH ZA

PRIMERJALNO PROCEDURO 2. .................................................................................... 81

TABELA 7.11: REZULTATI MERJENJA INTEGRACIJE STORITEV AMAZON AWS PO KORAKIH ZA

PRIMERJALNO PROCEDURO 3. .................................................................................... 81

TABELA 7.12: REZULTATI MERJENJA POSAMEZNIH OPERACIJ PRI INTEGRACIJI AWS MOBILE. . 82

TABELA 7.13: REZULTATI MERJENJA INTEGRACIJE STORITEV BACKENDLESS PO KORAKIH ZA

PRIMERJALNO PROCEDURO 1. .................................................................................... 83

TABELA 7.14: REZULTATI MERJENJA INTEGRACIJE STORITEV BACKENDLESS PO KORAKIH ZA

PRIMERJALNO PROCEDURO 2. .................................................................................... 83

TABELA 7.15: REZULTATI MERJENJA INTEGRACIJE STORITEV BACKENDLESS PO KORAKIH ZA

PRIMERJALNO PROCEDURO 3. .................................................................................... 84

TABELA 7.16: REZULTATI MERJENJA POSAMEZNIH OPERACIJ PRI INTEGRACIJI BACKENDLESS. 84

TABELA 7.17: REZULTATI MERJENJA INTEGRACIJE STORITEV KINVEY PO KORAKIH ZA

PRIMERJALNO PROCEDURO 1. .................................................................................... 86

TABELA 7.18: REZULTATI MERJENJA INTEGRACIJE STORITEV KINVEY PO KORAKIH ZA

PRIMERJALNO PROCEDURO 2. .................................................................................... 86

TABELA 7.19: REZULTATI MERJENJA INTEGRACIJE STORITEV KINVEY PO KORAKIH ZA

PRIMERJALNO PROCEDURO 3. .................................................................................... 86

TABELA 7.20: REZULTATI MERJENJA POSAMEZNIH OPERACIJ PRI INTEGRACIJI KINVEY. .......... 87

TABELA 7.21: REZULTATI MERJENJA HITROSTI DOSTOPA DO PODATKOV. .............................. 89

TABELA 7.22: REZULTATI STATISTIČNIH TESTOV NA PODLAGI HITROSTI. ................................ 91

TABELA 7.23: REZULTATI ZA VELIKOSTI PODATKOVNIH BAZ. ................................................. 93

TABELA 7.24: PRIMERJAVA ZAJETIH STORITEV OBRAVNAVANIH PONUDNIKOV ZALEDNIH

STORITEV. ................................................................................................................. 94

TABELA 7.25: RAZPOREDITEV TOČK GLEDE NA OBRAVNAVANE KRITERIJE. ............................ 95

TABELA 7.26: REZULTATI TOČKOVANJA PONUDBE OBRAVNAVANIH PONUDNIKOV. .................. 97

X

SEZNAM KRATIC

NIST – National institute of Standards and Technology, U.S. Department of Commerce

VMM – Virtual Machine Manager

EC2 – Elastic Compute cloud

SaaS – Software as a Service

PaaS – Platform as a Service

IaaS – Infrastructure as a Service

BaaS – Backend as a Service

MBaaS – Mobile Backend as a Service

API – Application Program Interface

SDK – Software Development Kit

AWS – Amazon Web Service

SQL – Structured Query Language

SSMS – Microsoft SQL Server Management Studio

Analiza in primerjava oblačnih storitev za razvoj mobilnih zalednih storitev

1

1 UVOD

Magistrsko delo posega na področje uporabe zalednih oblačnih storitev in dostopa do njih

iz mobilnih naprav. V zadnjih letih se je uporaba storitev računalništva v oblaku zelo razširila

in se nevidno integrirala v vsakdanje delo z računalnikom [1]. Ob vsakodnevnem napredku

tehnologij, vezanih na pametne mobilne naprave, se je pojavila potreba po novi vrsti

podpornega sistema kot storitev, na kar se znotraj našega raziskovalnega dela sklicujemo

kot zaledne oblačne storitve oziroma zaledne storitve. Mobilni podporni sistem kot storitev

oziroma mobilne zaledne storitve (angl. »Mobile backend as a service«) so model oblačnih

storitev, ki temelji tako na modelu platforme v smislu storitve (angl. »Platform as a service«).

Mobilni podporni sistem kot storitev tako predstavlja dostop do podatkov, dostop do

določenih funkcionalnosti ali drugih informacij z uporabo mobilne aplikacije. Uporaba

zalednih mobilnih storitev predstavlja spletnim ali mobilnim razvijalcem aplikacij možnost

povezovanja razvitih aplikacij preko izpostavljenega aplikacijskega vmesnika API (angl.

»Application Program Interface«) ali knjižnice SDK (angl. »Software Development Kit«) z

zalednimi storitvami [2] [3]. Te se v večini primerov uporabljajo za shranjevanje podatkov,

vezanih na uporabo aplikacije, njihova uporaba pa prav tako omogoča operiranje z

uporabniki, pošiljanje potisnih sporočil, integracijo s socialnimi omrežji, geolokacijske

storitve, biometrične analize, validacije in drugo.

Podporni sistem kot storitev oziroma zaledne storitve (BaaS – angl. »Backend as a

Service«) so iz dneva v dan popularnejše tudi zato, ker omogočajo razvijalcem hitro

vzpostavitev, povezljivost in enostavno upravljanje med zaledjem in njihovo aplikacijo.

Zaledne storitve omogočajo razvijalcem mobilnih aplikacij popolno abstrakcijo na strežniški

strani. Razvijalci lahko tako izbirajo med potrebnimi gradniki in uporabijo zgolj del

programske kode, s katero se želijo na zaledno storitev povezati. Omenjena abstrakcija

omogoča razvijalcem, da se lahko namesto upravljanja in razvoja zaledne infrastrukture

osredotočijo na razvoj in uveljavitev bogate uporabniške izkušnje [4]. Pomembnost mobilnih

zalednih storitev s stališča integracije se je pokazala že ob sami uvedbi storitev leta 2010,

ko so pri ponudniku obravnavanih storitev Parse beležili 40-odstotno tedensko rast prometa

[5]. Na priljubljenost uporabe mobilnih zalednih storitev kaže tudi podatek analitične

organizacije Gartner, ki navaja, da je v letu 2016 več kot 40 odstotkov mobilnih aplikacij na

svetovnem trgu uporabljalo zaledne mobilne storitve [6]. Analitična organizacija Gartner

predvideva, da bo uporaba zalednih ali drugih podobnih storitev do leta 2020 popolnoma

Analiza in primerjava oblačnih storitev za razvoj mobilnih zalednih storitev

2

izpodrinila tradicionalne pristope razvoja mobilnih aplikacij [7]. Uporaba mobilnih zalednih

storitev je zelo razširjena tudi v rešitvah večjih organizacij ali podjetjih. Gartner namreč

ocenjuje, da bo do leta 2020 več kot 75 odstotkov večjih organizacij upravljalo s hibridno

infrastrukturo, ki bo omogočala uporabo mobilnih zalednih storitev enega ponudnika ali več

različnih ponudnikov [8].

1.1 Opredelitev problema

Na podlagi pregleda obstoječe literature, ki je v našem raziskovalnem delu vezana na razvoj

in možnosti uporabe zalednih storitev, smo ugotovili, da z uporabo oblačnih mobilnih

storitev znotraj mobilnih aplikacij razvijalci dobijo veliko število dodatnih možnosti za

izdelavo kakovostne in vsestranske mobilne aplikacije, ki ni vezana in dosegljiva zgolj na

eni mobilni napravi. Uporaba zalednih storitev je vsestranska; zaledne storitve se tako

uporabljajo v različnih mobilnih igrah (shranjevanje podatkov, dosežki, lestvice, upravljanje

virtualne ekonomije in podobno). Enako se uporabljajo v športnih aplikacijah za beleženje

aktivnosti kakor tudi v aplikacijah za socialna omrežja (sinhronizacija, objave uporabnikov,

sporočila in podobno).

Kljub razširjeni uporabi in širokim naborom ponudnikov omenjenih storitev pa se razvijalci

pogosto srečujejo s težavo pri izbiri ponudnika in potrebnim naborom funkcionalnosti, ki so

potrebne za delovanje zastavljene mobilne aplikacije. Storitve ponudnikov se razlikujejo

zlasti po cenovnih modelih, naboru funkcionalnosti, možnosti dodatne implementacije

lastnih modulov, možnosti povezljivosti in možnosti delovanja v načinu brez povezave.

Večina prepoznavnih ponudnikov ponuja brezplačen model uporabe z omejenim naborom

funkcionalnosti dostopa do storitev, pomnilnega prostora, arhiviranja podatkov in podobno.

Vendar v večini primerov mobilnih aplikacij omejena raba virov in storitev ne zadostuje, tako

da imajo ponudniki zalednih storitev tudi možnost dodatnega zakupa procesorskih virov,

pomnilnega prostora ali storitev samih. Obenem ima večina ponudnikov obravnavanih

storitev na voljo že v naprej pripravljene pakete uporabe, ki se razlikujejo v ceni. Ti paketi

imajo glede na ceno primerno veliko število zakupljenih virov, število hkratnih dostopov do

storitev in podobno. Vsi vidni ponudniki še imajo možnost uporabe cenovne strategije

»freemium«, ki brezplačno ponuja omejen nabor virov in funkcionalnosti, glede na potrebo

razvoja mobilne aplikacije pa razvijalci lahko zgolj zakupijo potrebne dodatne vire ali jih

plačajo po porabi. Osrednja problematika našega raziskovalnega dela se tako nanaša na

Analiza in primerjava oblačnih storitev za razvoj mobilnih zalednih storitev

3

težavnost pri odločanju pravilne izbire ponudnika in potrebnega nabora funkcionalnosti, do

katerih želijo razvijalci dostopati preko svojih mobilnih aplikacij. Prav tako smo znotraj

magistrskega dela želeli poudariti preostale možnosti, težave in pridobitve, ki jih za

razvijalce prinaša uporaba zalednih mobilnih storitev.

1.2 Namen raziskovalnega dela

Namen raziskovalnega dela je podrobneje predstaviti delovanje zalednih storitev za

mobilne naprave, obenem pa raziskati dobre prakse in modele implementacije, ki so vezani

na integracijo s storitvami BaaS izbranih ponudnikov. V magistrskem delu je zajeta

obravnava izbranih ponudnikov zalednih storitev, pri kateri smo predstavili njihove

funkcionalnosti in možnosti uporabe ter integracije s knjižnicami ali aplikacijskimi vmesniki.

V magistrskem delu smo analitično predstavili prednosti in slabosti obravnavanih

ponudnikov, ki jih te prinašajo razvijalcem in posledično tudi končnim uporabnikom tovrstnih

mobilnih aplikacij.

V praktičnemu delu raziskave smo se osredotočili na načine integracije zalednih storitev v

namensko razvito mobilno rešitev, kjer so nas zanimali načini implementacije povezljivosti

do storitev kot tudi možnosti ter zmogljivosti prikazovanja, shranjevanja, sinhronizacije,

procesiranja in dostopa do podatkov. Po analizi omenjenih ponudnikov in razlik v naboru

funkcionalnosti smo izdelali primerjalni model, ki na podlagi preferenc razvijalca pomaga pri

izbiri najprimernejšega ponudnika obravnavanih zalednih storitev; namen izdelanega

modela bo tako pripomogel k lažjemu in hitrejšemu razvoju mobilne aplikacije. Cilji

raziskovalnega dela so bili:

pregled relevantne literature s področja raziskovanja;

pregled raziskovalnih modelov in ključnih spremenljivk, vključenih v izbrane

raziskave;

podrobneje predstaviti ponudnike storitev BaaS za mobilne naprave;

analitično predstaviti prednosti in slabosti obravnavanih ponudnikov;

izdelava testne mobilne aplikacije z omejenim naborom funkcionalnosti, na podlagi

katere smo lahko empirično ovrednotili zmogljivosti in možnosti uporabe storitev za

izbranih ponudnikov;

Analiza in primerjava oblačnih storitev za razvoj mobilnih zalednih storitev

4

izdelava primerjalnega modela na podlagi vhodnih preferenc z vidika razvijalca in

podaja primerjalne analize med različnimi vrstami storitev izbranih ponudnikov

mobilnih zalednih storitev.

1.3 Raziskovalna vprašanja, predvidene metode dela

Z namenom doseganja ciljev raziskovalnega dela smo v procesu načrtovanja pregleda

splošnega pregleda literature, ki je podrobneje predstavljena v nadaljevanju magistrske

naloge, podali naslednja raziskovalna vprašanja:

RV1: Kako se razlikuje arhitektura mobilnih aplikacij, ki uporabljajo zaledne storitve

BaaS?

RV2: Kateri poslovni model uporabe zalednih storitev BaaS je najbolj razširjen?

RV3: Kateri ponudnik zalednih storitev BaaS ponuja največji nabor funkcionalnosti?

RV4: Kateri ponudnik zalednih storitev BaaS je najugodnejši?

RV5: Kateri ponudniki zalednih storitev BaaS omogočajo delo brez povezave?

RV6: Kateri ponudnik zalednih storitev BaaS ponuja najhitrejši dostop in

procesiranje podatkov?

Na podlagi zastavljenih raziskovalnih vprašanj smo pred raziskavo predvideli raziskovalne

metode in uporabljene metode za analizo pridobljenih podatkov. Tabela 1.1 prikazuje

uporabljene metode raziskovanja, s katerimi smo odgovorili na raziskovalna vprašanja.

Tabela 1.1: Uporabljene raziskovalne metode in metode analize.

Raziskovalno vprašanje

Uporabljene raziskovalne metode Uporabljene metode analize

RV1 Metoda proučevanja primerov Deskripcija, kompilacija, statistična metoda

RV2 Metoda proučevanja primerov Komparativna metoda, statistična metoda

RV3 Metoda proučevanja primerov, eksperiment

Klasifikacija, deskripcija

RV4 Metoda proučevanja primerov Statistična metoda

RV5 Metoda proučevanja primerov,

eksperiment

Komparativna metoda, statistična metoda

RV6 Eksperiment Metoda merjenja

Analiza in primerjava oblačnih storitev za razvoj mobilnih zalednih storitev

5

1.4 Sestava raziskovalnega dela

Magistrsko delo je sestavljeno iz osmih tematskih sklopov. Po uvodu smo v drugem

poglavju podali kratko analizo in pregled stanja na področju storitev BaaS. Navedli smo tudi

dosežke drugih avtorjev, ki so izhodišče za magistrsko delo. V tretjem sklopu smo

predstavili koncept računalništva v oblaku, se dotaknili zgodovine razvoja in opisali pojem

virtualizacije. Omenili smo trenutno stanje uporabe oblačnih storitev v Sloveniji. V četrtem

poglavju smo podrobneje opredelili koncept storitev BaaS za mobilno platformo ter

empirično predstavili koncepte implementacije, povezljivosti, procesiranja in shranjevanja

podatkov. V petem delu smo natančneje predstavili večje število najbolj prepoznavnih

ponudnikov na področju storitev BaaS za mobilne rešitve. V nadaljevanju smo predstavili

proces integracije posameznega ponudnika v izdelano mobilno aplikacijo, nato smo podali

primerjavo posameznih ponudnikov z vidika uporabe razvijalca ter analitično ovrednotili

predhodno predstavljene ponudnike. V istem poglavju smo predstavili rezultate analitičnega

modela. V zadnjem, osmem poglavju, smo navedli spoznanja in odgovorili na raziskovalna

vprašanja. Podrobno so navedene omejitve, težave pri procesu raziskovalnega dela,

sklepna beseda in predlogi za prihodnje delo.

Analiza in primerjava oblačnih storitev za razvoj mobilnih zalednih storitev

6

2 RAČUNALNIŠTVO V OBLAKU

Računalništvo v oblaku (angl. »Cloud computing«) predstavlja tehnologijo, ki z uporabo

medmrežja in oddaljenih strežnikov zagotavlja uporabo aplikacij ter omogoča nemoten

pretok izračunljivih podatkov in informacij. Koncept implementacije računalništva v oblaku

omogoča končnim uporabnikom uporabo aplikacij, nemoten dostop do podatkov in njihovo

obdelavo preko medmrežne dostopne točke brez potrebe po namestitvi ali ročnem prenosu

podatkov na lokacijo dostopa končnega uporabnika [1].

Zaradi takojšnjega dostopa do podatkov je razširjenost te tehnologije vsak dan večja. Iz

enega od podatkov analitične hiše Gartner je pokazano, da je za storitve po modelu

infrastrukture kot storitev predvidevana 29,1-odstotna skupna stopnja rasti do leta 2019 [6].

Razširjenost tehnologije se kaže tudi v številu ponudnikov in številu rešitev, ki temeljijo na

konceptu računalništva v oblaku tako za poslovno kakor za osebno rabo. Tehnologija je na

področju poslovne rabe razširjena zlasti zaradi visoke operativnosti in razpoložljivosti

obravnavanih podatkov v zameno za majhne stroške infrastrukture [9]. Računalništvo v

oblaku tako omogoča podjetjem, da njihove aplikacije z manj vzdrževanja, manj

infrastrukture in manjšim tveganjem obvladljivosti tečejo hitreje, želeni podatki pa na voljo

v želenem trenutku [10]. Struktura podjetja IT se lahko zato hitreje spreminja in prilagaja

poslovnim potrebam, težnjam trga, njihovim strankam in uporabnikom [11].

Razvoj in uveljavitev računalništva v oblaku sta pripomogla k izboljšanju računalniške

učinkovitosti in zmanjševanju stroškov za končnega uporabnika [12] [13] .

2.1 Zgodovina

Prvo omembo termina računalništva v oblaku lahko zasledimo v literaturi Ramnatha

Chellappe iz leta 1997, čeprav konceptualni začetki pojma računalništva v oblaku segajo v

60. leta prejšnjega stoletja, ko je John McCarhty zapisal, da bi lahko bilo računalništvo

nekega dne organizirano kot javni pripomoček [14] [15]. Nato se je v 90. letih pojavila ideja

računalniških mrež; koncept povezave naprav v električne mreže, s katerimi bi omogočili

enostaven dostop do razprostranih računalniških virov. Eno od prvih uveljavljenih podjetij

na področju računalništva v oblaku je bilo podjetje Salesforce.com, ki je leta 1999

predstavilo koncept uporabe naprednih poslovnih rešitev preko spletne strani. Naslednji

večji produkt na področju računalništva v oblaku je bil Amazon Web Service, ki ga je leta

Analiza in primerjava oblačnih storitev za razvoj mobilnih zalednih storitev

7

2002 predstavilo podjetja Amazon. Vsakdanjo uporabnost za širšo populacijo za koncept

računalništva v oblaku pa je leta 2006 doprinesel produkt Google Docs. Istega leta je bil

predstavljen tudi produkt Amazon EC2, tj. komercialna spletna storitev, ki omogoča

manjšim podjetjem in posameznikom najem računalniških virov za poganjanje internih

aplikacij, produktov in rešitev. Temu trendu so sledila še druga velika podjetja in korporacije

[14]. Podjetji Google in IBM sta bila med prvimi, ki sta na podlagi ponujanja storitev

računalništva v oblaku začeli sodelovati z različnimi inštituti in univerzami širom ZDA.

Koncept računalništva v oblaku je dosegel nov nivo leta 2008, ko se pojavile prve

odprtokodne programske rešitve podjetja Eucalyptus Systems in OpenNebula, namenjene

za izdelavo zasebnih oblakov. Leta 2009 je podjetje Microsoft predstavilo njihovo storitev

Microsoft Azure, ki je danes eno od vodilnih na področju uporabe storitev računalništva v

oblaku [14].

Uporaba oblačnih storitev in število ponudnikov se še vedno veča iz dneva v dan, enako so

se oblačne storitve in uporabnost z leti razvijale tudi na območju Slovenije. V Sloveniji danes

vsakodnevno uporablja oblačne storitve 17 odstotkov srednjih ali malih podjetij [16].

Obstajajo tudi slovenska podjetja, ki nudijo tako svoje poslovne kakor zasebne rešitve,

vezane na storitve računalništva v oblaku. Med številnimi domačimi ponudniki sta najbolj

prepoznavni podjetji Virtu, ki nudi rešitev Flip IT za manjša in velika podjetja, ki za svoje

poslovanje potrebujejo primerno urejen informacijski sistem, ter podjetje SAOP

računalništvo, ki ponuja spletni računovodski program miniMAX, namenjen malim

podjetjem in računovodskim servisom [17].

2.2 Virtualizacija

Virtualizacija predstavlja ključno komponento za zagotavljanje storitev shranjevanja in

računalniških virov. Virtualizacija je skupek povezanih strojnih naprav in računalniških virov

kot neodvisno plast strojne opreme na strežniku ali delovni postaji. Na Slika 2.1 vidimo

shemo arhitekture oblačne infrastrukture, s stališča virtualizacije. Virtualizacija temelji na

tehnologiji VMM ali virtualnem skrbniku, ki upravlja in predstavlja skupek računalniških virov

kljub ločeni dejanski fizični lokaciji oziroma infrastrukturi. Z virtualizacijo zagotovimo tudi

skalabilnost. Na podlagi zagotavljanja performančnih zahtev podjetja lahko vire vedno

dodajamo ali odvzemamo.

Analiza in primerjava oblačnih storitev za razvoj mobilnih zalednih storitev

8

Slika 2.1: Arhitektura oblaka s stališča virtualizacije [1].

Kot je razvidno iz Slike 2.1, računalništvo v oblaku omogoča končnim uporabnikom dostop

do storitev kjer koli skozi različne vrste medijev. Obdelani viri ali podatki za končnega

uporabnika niso več prikazani kot lokalno shranjena entiteta, temveč so dosegljivi na

zahtevo uporabnika na terminalu, prenosnem računalniku, mobilnem telefonu ali drugi

napravi dostopa. Uporabniki lahko te informacije uporabljajo, zadržijo in varno delijo.

Upravljajo lahko opravila, ki niso mogoča na enem računalniku. Sloj upravljanja z uporabniki

(angl. »User managent layer«) predstavlja interakcijsko povezavo med uporabnikom in

oblakom, preko katere se vršita dostop in identifikacija uporabnika. Storitveni sloj (angl.

»Service layer«) preoblikuje različne oblačne vire v zahtevano obliko storitev (pomnilnik,

SaaS, PaaS) in jo nato prikaže končnemu uporabniku, medtem ko sloj virtualnih virov (angl.

»Virtual resources layer«) povezuje različne virtualne vire in jih predaja zgornjim slojem.

Naslednji sloj upravlja z dejanskim procesom virtualizacije in skrbi za združevanje

računalniških virov, ki so infrastrukturno in fizično ločeni. Zadnji sloj predstavlja fizične vire

(angl. »Physical resource layer«) in zagotavlja temelje celotne oblačne platforme, enako

zagotavlja proces za fizično shranjevanje podatkov. Uveljavitev virtualizacije omogoča

uporabnikom oblačnih storitev, da lahko brezskrbno operirajo z zahtevanimi viri, brez

potrebe po vzdrževanju ali optimizaciji fizične lokacije računalniških virov.

Analiza in primerjava oblačnih storitev za razvoj mobilnih zalednih storitev

9

Ugotovimo, da se pri pregledu literature in pri uporabi terminologije v realnem svetu večkrat

mešata pojma računalništva v oblaku in virtualizacije [18] [19].

Oba pojma predstavljata skupek povezanih računalniških virov, vendar obstaja razlika v

načinu dostopa do podatkov in virov. V primeru uporabe oblaka se dostop do virov vrši s

storitvijo na zahtevo preko medmrežja. Pri tem pa pojavi tudi nov koncept zasebnega

oblaka, pri čemer virtualizacija, ki predstavlja skupek povezanih strojnih naprav,

posamezne vire prikazujejo in uporabljajo kot celoto, le da v tem primeru medija pretoka

informacij ne predstavlja medmrežje, ampak lokalno omrežje ali skupek lokalnih povezav

organizacije ali podjetja [18] [20].

2.3 Modeli računalništva v oblaku

Pojem računalništva v oblaku so na inštitutu NIST opisali s petimi ključnimi karakteristikami,

ki ga sestavljajo ga trije modeli storitev in štirje razvojni modeli. Na Slika 2.3 je prikazan

skupen diagram modelov računalništva v oblaku. Ključne karakteristike računalništva v

oblaku, ki so jedro ideje računalništva v oblaku, kot ga poznamo danes, so:

samostojna storitev na zahtevo (angl. »On demand self-service«);

vseprisotnost omrežnega dostopa (angl. »Ubiquitous network access«);

združevanje virov neodvisno od lokacije (angl. »Location independent resource

pooling«);

hitra elastičnost (angl. »Rapid elasticity«);

plačilo za uporabo (angl. »Pay per use«).

Modeli storitev so definirani kot:

Programska oprema kot storitev (storitev SaaS) – uporabnik pri uporabi tovrstnih

storitev brezskrbno razpolaga s podatki in funkcionalnostmi storitev, medtem ko ima

ponudnik popoln nadzor nad upravljanjem, vzdrževanjem in varnostjo. Najbolj

razširjeni rešitvi storitev SaaS sta Gmail in Salesforce CRM (na Slika 2.2 so

prikazani preostali ponudniki omenjenih storitev).

Platforma kot storitev (storitev PaaS) – platforma nudi uporabnikom operiranje na

vseh nivojih delovanja želene aplikacije. Vidni ponudniki storitev PaaS so Google

Apps Engine in Microsoft Windows Azure.

Analiza in primerjava oblačnih storitev za razvoj mobilnih zalednih storitev

10

Infrastruktura kot storitev (storitev IaaS) – ponudniki storitev proti plačilu zagotavljajo

virtualne računalnike, pomnilni prostor, infrastrukturne komponente za odjemalce in

drugo. Pionir in najbolj razširjen ponudnik na tem področju je podjetje Amazon.

Slika 2.2: Najbolj znani ponudniki posameznih modelov storitev v oblaku [21].

Razvojni modeli so:

zasebni oblak – infrastrukturo oblaka upravlja zgolj podjetje, organizacije ali

posameznik;

skupinski oblak – infrastruktura je deljena znotraj različnih skupnosti, organizacij ter

koncernov in je primerna za deljenje virov, informacij in drugo;

javni oblak – infrastruktura oblaka je dostopna širši množici uporabnikov ali večjim

industrijskim skupinam, praviloma v lasti ponudnika teh omenjenih storitev;

hibridni oblak – infrastruktura je sestavljena iz dveh ali več različnih oblakov (drugih

modelov – zasebnih ali javnih) in omogoča prenos na podlagi standardizacije entitet.

Analiza in primerjava oblačnih storitev za razvoj mobilnih zalednih storitev

11

Slika 2.3: Modeli računalništva v oblaku [22].

Ob vsestranskem razvoju mobilnih naprav pa čedalje večji delež uporabnosti na podlagi

modela storitev predstavljajo tudi mobilne zaledne rešitve, ki so podrobneje opisane v

naslednjem poglavju [23] [24].

Analiza in primerjava oblačnih storitev za razvoj mobilnih zalednih storitev

12

3 UPORABA MOBILNIH ZALEDNIH REŠITEV V PRAKSI

V sklopu magistrskega dela smo opravili pregled obstoječe literature, stanja na področju

računalništva v oblaku in uporabe mobilnih zalednih rešitev. Proučili smo koncept

računalništva v oblaku in koncept delovanja storitev BaaS za mobilne rešitve, zmogljivosti

storitev, njihove omejitve in možnosti uporabe, ki so vezane tako na razvijalca kakor tudi na

končnega uporabnika. Za pregled literature smo uporabili empirično raziskovalno metodo

sistematičnega pregleda literature, s katero smo povzeli in združili obstoječa dela na

področju mobilnih zalednih storitev. Z omenjeno raziskovalno metodo smo lahko odgovorili

na prvo (RV1) in drugo (RV2) raziskovalno vprašanje. Metodo sistematičnega pregleda

literature sestavljajo naslednje faze:

faza načrtovanja pregleda – definicija raziskovalnih vprašanj, izdelava strategije

iskanja virov, postavitev iskalnega niza in identificiranje vira podatkov;

faza izvajanja pregleda – predstavitev rezultatov, pridobljenih v procesu glede na

zasnovane kriterije in vire;

faza poročanja o pregledu – na podlagi prikazanih rezultatov pregleda obstoječe

literature smo pridobili osnovo za iskanje odgovorov na raziskovalna vprašanja.

3.1 Faza načrtovanja pregleda

V sklopu prve faze sistematičnega pregleda literature smo podali raziskovalna vprašanja,

iskalni niz in definirali podatkovne vire. Pri tej fazi smo določili kriterije za izbiro primarnih

raziskav in strategijo iskanja obstoječih del drugih avtorjev, pri čemer smo se sklicevali na

raziskovalna vprašanja, navedena v uvodu raziskovalnega dela.

Za pregled obstoječe literature in dosežkov drugih avtorjev smo uporabili različne digitalne

vire. Ti so navedeni v Tabeli 3.1M, kjer je prikazan seznam uporabljenih digitalnih knjižnic

skupaj z njihovimi povezavami.

Tabela 3.1: Seznam uporabljenih digitalnih knjižnic.

Digitalna knjižnica Spletni naslov

Science Direct www.sciencedirect.com

Springer http://www.springer.com/

Analiza in primerjava oblačnih storitev za razvoj mobilnih zalednih storitev

13

Google Scholar https://scholar.google.si/

IEEE http://ieeexplore.ieee.org/

Z namenom, da bi odgovorili na zastavljena raziskovalna vprašanja, smo za iskanje

literature po omenjenih virih, opredelili besede, ki sovpadajo S tematiko našega

raziskovalnega dela. To so:

BaaS;

mobile;

provider;

implementation;

api;

sdk;

access;

development.

Na podlagi izbranih besed smo določili glavne besede in njihove pomožne sopomenke. V

Tabela 3.2 je prikazana izdelava ključnih besed in pomožnih besed, na podlagi katerih smo

lahko definirali iskalne nize.

Tabela 3.2: Sestava ključnih besed in njihovih sopomenk.

Ključne besede Pomožne besede

BaaS Backend, service

MBaaS Mobile backend

Provider /

Implementation API, SDK, access

Development Integration

Na podlagi ključnih besed smo izdelali iskalne nize. V Tabela 3.3 so ponazorjeni sestavljeni

iskalni nizi skupaj z obrazloženim namenom.

Tabela 3.3: Sestavljeni iskalni nizi.

Iskalni niz Namen

1 mobile BaaS backend providers service

difference

Pridobiti podatke o različnih

ponudnikih zalednih storitev in

Analiza in primerjava oblačnih storitev za razvoj mobilnih zalednih storitev

14

razlikah med njihovim delovanjem in

ponudbo

2 mobile BaaS backend implementation

access api sdk

Pridobiti podatke o načinih

delovanja, poslovnih modelih

uporabe in implementaciji

3 development mobile BaaS application Pridobiti podatke o razvoju

aplikacije z vključenimi zalednimi

storitvami

Kot je razvidno iz Tabele 3.3, smo iz prvega iskalnega niza pridobili podatke o ponudnikih

mobilnih zalednih storitev in njihovih razlikah. Z drugim iskalnim nizom smo pridobili podatke

o poslovnih modelih in načinih delovanja, medtem ko smo s tretjim iskalnim nizom pridobili

podatke o načinu razvoja mobilne aplikacije in možnostmi integracije zalednih storitev v

mobilni aplikaciji. S pomočjo sestavljenih iskalnih virov smo pridobili skupek potencialnih

virov, ki so podrobneje predstavljeni v naslednjem podpoglavju. Z namenom pridobitve

ustrezne in relevantne aktualne literature smo pridobljene vire klasificirali po vnaprej

definiranih vključevalnih oziroma izključevalnih kriterijih. V Tabela 3.4 lahko vidimo nabor

sestavljenih iskalnih nizov.

Tabela 3.4: Vključitveni in izključitveni kriteriji za opredelitev ustrezne literature.

Vključitveni

kriteriji iskanja

Omejitve Samo literatura s področja računalništva

v oblaku, storitev BaaS in mobilnih

tehnologij.

Samo knjige in znanstveni članki z

izjemo poljudnoznanstvenih člankov na

spletu.

Samo literatura, vezana na mobilno.

Časovno

obdobje

Od leta 2010 dalje.

Vključene

raziskovalne

metode

študija literature;

klasifikacija;

deskripcija;

kompilacija;

komparativna metoda;

statistična metoda;

metoda proučevanja primerov;

Analiza in primerjava oblačnih storitev za razvoj mobilnih zalednih storitev

15

metoda merjenja.

Odgovori na

raziskovalna

vprašanja

Vsebina virov mora v celoti ali deloma odgovoriti

na eno ali več zastavljenih raziskovalnih

vprašanj.

Izključitveni

kriteriji iskanja

Poljudne revije;

nepreverjena vsebina;

v celoti nedostopni viri in viri, ki niso napisani v angleškem

ali slovenskem jeziku.

Kot je razvidno iz Tabele 3.4, smo pridobljene vire omejili zgolj na literaturo s področja

računalništva v oblaku, storitev BaaS in drugih mobilnih tehnologij. Pri tem smo izključili

članke iz poljudnih revij ali druge vsebine, ki niso preverjene ali niso napisane v angleškem

oziroma slovenskem jeziku. Enako smo opredelili časovno obdobje po letu 2010, kajti pred

tem se tehnologija zalednih storitev za mobilne naprave še ni uporabljala.

3.2 Faza izvajanja pregleda

V procesu pregleda literature smo na podlagi podanih iskalnih nizov in uporabljenih kriterijev

pridobili večje število sorodnih raziskovalnih del. V Tabela 3.5 so ponazorjeni rezultati za

izvedbo sistematičnega pregleda literature, pri čemer podatki v vrsticah predstavljajo število

najdenih virov glede na zastavljen iskalni niz v uporabljeni digitalni knjižnici.

Tabela 3.5: Rezultati za izvedbo pregleda literature.

Iskalni niz 1 Iskalni niz 2 Iskalni niz 3

Science Direct 2 1 32

Springer 5 2 1091

Google Scholar 192 37 5220

IEEE 34 1 11

Na podlagi potreb in ciljev našega raziskovalnega dela smo pridobljeno literaturo analizirali

tako, da smo najprej pregledali naslove in druge meta podatke, nato pa ustrezna dela v

primeru izpopolnjevanja vključitveno izključitvenih kriterijev vključili v seznam izbranih

obstoječih del. V Tabela 3.6 je prikazano število najdenih relevantnih virov in število izbranih

virov, ki so služili kot izhodišče za naše raziskovalno delo.

Analiza in primerjava oblačnih storitev za razvoj mobilnih zalednih storitev

16

Tabela 3.6: Število relevantnih in izbranih virov.

Število virov Število izbranih del

Iskalni niz 1 233 3

Iskalni niz 2 41 1

Iskalni niz 3 6354 4

V Tabela 3.7 je ponazorjen seznam izbranih obstoječih raziskovalnih del, ki so osnova za

naše raziskovalno delo.

Tabela 3.7: Izbrana raziskovalna dela.

Naslov Avtor Članek ISBN Leto

izdaje

Virtualization and

Cloud Computing

Yuping Xing,

Yongzhao Zhan

Future Wireless

Networks and

Information

Systems [1]

978-3-642-

27322-3

2012

The Lowly API Is

Ready to Step Front

and Center

Lee Garber Computer Vol.

46; Issue 8 [2]

0018-9162 2013

Backend As A

Service – Using the

Example of Eniginio

a Cloud Service to Qt

Wilfried Kohl Cloud service for

Qt WS 2013/14

[4]

2013

Beginning Hybrid

Mobile Application

Development

Mahesh Panhale Introduction to

Mobile

Application

Development

Ecosystems [25]

978-1-4842-

1315-5

2016

Solving the Cloud

Computing Impasse

with MBaaS

Michael P.

Rogers, Bill

Siever

SIGCSE '16

Proceedings of

the 47th ACM

Technical

Syposium on

Computing

978-1-4503-

3685-7

2016

Analiza in primerjava oblačnih storitev za razvoj mobilnih zalednih storitev

17

Science

Education [26]

Availability

Evaluation and

Sensitivity Analysis

of a Mobile Backend-

as-a-service Platform

Igor Costa, Jean

Araujo, Jamilson

Dantas, Eliomar

Campos,

Francisco Airton

Silva, Paulo

Maciel

Quality and

Reliability

Engineering

International [27]

2015

Develop and Scale

Mobile Services in

Cloud Computing

Scenarios

Martin Ott [3] 2013

Cloud Solutions for

Mobile Applications

Anssi Soinu [28] 2014

3.3 Rezultati sistematičnega pregleda

Po pridobljenih rezultatih sistematičnega pregleda literature smo dobili izhodišče za naše

raziskovalno delo. Z analizo izbranih raziskav, pridobljenih s sistematičnim pregledom

literature, smo spoznali zgodovino, razvoj in delovanje računalništva v oblaku, skupaj s

spremembami, ki jih je v informacijske tehnologije prinesla obravnavana tehnologija [1].

Znotraj izbranih rezultatov smo pridobili znanje o modelih delovanja, načinih dostopa in

možnostih implementacije [4]. Na podlagi izbranih del [1] [2] smo lahko v naslednjih

poglavjih podrobneje predstavili modele delovanja, arhitekturo in ponudnike tovrstnih

storitev [4]. V naslednjih poglavjih smo predstavili tudi korelacijo med virtualizacijo in

računalništvom v oblaku, varnostna tveganja, ki jih obravnavana tehnologija prinaša, in

rešitve [1] [2]. Znotraj samega procesa izdelave sistematičnega pregleda literature smo se

osredinili na dela, ki zajemajo predstavitev in uporabo podpornega sistema kot storitev za

mobilne aplikacije, ki temelji na tehnologiji računalništva v oblaku [3] [4] [25] [26] [27] [28].

Na podlagi izbranih del [4] [25] smo pridobili znanje o razvoju mobilnih aplikacij skozi čas in

izluščili razloge in potrebe za izdelavo hibridnih mobilnih aplikacij, kar smo podrobneje

opisali v preostalih poglavjih magistrskega dela. Znotraj pregleda literature smo pridobili

tudi osnovno znanje o izgradnji mobilne aplikacije s trislojno arhitekturo mobilnih storitev

Analiza in primerjava oblačnih storitev za razvoj mobilnih zalednih storitev

18

[27]. Kot rezultat izbranih del [4] [25] [26] [28] smo s predstavljeno študijo primera pridobili

potrebno znanje o ponudnikih podpornih sistemov kot storitev, znanje o implementaciji

zalednih storitev in osnovne kriterije (hitrost, varnost, dostop do podatkov, podpora in

podobno) za primerjavo pozneje predstavljenih izbranih ponudnikov znotraj našega

raziskovalnega dela. Prav tako smo na podlagi spoznanj zaključkov del drugih avtorjev

pridobili osnovno znanje, ki smo ga potrebovali za odgovore na zastavljena raziskovalna

vprašanja.

Analiza in primerjava oblačnih storitev za razvoj mobilnih zalednih storitev

19

4 UPORABA ZALEDNIH STORITEV PRI RAZVOJU MOBILNIH APLIKACIJ

Ob vsakodnevnem napredku tehnologij, vezanih na pametne mobilne naprave, se je

pojavila potreba po novi vrsti tako imenovanih zalednih oblačnih storitev. Mobilne zaledne

storitve (angl. »Mobile backend as a service«) predstavljajo model oblačnih storitev, ki

omogoča spletnim ali mobilnim razvijalcem aplikacij možnost povezovanja razvitih aplikacij

preko izpostavljenega aplikacijskega vmesnika API ali knjižnice SDK z zalednimi storitvami.

Zaledne storitve se v večini primerov uporabljajo za shranjevanja podatkov, vezanih na

uporabo aplikacije, njihova uporaba pa prav tako omogoča operiranje z uporabniki, možnost

pošiljanja potisnih sporočil, integracijo s socialnimi omrežji, geolokacijske storitve,

biometrične analize, validacije in drugo [2] [4] [25] [27].

Začetki uporabe storitev BaaS segajo v leto 2010, zato je ta vrsta storitev za zdaj še

razmeroma slabo poznana tako razvijalcem kakor končnim uporabnikom [29]. Vendar

zaradi splošne priljubljenosti uporabe mobilnih naprav, hitrega razvoja mobilnih aplikacij in

storitev ter vse večje potrebe po skladiščenju podatkov mobilnih aplikacij so storitve BaaS

hitro rastoči trend v konceptu računalništva v oblaku.

Storitve BaaS so iz dneva v dan popularnejše tudi zato, ker omogočajo razvijalcem hitro

vzpostavitev, povezljivost in enostavno upravljanje med zaledjem in njihovo aplikacijo.

Zaledne storitve omogočajo razvijalcem mobilnih aplikacij popolno abstrakcijo na strežniški

strani. Razvijalci lahko tako izbirajo med potrebnimi gradniki in uporabijo zgolj del

programske kode, s katero se želijo na zaledno storitev povezati [30]. Omenjena abstrakcija

omogoča razvijalcem, da se lahko, namesto upravljanja in razvoja zaledne infrastrukture,

osredotočijo na razvoj in uveljavitev bogate uporabniške izkušnje. Prednosti uporabe

storitev BaaS za razvijalce so:

ponudniki zalednih storitev uporabljajo tehnike optimizacije podatkov, ki zmanjšujejo

probleme, vezane na razmetanost podatkov med platformami in napravami;

prihranek časa in truda razvijalcev, kar omogoča paketna infrastruktura, ki

zagotavlja skalabilnost in visoke zmogljivosti aplikacije;

uporaba storitev BaaS pospeši čas razvoja aplikacije in implementacije prihodnjih

posodobitev.

Analiza in primerjava oblačnih storitev za razvoj mobilnih zalednih storitev

20

4.1 Implementacija, procesiranje in shranjevanje podatkov

Veliko število poslovnih ali zasebnih mobilnih aplikacij lahko kategoriziramo kot aplikacije

odjemalec – strežnik (angl. »client-server apps«). Omenjene aplikacije so z odjemalčeve

strani (angl. »client side«) ali iz ospredja (angl. »frontend«) ter s strani strežnika (angl.

»server side«) ali iz zaledja (angl. »backend«). Ospredje je tisti del, ki je viden končnemu

uporabniku, naj bo to na zaslonu mobilne naprave ali osebnega računalnika. Ospredje je

zadolženo za vodenje končnega uporabnika skozi potek delovanja mobilne aplikacije.

Ospredje vsake mobilne aplikacije predstavlja uporabniško izkušnjo, medtem ko zaledje

predstavlja njegovo logiko [3] [31]. Na Slika 4.1 je podrobneje prikazano zaledje, sestavljeno

iz dveh komponent. To so:

poslovna logika aplikacije (angl. »application business logic«);

upravljanje/procesiranje podatkov (angl. »data processing / management«).

Komponenta procesiranja podatkov upravlja na podlagi različnih virov. Ti so lahko

uporabniki, statični podatki, sporočila, elektronska pošta, geolokacijski podatki, datoteke,

medijski zapisi in drugo [31].

Slika 4.1: Sestava odjemalec – strežnik aplikacij [31].

Arhitekturno ločevanje sloja poslovne logike od preostanka operacij procesiranja in

shranjevanja podatkov je pomemben del pri načrtovanju arhitekture aplikacije. V nekaterih

Analiza in primerjava oblačnih storitev za razvoj mobilnih zalednih storitev

21

situacijah je lahko sloj poslovne logike tudi generičen; o generični poslovni logiki govorimo

v primerih, ko so operacije poslovne logike enake operacijam dostopa ali shranjevanja

podatkov. V kompleksnejših primerih in uporabi zlasti poslovnih aplikacij, pri čemer

potrebujemo kaj več kot shranjevanje, branje, urejanje in brisanje podatkov, pa je uporaba

ločenega sloja poslovne logike ključnega pomena pri razvoju aplikacije [3]. Primeri uporabe

poslovne logike v kompleksnejših mobilnih rešitvah predstavljajo prijavo oziroma

identifikacijo uporabnika, nalaganje datotek, pošiljanje poštnih sporočil, procesiranje

podatkov, pošiljanje potisnih sporočil in podobno. Te funkcionalnosti se v primeru

implementacije na strani odjemalca lahko od platforme precej razlikujejo in predstavljajo

razvijalcem dodatno delo, zato se v omenjenih kompleksnih primerih te funkcionalnosti

zavijejo v modul ali paket in predstavljajo vrhnjo plast na strežniški strani.

4.2 Povezljivost

Z namenom, da bi lahko razvijalci znotraj svojih aplikacij uporabljali zaledne storitve, so

predvideni komunikacijski protokoli, ki definirajo pretok podatkov kot tudi strukturo podatkov

med stranjo odjemalca in strežnika [26]. Rezultat združitve protokola za povezljivost in

dogovorjeno strukturo podatkov je programski vmesnik, ki omogoča strani odjemalca

komunikacijo s strežniško stranjo. Standardni izraz za omenjen rezultat je vmesnik API in ti

so lahko različnih formatov [2] [3] [31]. Na Slika 4.2 so ponazorjeni vmesniki API. Formati

programskih vmesnikov API so lahko:

Generični vmesniki API (angl. »Generic API«) – primerni za komunikacijo ne glede

na format in strukturo podatkov mobilne aplikacije. S tem je možna uporaba

vmesnika API katerega koli mobilnega odjemalca. Primer tovrstnega vmesnika je

storitev REST.

Namenski vmesniki API (angl. »Specialized API format«) – ti vmesniki so razviti za

specifične odjemalce v različnih programskih jezikih. Primeri so vmesniki API za

programski jezik Java (platforma Android), vmesnik za programski jezik C (platforma

iOS), vmesnik za programske jezike NET (platforma Windows Phone) in drugo. Kot

je povedano, so namenski vmesniki API praviloma distribuirani kot knjižnice v

naravnem (angl. »native«) programskem jeziku za odjemalce posameznih platform,

ki jih razvijalci uporabijo za dostop do funkcij zalednih storitev.

Analiza in primerjava oblačnih storitev za razvoj mobilnih zalednih storitev

22

Slika 4.2: Primeri uporabe vmesnikov API glede na različne formate [31].

Kot je bilo že povedano, omogoča uporaba vmesnikov API razvijalcem mobilnih rešitev

hitrejši razvoj mobilne aplikacije. Razvijalci se namreč morajo osredotočiti zgolj na razvoj

sprednjega dela aplikacije, zagotavljanje celovite uporabniške izkušnje, medtem ko za

procesiranje podatkov in programsko logiko uporabijo storitve BaaS. Pri tem je treba

omeniti, da lahko nastanejo težave, kajti zaledne storitve so ne glede na različno poslovno

logiko generične, vsaka mobilna rešitev pa ima svoj nabor specifičnih zahtev, zato je treba

nekatere dele programske logike vključiti tudi na sloj odjemalca. Pri uporabi zalednih

storitev se v teh primerih uporabljajo naslednji pristopi:

Upraviteljska konzola (angl. »Developer/Management console«) – tipična zaledna

rešitev vsebuje konzolo, ki za razvijalca predstavlja vmesnik do zalednih storitev.

Uporaba konzole je vezana na konfiguracijo zalednih storitev in funkcij upravljanja.

Z uporabo konzole lahko razvijalec operira s podatki aplikacije, vzpostavlja

varnostne politike in prilagaja nekatere poslovne rešitve.

Koda na strežniški strani po meri – možnost izvajanja namenske kode na strani

strežnika predstavlja najbolj fleksibilno možnost za vključevanje storitev BaaS v

mobilno aplikacijo s specifično logiko. Koda po meri lahko vsebuje obstoječe dele

funkcionalnosti zalednih storitev ali ustvari novo samostojno logiko. Ta pristop

omogoča razvijalcem objavo svojih storitev s specifično programsko logiko za

reševanje specifičnih primerov uporabe.

Analiza in primerjava oblačnih storitev za razvoj mobilnih zalednih storitev

23

Poslovna logika na strani odjemalca – ta pristop omogoča razvijalcem razvoj

specifične poslovne logike neposredno na svojo mobilno aplikacijo. Ta modificirana

različica odjemalca tako vsili svojo poslovno logiko pred tisto od zalednih storitev.

Analiza in primerjava oblačnih storitev za razvoj mobilnih zalednih storitev

24

5 PREDSTAVITEV PONUDNIKOV ZALEDNIH STORITEV

V tem poglavju smo analitično predstavili pet različnih ponudnikov zalednih storitev. Zaradi

vsesplošne razširjenosti uporabe mobilnih zalednih storitev število ponudnikov zalednih

storitev BaaS narašča iz dneva v dan, tako da smo v sklopu magistrskega dela izbrali

ponudnike storitev BaaS, na podlagi kriterija prepoznavnosti, možnosti brezplačne uporabe

in razširjenosti glede uporabe [32] [33] [34]. Zaradi širokega nabora funkcionalnosti smo v

raziskovalno delo vključili večje ponudnike storitev Microsoft Azure, Amazon Web Services

in Google Firebase. Predstavili in podrobneje smo analizirali storitve ponudnika

Backendless, še zlasti zaradi širokih možnosti brezplačne uporabe, in storitve ponudnika

Kinvey zaradi razširjenosti glede uporabe. Vsakega ponudnika zalednih storitev smo

podrobneje predstavili v svojem podpoglavju, pri čemer smo poudarili njihove ključne

karakteristike in načine delovanja sistemov. Pri obravnavi vsakega ponudnika zalednih

rešitev smo opisali tako osnovne gradnike njihovih platform kakor tudi osnovne cenovne

modele za uporabo zalednih storitev.

5.1 Microsoft Azure

Microsoft Azure je platforma računalništva v oblaku in infrastruktura, ustvarjena za razvoj,

vpeljavo in upravljanje aplikacij ter storitev preko globalnega omrežja [35]. Microsoft je svojo

storitveno platformo Azure predstavil na konferenci za razvijalce Microsoft PDC leta 2008.

Sprva se je storitev imenovala Windows Azure, nakar je bila leta 2014 preimenovana v

Microsoft Azure [36]. Platformo sestavljajo spletne storitve Windows Azure, Microsoft SQL,

Microsoft .NET, Live, Microsoft SharePoint in Microsoft Dynamics CRM [37]. Razvijalcem

nudi okolje za razvoj storitev PaaS in storitev IaaS, v okviru je možen razvoj s poljubnim

programskim jezikom, podprtem v .NET Framework in interakcijo z dobro znanimi

storitvami. Storitvena platforma Azure Services Platform uresničuje združevanje

programske opreme in storitev, prav tako pa omogoča razvoj aplikacij povezanih po principu

računalništva v oblaku z infrastrukturnimi storitvami shranjevanja podatkov v podatkovnih

centrih na področju spleta in mobilnih tehnologij. Vse storitve gostujejo na Microsoftovih

strežnikih v oblaku, kar povečuje računsko moč gostujočih aplikacij.

Gradniki platforme Microsoft Azure

Windows Azure za gostovanje in upravljanje storitev, računske operacije,

shranjevanje podatkov in omrežne storitve;

Analiza in primerjava oblačnih storitev za razvoj mobilnih zalednih storitev

25

storitve Microsoft SQL za širok nabor storitev podatkovnih zbirk in poročanja;

storitve Microsoft .NET – storitvene implementacije konceptov ogrodja .NET

Framework (delovni tokovi in nadzor dostopa);

storitve Live za dosleden način shranjevanja, skupne rabe in sinhronizacije

dokumentov, fotografij, datotek in informacij na osebnih računalnikih, telefonih,

aplikacijah in spletnih straneh;

storitve Microsoft SharePoint in Microsoft Dynamics CRM za poslovne vsebine,

sodelovanje in hiter razvoj rešitev v oblaku [37].

Zasnova storitvene platforme

Platforma Microsoft Azure uporablja namensko prilagojen operacijski sistem, ki temelji na

gručah Microsoftovih podatkovnih centrov, ki upravljajo z računskimi operacijami,

zmogljivostmi računalnikov in viri aplikacij znotraj platforme Azure. Omenjena platforma je

kakor oblačna plast nad številnimi sistemi Windows Server, ki temeljijo na operacijskem

sistemu Windows Server 2008 in uporabljajo prilagojeno verzijo sistema Hyper-V, tj.

Microsoft Azure Hypervisor, katerega naloga je zagotavljanje virtualizacije uporabljenih

storitev [35]. Skalabilnost in zanesljivost delovanja je nadzorovana in upravljana od

Microsoft Fabric Controller, ki skrbi, da se v primeru izpada ali zaustavitve posameznega

podatkovnega strežnika viri, storitve in podatki prenesejo v pomnilnik drugega strežnika.

Tako končnim uporabnikom omogočajo nemoteno delovanje in uporabo storitev in aplikacij.

Microsoft Azure zagotavlja programski vmesnik API, narejen na REST, HTTP in XML, ki

omogoča razvijalcem interakcijo z želenimi storitvami platforme. Microsoft tudi ponuja

končno programsko knjižnico, ki na strani odjemalca zagotavlja vse potrebne funkcije za

interakcijo s storitvami platforme Azure. Platforma Microsoft Azure je integrirana v razvojno

okolje Microsoft Visual Studio, Git in Eclipse. Kot dodatek za upravljanje s storitvami preko

programskega vmesnika API lahko končni uporabniki ali razvijalci upravljajo s storitvami

preko spletnega portala Azure Portal [38]. Portal tako omogoča uporabnikom pregled nad

aktivnimi viri, spreminjanje nastavitev, zagon novih virov in spremljanje podatkov iz aktivnih

virtualnih sistemov in storitev [35].

Cenik uporabe platforme

Platforma Microsoft Azure ponuja širok nabor posameznih storitev ali storitvenih paketov,

ki so različno cenovno vrednoteni. Za potrebe našega raziskovalnega dela smo podrobneje

predstavili cenik za uporabo mobilnih storitev Azure. Možnost uporabe mobilnih storitev

Analiza in primerjava oblačnih storitev za razvoj mobilnih zalednih storitev

26

platforme Azure je na voljo v treh slojih: Free, Basic, Standard [39]. V Tabela 5.1 je prikazan

razčlenjen pregled storitev, ki so na voljo znotraj posameznega sloja.

Tabela 5.1: Cenik za uporabo storitev platforme Microsoft Azure [39].

FREE BASIC STANDARD

Cena na mesec 0 € 12,64 € 118,05 €

Število klicev API 500.000 1.500.000 15.000.000

Število aktivnih naprav 500 Neomejeno Neomejeno

Število notifikacij push 1.000.000 10.000.000 10.000.000

Sinhronizacija brez povezave Omejeno Podprto Podprto

Izdelava opravil po urnikih Omejeno Podprto Podprto

Vključena količina podatkov v

podatkovni bazi

20 MB 20 MB 20 MB

Varnostno kopiranje Ni podprto Podprto Podprto

Kot je razvidno iz Tabele 5.1, je pri vseh slojih cenikov vključena omejena velikost

podatkovne baze SQL; večja količina podatkov se tako zakupi posebej glede na potrebno

velikost podatkovne baze. Ponudnik v plačljivih cenovnih modelih ponuja različno število

procesorskih virov (6 virov v modelu BASIC in neomejeno število virov v modelu

STANDARD), ter možnost uporabe realno-časovnega sporočanja in uporabo spletnih

vtičnikov. Plačljivi modeli pa prav tako ponujajo neomejen dnevni izhodni prenos podatkov

[39]. Cenovna politika platforme Microsoft Azure omogoča tudi plačevanje storitev po meri,

tako da si lahko posamezni razvijalci svoj cenovni model prilagodijo zgolj glede na potrebne

storitve ali pakete storitev, ki jih potrebujejo. Prav tako je razvijalcem omogočen zakup

različne količine storitev, na primer: storitve vezane na CPU kapacitete, število notifikacij

push, število virov in podobno.

5.2 Google Firebase

Firebase je ponudnik oblačnih storitev na področju zalednih aplikacij. Platforma omogoča

razvijalcem programske opreme številna orodja in produkte, ki lahko uporabijo tekom

razvoja svojih mobilnih in spletnih aplikacij. Osrednji produkt podjetja je podatkovna baza v

realnem času (angl. »real-time database«), ki zagotavlja aplikacijski programski vmesnik, s

katerim lahko razvijalci mobilnih in spletnih aplikacij shranjujejo in sinhronizirajo podatke

Analiza in primerjava oblačnih storitev za razvoj mobilnih zalednih storitev

27

čez več odjemalcev. Firebase je posledica podjetja Envolve (start-up), ki sta ga začela

Anders Lee in James Tamplin leta 2011. Omenjeno podjetje start-up je v prvi vrsti ponujalo

aplikacijski uporabniški vmesnik, ki je omogočal razvijalcem programske opreme integracijo

spletnih klepetalnic v svoja spletna mesta. Ko je storitev spletne klepetalnice prešla v javno

uporabo, so to razvijalci množično pričeli uporabljati za sinhronizacijo aplikacijskih

podatkov, kot so stanja iger med uporabniki v realnem času. Zaradi uvidene nove poslovne

priložnosti sta Tamplin in Lee ločila storitev spletne klepetalnice z arhitekturo, ki omogoča

storitev v realnem času, in tako ustanovila novo podjetje Firebase, leta 2012 Tega je nato

leta 2014 k sebi priključil gigant Google kot sestavni del platforme Google Cloud [40], katero

pa slednje podjetje predstavlja kot skupek produktov in storitev, ki omogočajo gostovanje,

upravljanje storitev, računske operacije in shranjevanje podatkov ter omogočajo širok nabor

oblačnih storitev, gostovanje razvojnih orodij za razvijalce in podobno [41]. Za izdelavo

mobilnih aplikacij je za razvijalce predvidena obravnavana platforma Firebase z možnostjo

razširitve s paketom storitev Google App Engine. Za potrebe magistrskega dela smo

podrobneje predstavili paket Firebase.

Gradniki platforme Firebase

To so:

Firebase Analyitics predstavlja rešitev spremljanja porabe virov mobilne aplikacije

in druge vrste nadzora;

paket Develop, ki vsebuje storitve obveščanja in pošiljanja sporočil med mobilnimi

ter spletnimi aplikacijami, autorizacijo uporabnikov na strani odjemalca, realno

časovno podatkovno bazo, gostovanje, shranjevanje uporabniških nastavitev ali

datotek, oddaljeno konfiguriranje storitev, konzolo za testiranje in poročila za

pregled napak in drugih informacij;

storitve Glow, ki omogočajo izmenjavo in pošiljanje notifikacij končnim

uporabnikom, operacije indeksiranja trajnih podatkov mobilne aplikacije, nastavitve

vedenja in prikaza mobilne aplikacije za različne mobilne platforme in podobno

[40].

Zasnova platforme Firebase

Kot je bilo povedano v samem opisu, je zaledna storitev Firebase sestavni del platforme

Google Cloud, ki temelji na modelu infrastrukture kot storitev (IaaS). Že od samega začetka

razvoja je delovanje platforme pod vplivom delovanja operacijskega sistema Linux. V

temeljnem sloju (angl. »fundamental layer«) so tako v podjetju Google uporabili svojo

Analiza in primerjava oblačnih storitev za razvoj mobilnih zalednih storitev

28

prilagojeno različico sistema Linux. V višjih nivojih pa je delovanje pogojeno z Linux KVM

nadzornikom (angl. »Linux KVM hypervisor«), kar omogoča uporabnikom upravljanje

virtualne infrastrukture na različnih operacijskih sistemih Linux kot tudi Windows Server.

Cenik uporabe platforme

Obravnavana platforma Firebase za uporabo storitev ponuja različne storitvene pakete. V

osnovi so na voljo trije sloji: brezplačni Spark, Flame in Blaze. Vsak izmed paketov pa brez

dodatnega plačila vključuje Google Analytics, App Indexing, Authentication, Cloud

Messaging, Crash Reporting, Dynamic Links, Invites, Notifications & Remote Config. V

Tabela 5.2 je prikazan razčlenjen pregled storitev, ki so na voljo znotraj posameznega sloja.

Tabela 5.2: Cenik za uporabo storitev platforme Firebase [42].

SPARK FLAME BLAZE

Cena na mesec 0 € 23,71 € Po uporabi

Število klicev API 20.000 100.000 Po zakupu

Število aktivnih naprav 100 Neomejeno Neomejeno

Število notifikacij push Ni opredeljeno Ni opredeljeno Ni opredeljeno

Sinhronizacija brez povezave Podprto Podprto Podprto

Izdelava opravil po urnikih Ni podprto Ni podprto Ni podprto

Vključena količina podatkov v

podatkovni bazi

20 MB 20 MB 20 MB

Varnostno kopiranje Ni podprto Ni podprto Podprto

Kot je razvidno iz Tabele 5.2, je pri vseh slojih cenikov vključena omejena velikost

podatkovnih baz kakor tudi možnosti uporabe ostalih storitev in funkcionalnosti. V pravilih

uporabe je naveden še pomemben podatek, da je število simultanih povezav omejeno na

10 tisoč. Brezplačni cenovni model obenem ponuja tudi 10 GB izhodnega prenosa podatkov

na dan, v preostalih plačljivih različicah so te vrednosti višje (cenovni model Spark ponuja

50 GB izhodnega prenosa podatkov na dan) ali se plačujejo po zakupu. Za napredne

uporabnike je na voljo cenovni model Blaze, namenjen uporabi po meri, in zajema celoten

nabor ponujenih funkcionalnosti in storitev. Cenovni model Blaze obenem vsebuje

napredne funkcije za varnostno kopiranje, ki v brezplačni in različici Spark nista vključeni

[42]. Plačilo storitev v najvišjem cenovnem modelu Blaze je vezano na dejansko porabo.

Napredni uporabniki si lahko prav tako sestavijo svoj paket glede na potrebe mobilne

rešitve. Kot dodatek ponuja podjetje znotraj uporabe Google Cloud Platform tudi kalkulator

Analiza in primerjava oblačnih storitev za razvoj mobilnih zalednih storitev

29

uporabe storitev (angl. »Pricing Calculator«), v katerem razvijalci zajamejo predvidevano

uporabo virov in storitev [43]. Za potrebe raziskovalnega dela napredne uporabe in zakupov

storitev s kalkulatorjem nismo podrobneje obravnavali.

5.3 Amazon AWS

Platforma Amazon Web Service (AWS) je storitev podjetja Amazon.com in v splošnem

ponuja širok nabor oblačnih storitev, ki v celoti zagotavljajo učinkovito računalniško

platformo kot storitev (angl. »on-demand platform«) [44]. Začetki uporabe platforme

Amazon segajo v leto 2003, ko sta Chris Pinkham in Benjamin Black predstavila celostno

vizijo za računalniško infrastrukturo, ki bi bila popolnoma standardizirana, avtomatizirana in

bi se v veliki meri zanašala na spletne storitve. Iz teh novih naložb v infrastrukturo sta v

svoji predstavitvi med drugim omenila možnosti ustvarjanja dobička s prodajo virtualnih

strežnikov kot storitev [45].

V letu 2016 ima platforma AWS na voljo preko 70 storitev, ki segajo na področja

podatkovnega skladiščenja, baze podatkov, analitike, uporabniških storitev, področja

uporabniških storitev in še veliko več [44]. Širom uporabljene storitve platforme sta Amazon

Elastic Compute Cloud, poznana pod kratico EC2, in storitev Amazon Simple Storage

Service, poznana pod kratico S3. Ta je namenjena za upravljanje in shranjevanje podatkov

iz mobilnih aplikacij, medtem ko EC2 predstavlja večnamensko in širokopasovno platformo

IaaS. Čeprav podjetju Amazon na področju uporabe zalednih storitev predstavljajo ciljno

tržišče velika podjetja ali korporacije, delujejo na njihovih storitvah naslednji priljubljeni

produkti: Periscope, Yelp, Airbnb, Angry Brids, tinder, Netflix, Clash of Clans, Etry in drugi

[46].

Gradniki storitvene platforme AWS

Storitve AWS niso neposredno izpostavljene končnim uporabnikom, ampak zgolj ponujajo

funkcionalnosti, ki jih lahko razvijalci vključijo v svoje aplikacije. Za potrebe našega

raziskovalnega dela smo v obravnavo vključili paket storitev AWS Mobile, ki so namenjene

razvoju mobilnih aplikacij, in interakcijo z zalednimi storitvami. Storitve so dostopne preko

protokola HTTP z uporabo arhitekturnega načina REST in protokola SOAP. Paket storitev

AWS Mobile vsebuje naslednje komponente:

Analiza in primerjava oblačnih storitev za razvoj mobilnih zalednih storitev

30

integrirano ogrodje SDK za hiter razvoj mobilnih aplikacij, ki sestavljajo AWS Mobile

SDK, upravljalanje preko AWS Management Console in končne točke za integracijo

s programskim vmesnikom API;

storitve, optimizirane za mobilne aplikacije, ki vključujejo Lambda funkcije, Amazon

Cognito, analitični modul Amazon Mobile Analytics in Amazon SNS Mobile Push

modul za obveščanje push;

mobilno optimizirane povezave sestavljajo Amazon Kinesis Recorder, DynamoDB

Mapper za transformacije podatkov, S3 Transfer Manager, SQS Client in Amazon

SES Client;

sestavni bloki jedra storitev, ki omogočajo računske operacije, operacije za

shranjevane podatkov, omrežne in analitične storitve [47].

Zraven zgoraj predstavljenih blokov AWS Mobile SDK vključuje še programske knjižnice, ki

vsebujejo nizkorazredne vmesnike, funkcije za avtentifikacijo, primere kode in referenčno

dokumentacijo. Med pomembne gradnike spadajo:

Amazon Cognito, ki zagotavlja avtentifikacijo uporabnikov in sinhronizacijo

osnovnih uporabniških podatkov znotraj uporabniških aplikacij;

Amazon S3, ki zagotavlja shranjevanje in sinhronizacijo uporabniških datotek in

drugih podatkov (slike, lastne nastavitve in podobno);

AWS Lambda, ki omogoča razvijalcem mobilnih aplikacij implementacijo lastnih

funkcij, skript ali modulov ter vključevanje teh v interakcijo z zalednimi storitvami;

Amazon DynamoDB predstavlja zmogljivo NoSQL podatkovno bazo za trajno

shranjevanje podatkov;

Amazon Mobile Analytics za spremljanje in analizo različnih metrik znotraj razvite

mobilne aplikacije;

Amazon CloudFront, ki omogoča prenos vsebin v medpomnilnik mobilne naprave

za optimizirano in hitro delovanje mobilne aplikacije [46].

Zasnova platforme AWS Mobile

Platforma AWS je na 13 ločenih geografskih regijah po vsem svetu (večinoma na področju

Amerike, Evrope, severne Azije in Avstralije), pri čemer so pri podjetju napovedali uvedbo

dodatnih petih točk preko leta 2017 [44]. Vsako regijo sestavljajo številni podatkovni centri

za zagotavljanje storitev AWS. Dostop do uporabe storitev je zagotovljen preko

programskih vmesnikov API, do storitev AWS pa je mogoče dostopati še preko vmesnika

REST. Različni gradniki storitev ponudnika Amazon AWS delujejo na operacijskih sistemih

Linux, v večini primerov se za trajno shranjevanje podatkov njihovih storitev uporablja

podatkovna baza podjetja Oracle. Same storitve so implementirane v programskih jezikih

C++, Perl, Mason, Java in Jboss [48].

Analiza in primerjava oblačnih storitev za razvoj mobilnih zalednih storitev

31

Cenik uporabe platforme

Za razliko od Microsoft Azure, Kinvey ali Backendless se vse storitve pri ponudniku Amazon

računajo glede na porabo virov po principu »koliko porabite, toliko plačate«, vendar se cena

na porabo v zvezi s storitvami razlikuje. Na voljo je tudi 12-mesečna preizkusna različica

AWS Free Tier. V Tabela 5.3 je ponazorjena zajeta količina uporabe mobilnih storitev za

preizkusno različico AWS Free Tier [49].

Tabela 5.3: Zajete mobilne storitve znotraj omejene brezplačne razližice AWS Free Tier [49].

AWS FREE TIER

Cena na mesec 0 €

Število klicev API 1.000.000

Število aktivnih naprav Ni opredeljeno

Število notifikacij push 1.000.000

Sinhronizacija brez povezave Podprto

Izdelava opravil po urnikih Podprto

Vključena količina podatkov v podatkovni bazi 10 GB

Varnostno kopiranje Podprto do 20 GB

Za razliko od preostalih navedenih cenikov iz tega poglavja, kjer so zajete količine vezane

na mesečno porabo, so te enote vezane na celoletno porabo. Pri prekoračitvi porabe ene

določene količine se ta zaračuna po njihovem standardnem ceniku.

5.4 Backendless

Platforma Backendless je storitev istoimenskega podjetja Backendless. Ponuja oblačno

storitev, ki zagotavlja univerzalni backend za razvijalce, ki se ukvarjajo z razvojem mobilnih

in namiznih aplikacij. Pri podjetju navajajo, da gre za tesno integrirani sistem, ki so ga

zasnovali zaradi poenostavitve in pospešitve procesa razvoja mobilnih aplikacij. Izboljšanje

produktivnosti razvijalcev je eden od pomembnejših ciljev in smernic pri razvoju platforme

[50]. Sam začetek razvoja platforme sega v leto 2012. Že marca leta 2013 so pri podjetju

izdali prvo beta verzijo omenjene platforme. Podjetje Backendless je od svojega začetka

prevzelo veliko manj tveganega kapitala od nekaterih konkurentov. Ustanovitelj in direktor

Analiza in primerjava oblačnih storitev za razvoj mobilnih zalednih storitev

32

Mark Piller je na forumu Backendless support tudi zapisal, da je podjetje na točki

poslovanja, na kateri se lahko samo financira in zato tudi ne potrebuje tujega kapitala [51].

Platforma ponudnika Firebase ponuja številna orodja, kot so razni generatorji kode, grafična

orodja za upravljanje s podatki in oblačnimi razhroščevalniki kode, s katerimi želijo

razvijalcem aplikacij poenostaviti delo in zmanjšati čas potreben za razvoj svojih aplikacij.

Razvijalcem v veliki meri ni treba skrbeti za programsko logiko na strani strežnika, tako se

lahko toliko bolj osredotočajo na vidik končnega odjemalca. Platforma sicer ponuja različne

programske vmesnike, s katerimi lahko aplikacije dostopajo do samega zaledja platforme

Backendless. Ti vmesniki so vključeni znotraj paketa SDK, ki je na voljo za različne jezike

(Android, iOS, Mac OS X, JavaScript, .NET, Unity3D, PHP in ActionScript) [50].

Gradniki platforme

Individualni deli oziroma produkti platforme naslavljajo različne potrebe za razvoj mobilnih,

spletnih ali drugih poslovnih aplikacij. Backendless združuje svojo ponudbo produktov v

celovito platformo, ki sestavlja storitev mBaaS, spletno gostovanje storitev, imenovano

Backendless Hosting, storitev API Engine in spletno tržišče backend storitev Marketplace

[50] [52] [53].

Gradniki so:

Storitev Backendless MBaaS – Predstavlja skupek integriranih storitev, ki so

osnova platforme Backendless.

Storitev Backendless Hosting – Backendless v sklopu svojih SDK-jev ponuja

okolje za shranjevanje podatkov, pri čemer podpira statično in dinamično

(Node.js) vsebino. Vsebuje različne programske vmesnike za učinkovito

upravljanje podatkov. Vse operacije, povezane s shranjevanjem podatkov, so

dostopne preko namenske konzole, preko katere je moč poljubno vsebino

nalagati, brisati, spreminjati, dodeljevati različne pravice in drugo.

Storitev Backendless API Engine – S storitvijo Backendless API Engine je moč

pretvoriti poljubno programsko kodo v lastno mikrostoritev s svojim vmesnikom

API. Sistem za to storitev avtomatsko generira nov SDK kot tudi vmesnik

REST API in preostalo dokumentacijo. Platforma tudi priskrbi okolje za

dodatno testiranje teh mikrostoritev, ki jih lahko razvijalci pozneje vključijo v

svoje aplikacije.

Spletna trgovina Backendless Marketplace – Spletna trgovina Backendless

Marketplace je del platforme Backendless, kjer se nahajajo vsi produkti in

Analiza in primerjava oblačnih storitev za razvoj mobilnih zalednih storitev

33

storitve, ki jih lahko razvijalci vključijo v svoje aplikacije, s tem pa obogatijo

njeno delovanje in izboljšajo zaledje (angl. »backend«).

Zasnova plaftorme

Platforma Backendless je na voljo v treh različnih nivojih [54]:

Nivo Backendless Cloud

Je najosnovnejši nivo, v okviru katerega uporabniki dostopajo do centralizirane platforme

na strežnikih podjetja Backendless. Ta nivo zajema že vnaprej konfigurirane nastavitve, kjer

si več aplikacij različnih razvijalcev deli razpoložljive vire ene instance Backendless. Pri

podjetju zagotavljajo, da so viri med seboj primerno izolirani, tako da določena aplikacija ne

more dostopati do datotek drugih aplikacij. Ta različica platforme je na voljo v treh različnih

cenovnih kategorijah (brezplačna uporaba, Cloud9 in Cloud99), pri čemer ima vsaka

kategorija določene omejitve pri vključenih storitvah in količini podatkov.

Nivo Backendless Managed

Pri omenjenem načinu gre za podobno arhitekturo in naborom vsebovanih storitev kot pri

nivoju Backendless Cloud, vendar pri tem nivoju ni omejitev uporabe zalednih storitev

(neomejena količina prostora, klicev API, število obvestil push idr.). Instanca Backendless

je pri tem nivoju na voljo v popolnoma izoliranem okolju, tako da se računalniški viri ne delijo

z drugimi aplikacijami in so tako v celoti razpoložljivi le eni aplikaciji oziroma uporabniku. Za

razliko od nivoja Backendless Cloud, ki ima različne cenovne kategorije, se pri tem nivoju

zaračunava glede na porabo. Cena se določi glede na število zahtev klicev API in

porabljene količine podatkov.

Nivo Backendless Standalone

Nivo Standalone ponuja platformo Backendless kot celoto, ki jo lahko razvijalci prenesejo

in jo namestijo lokalno ali pa jo celo po želji namestijo pri katerem drugem ponudniku

oblačnih storitev (na primer Google Cloud, Amazon ali Azure). Pri tem nivoju velja, da

platforma nima omejitev glede prostora in storitev, pri čemer so dodatno vključeni podpora

24/7, servis in nadzor pravilnega delovanja.

Cenik uporabe platforme

Platforma Backendless je na voljo kot brezplačno okolje, ki ga lahko namesti podjetje na

svoje sisteme in razpoložljive računalniške vire [52]. Prav tako je na voljo omejena

brezplačna ali plačljiva razširjena različica mobilne platforme. Platforma Backendless Cloud

na voljo v treh različnih cenovnih kategorijah – ima možnost brezplačne uporabe in možnost

Analiza in primerjava oblačnih storitev za razvoj mobilnih zalednih storitev

34

plačljivih razširitvenih različicah Cloud9 in Cloud99. V Tabela 5.4 je prikazan razčlenjen

pregled storitev, ki so na voljo znotraj posameznega sloja.

Tabela 5.4: Cenik uporabe storitev platforme Backendless [52].

FREE Cloud9 Cloud99 Enterprise

Cena na mesec 0 25 99 Po dogovoru

Število klicev API 300 600 1200 Neomejeno

Število aktivnih naprav 1 5 Neomejeno Neomejeno

Število notifikacij push 100.000 500.000 1.000.000 Neomejeno

Sinhronizacija brez povezave Ni podprto Ni podprto Ni podprto Ni podprto

Izdelava opravil po urnikih Podprto Podprto Podprto Podprto

Vključena količina podatkov v

podatkovni bazi

5 GB 10 GB 20 GB Neomejeno

Varnostno kopiranje Ni podprto Ni podprto Ni podprto Ni podprto

Kot je razvidno iz Tabele 5.4, ima vsaka cenovna kategorija oziroma model določeno

omejitev glede pomembnih storitev znotraj posamezne cenovne različice. Pri tem so glede

na različen cenovni model omejeni tudi velikosti podatkovne baze in število podatkovnih

tabel. Cenovna politika pri platformi Backendless je naravnana na način, da se v primeru

večjih potreb po le določeni uporabi storitve ali drugih virov ta tudi dodatno dokupi,

konkretno na primeru; v trgovini Backendless Market lahko dokupimo lahko zgolj število

klicev API na minuto oziroma le število notifikacij push, seveda pa je moč dokupiti več

storitev hkrati. Takšna razširitev določene omejitve je mogoča z dokupom oziroma

funkcijskega paketa (angl. »function pack«) na spletnem tržišču Marketplace, vendar je

mogoča le pri plačljivih cenovnih kategorijah [52].

5.5 Kinvey

Podjetje Kinvey je ponudnik zalednih storitev na področju oblačnih storitev. Podjetje je pionir

na področju ponudbe mobilnih zalednih storitev [55]. Ustanovljeno je bilo leta 2010. Po

velikosti sodi med tista z 11 do 50 zaposlenimi [56]. Podjetje zagotavlja razvijalcem

standardizirano, skalabilno in varno okolje za izdelavo domorodnih, spletnih ali mobilnih

aplikacij. Njihova platforma zalednih storitev ponuja razvijalcem mobilno orientirane storitve,

kot so shranjevanje podatkov, shranjevanje datotek, uporaba notifikacij push, analiza

Analiza in primerjava oblačnih storitev za razvoj mobilnih zalednih storitev

35

mobilnih aplikacij, možnosti izdelave poslovne logike po meri in integracije naravnosti iz

škatle (angl. »out-of-the-box«) z različnimi oblačnimi storitvami. Prav tako podjetje

zagotavlja varnostne algoritme za enkripcijo shranjenih podatkov.

Gradniki platforme Kinvey

Ciljna skupina uporabnikov zalednih storitev platforme Kinvey so tako posamezni razvijalci

kot tudi večja podjetja, kajti uporabnikom omogoča [57]:

uporabo navzkrižno-platformskih knjižnic (angl. »cross-platform«) z možnostjo

medpomnjenja v načinu brez povezave;

dostop do s požarnim zidom zaščitenih podatkov preko vmesnika API;

avtentifikacijo uporabnikov na podlagi več identifikacijskih sistemov, kot so

LDAP in OAuth;

enkripcijske protokole, ki skrbijo za varovanje podatkov na spletu in posamezni

napravi;

uporabo funkcij, kot so notifikacije push in možnosti povezave do zunanjih

storitev;

uporabo analitičnih orodij za upravljanje in nadzor nad večjim številom mobilnih

aplikacij.

Zgoraj navedene storitve so naravnane, da bi razvijalcem omogočile enostavno integracijo,

obenem pa omogočile razvijalcem jasen pregled nad upravljanjem mobilnih aplikacij.

Zasnova platforme Kinvey

Rešitev Kinvey mBaaS temelji na asinhroni arhitekturi I/O, ki jo zagotavljata NGINX in

node.js. Za optimalno delovanje uporabe zalednih storitev ponudnika Kinvey skrbijo

naslednji protokoli in rešitve [58]:

platforma kot storitev (PaaS), ki skrbi za poslovno logiko samega celovitega

sistema;

REST/SOAP programski vmesniki API;

protokoli za avtorizacijo Auth/IAM;

upravljanje s programskimi vmesniki API;

oblačne storitve, ki preko uporabe zalednih storitev podjetja Kinvey skrbijo za

upravljanje z notifikacijami push, geolociranjem, analizo in povezave s

socialnimi omrežji;

Analiza in primerjava oblačnih storitev za razvoj mobilnih zalednih storitev

36

sistemi podjetja Kinvey, zadolženi za shranjevanje podatkov, upravljanje z

omrežjem, CRM/EPS/CMS sistemi in podobno.

Cenik uporabe platforme

Platforma Kinvey ima podobno kot platforma Microsoft Azure različne cenovne sloje:

Developer, Startup, Business, Enterprise [59]. V Tabela 5.5 je ponazorjen razčlenjen

pregled storitev, ki so na voljo znotraj posameznega sloja.

Tabela 5.5: Cenik za uporabo storitev platforme Kinvey [59].

DEVELOPER STARTUP BUSINESS ENTERPRISE

Cena na mesec 0 € 178,05 € 1780,63 € Po dogovoru

Število klicev API 1.000 100.000 100.000 Neomejeno

Število aktivnih naprav 1.000 100.000 100.000 Neomejeno

Število notifikacij push Ni podatka Ni podatka Ni podatka Ni podatka

Sinhronizacija brez

povezave

Podprto Podprto Podprto Podprto

Izdelava opravil po

urnikih

Podprto Podprto Podprto Podprto

Vključena količina

podatkov v podatkovni

bazi

1 GB 10 GB 30 GB 500 GB

Varnostno kopiranje / / Podprto Podprto

Kot je razvidno iz zgornje tabele, so cenovni modeli ponudnika Kinvey podobni ceniku

storitev platforme Microsoft Azure. Cenovni model Enterprise omogoča tudi plačevanje

storitev po meri, pri čemer si lahko večja podjetja ali korporacije cenovni model prilagodijo

zgolj glede na potrebne storitve ali pakete storitev. Vsi cenovni sloji imajo vključeno osnovno

podporo, zadnja dva cenovna sloja omogočata tudi varnostno kopiranje podatkov, instantno

podporo po telefonu, možnost zavarovanja in podobno. Cenovna politika ponudnika Kinvey

ne predvideva, da bi lahko razvijalci preostalih cenovnih slojev imeli možnost dodatnega

zakupa različne količine shranjenih podatkov, enot CPU ali drugega.

Analiza in primerjava oblačnih storitev za razvoj mobilnih zalednih storitev

37

6 NAČRT ZA PRIMERJAVO PONUDNIKOV ZALEDNIH STORITEV

Na podlagi problematike, predstavljene v uvodnem poglavju, smo v našem raziskovalnem

delu v sklopu pregleda literature pridobili osnovno znanje o delovanju zalednih storitev in

načinih implementacije in povezljivosti [28]. Na podlagi pridobljenega znanja iz pregleda

literature smo izdelali namensko mobilno aplikacijo po principu trislojne arhitekture. Za

dostop do zalednih mobilnih storitev smo uporabili vnaprej pripravljene programske

knjižnice SDK izbranih ponudnikov. Z namenom, da bi pridobili odgovore še na preostala

raziskovalna vprašanja, smo za potrebe merjenja performančnih zmogljivosti dodelali

mobilno aplikacijo do te mere, da beleži čas dostopa in izvedbe posamezne storitve. Glede

na pridobljene empirične podatke smo v naslednjem poglavju izbrane ponudnike primerjali.

6.1 Izdelava namenske aplikacije

Da bi lahko pridobili odgovore, vezane na eksperimentalni del raziskovalnih vprašanj, smo

morali zagotoviti enoten sistem vrednotenja. Zato smo izdelali projekt mobilne aplikacije, ki

iz izbrane naprave omogoča interakcijo s storitvami obravnavanih ponudnikov preko

programskega vmesnika API. Aplikacija je namenjena testiranju na operacijskem sistemu

Android 4.2.2. Razvita je v programskem jeziku Java v razvojnem okolju Android Studio

1.5. Aplikacija je modificirana različica lastno razvite mobilne aplikacije za podporo

daljinskemu naročanju v gostinstvu, kjer lahko končni uporabnik (v tem primeru natakar)

sprejema in oddaja naročila gostov, pa tudi izdela račune pri mizi same stranke v

gostinskem poslopju. Kot je bilo omenjeno v začetku poglavja, je mobilna aplikacija

modificirana do te mere, da beleži časovne vrednosti dostopa in izvršitve posamezne

interakcije s storitvijo ponudnika storitev BaaS, obenem pa lahko znotraj enega zagona

komunicira s storitvami vseh obravnavanih ponudnikov zalednih storitev. Da bi zagotovili

konsistentnost in točnost rezultatov, smo pripadajoče primerjalne procedure znotraj razvite

mobilne aplikacije testirali v enakem okolju na mobilnem telefonu Samsung Galaxy S4. Z

namenom, da bi zagotovili veljavnost podatkov, smo pri integraciji uporabe zalednih storitev

obravnavanih ponudnikov za poslovno logiko in podatkovne objekte uporabili enako

programsko kodo. Da bi se izognili tveganju zaradi ne odzivanja ali preobremenjenosti

mobilne naprave za testiranje, smo omenjeno napravo predhodno ponastavili na tovarniške

nastavitve in onemogočili vsa odvečna opravila in procese. Da bi se izognili motnjam

Analiza in primerjava oblačnih storitev za razvoj mobilnih zalednih storitev

38

omrežja s strani preostalih naprav in zagotovili čim bolj natančne ter verodostojne rezultate,

smo napravo za testiranje, povezali na namensko dostopno točko, ki je bila skozi proces

integracije in poznejšega pridobivanja rezultatov vedno v ločenem prostoru skupaj z

mobilno napravo na vedno enaki razdalji. Na Slika 6.1 je prikazan razredni diagram, iz

katerega so razvidni tako atributi kakor tudi relacije med posameznimi objekti.

Slika 6.1: Predviden razredni diagram naše mobilne aplikacije.

Če je bilo mogoče, smo pri implementaciji dostopa do storitev za različne ponudnike

uporabili enake podatkovne tipe posameznih atributov. Prav tako smo pri vseh ponudnikih

izdelali podatkovno bazo z enakimi podatkovnimi tabelami in atributi. Če je bilo mogoče,

smo pri vseh ponudnikih izbrali entitetno-relacijsko podatkovno bazo SQL.

6.2 Izdelava primerjalnega modela

Z namenom, da bi pridobili podatke o performančnih zmogljivostih klica posameznih storitev

izbranih ponudnikov, smo izdelali različne primerjalne procedure. Pri vrednotenju

posameznega ponudnika zalednih storitev nas je zanimalo naslednje:

Analiza in primerjava oblačnih storitev za razvoj mobilnih zalednih storitev

39

povprečen čas dostopa izvedene primerjalne procedure 1 (Tabela 6.1) po treh

zaporednih ponovitvah;

povprečen čas dostopa izvedene primerjalne procedure 2 (Tabela 6.2) po desetih

zaporednih ponovitvah;

povprečen čas dostopa izvedene primerjalne procedure 3 (Tabela 6.3) po desetih

zaporednih ponovitvah;

pregled velikosti posamezne podatkovne baze ponudnika, po končanih desetih

primerjalnih procedurah;

možnost izdelave lastnih operacij znotraj storitev posameznega ponudnika;

možnost dela in interakcija s storitvami posameznega ponudnika storitev BaaS

brez povezave.

Naslednje tabele prikazujejo načrt izvedbe primerjalnih procedur, s katerimi smo pridobili

odgovore na tretje, peto in šesto raziskovalno vprašanje.

Tabela 6.1: Načrt za izvedbo primerjalne procedure 1.

Zaporedna številka operacije Opis operacije

1. Pregled shranjenih prodajnih artiklov

2. Brisanje vseh prodajnih artiklov v bazi

3. Vstavljanje novih 45 prodajnih artiklov

Znotraj prve primerjalne procedure nas je zanimalo branje večje količine podatkov (vseh

zapisov v podatkovni tabeli). Po uspešnem branju in transformaciji podatkov v podatkovne

objekte se izvede brisanje vseh podatkov iz podatkovne tabele prodajalnih artiklov. Po

končani operaciji se izvede vstavljanje novo generiranih zapisov.

Tabela 6.2: Načrt za izvedbo primerjalne procedure 2.

Zaporedna številka operacije Opis operacije

1. Pregled shranjenih prodajalcev

2. Iskanje prodajalca po identifikacijski številki, ki ni

indeksirana

Analiza in primerjava oblačnih storitev za razvoj mobilnih zalednih storitev

40

3. Iskanje prodajalca po identifikacijski številki, ki je

indeksirana

Kot je razvidno iz zgornje tabele, smo pri drugi primerjalni operaciji najprej naložili vse

shranjene zapise iz tabele prodajalcev, nato smo pa izvedli še klic iskanja podatka iz iskanja

po ne indeksiranem atributu in pretvorbo iz podatkovnega zapisa iz tabele. V tretjem koraku

smo prav tako izvedli iskanje, vendar smo tokrat iskali po indeksiranem ključu. Znotraj

tretjega koraka je zajeta še transformacija iz zapisa v tabeli podatkovne baze v objekt

znotraj mobilne aplikacije.

Tabela 6.3: Načrt za izvedbo primerjalne procedure 3.

Zaporedna številka operacije Opis operacije

1. Kreacija nove mize ob prihodu stranke v gostinsko

poslopje

2. Sprejem naročila s štirimi postavkami prodajnih

artiklov

3. Oddaja naročila

4. Dopolnitev naročila mize s štirimi novimi postavkami

prodajnih artiklov

5. Preklic naročila prve postavke prodajnih artiklov

6. Zaključek naročila in izdelava računa

Pri zadnji operaciji gre za kompleksnejšo operacijo shranjevanja in posodabljanja podatkov,

kajti gre za shranjevanje entitete z relacijo ena proti mnogo in drugimi referencami. Kakor

je razvidno iz zgornje tabele, se v prvem koraku izvrši storitev shranjevanja podatkovnega

zapisa, v drugem koraku modificira in v tretjem posodobi. V četrtem koraku se po

indeksiranem ključu podatek preko klica storitve ponovno naloži v pomnilnik mobilne

aplikacije in transformira v podatkovni objekt, sledi dodatna sprememba objekta in poznejši

klic storitve za posodobitev podatkovnega zapisa.

Da bi v eksperimentalnem delu raziskovalne naloge dobili čim bolj točne in relevantne

rezultate, smo vsako operacijo večkrat ponovili, vse meritve beležili in na koncu upoštevali

povprečni čas. Enako smo kot dodatek znotraj integracije vsakega ponudnika po končanih

meritvah preverili velikost nastale podatkovne baze.

Analiza in primerjava oblačnih storitev za razvoj mobilnih zalednih storitev

41

6.3 Integracija v Microsoft Azure

Zaledne storitve Mobile Apps so sestavni del paketa storitev Azure App Service. Mobile

App ponujajo visoko skalabilno, globalno dosegljivo ogrodje za razvoj mobilnih aplikacij

različnih nivojev in potreb uporabnikov kot tudi razvijalcev. Uporaba zalednih storitev Mobile

Apps tako razvijalcem omogoča [60]:

razvoj domorodnih (angl. »native«) in navzkrižno-platformnih aplikacij (angl. »cross

platform apps«);

povezljivost do sistemov v podjetju;

razvoj aplikacij, ki delujejo tudi brez načina povezave (angl. »offline-ready apps«);

pošiljanje obvestil push.

Z razvojnim ogrodjem Azure Mobile App pridobimo programske knjižnice, ki zagotavljajo

avtentifikacijo in avtorizacijo posameznih uporabnikov mobilne aplikacije ali razvijalcev.

Pridobimo tudi dostop do trajnega shranjevanja podatkov, pri katerih lahko uporabljamo

tradicionalno relacijsko podatkovno bazo kot tudi podatkovno bazo NoSQL. Znotraj ogrodja

so knjižnice s programskimi vmesniki API za možnost implementacije načina delovanja

mobilne aplikacije v načinu brez povezave kakor tudi vmesniki za pošiljanje notifikacij push.

Za potrebe našega raziskovalnega dela smo uporabili Free-različico računa za razvijalce.

Tako smo pridobili pravico do 30-dnevne brezplačne uporabe storitev Microsoft Azure

skupaj z bonitetami v vrednosti 188 evrov za porabo preostalih podatkovnih virov in storitev.

Razvojno ogrodje Azure Mobile App Client SDK za Android vsebuje:

programske knjižnice – to so razredi za dostop do vmesnikov spletnih storitev,

razredi za avtentifikacijo, dostop do podatkov, pošiljanje obvestil push in delo v

načinu brez povezave in podobno;

dokumentacijo – to je referenčna dokumentacija za razvojno okolje AWS Mobile

SDK, vezana na operacijski sistem Android.

Znotraj portala Azure smo morali ustvariti mobilno aplikacijo, ki smo jo uporabili za namene

testiranja in zgoraj opisanih primerjalnih procedur. Pri kreiranju mobilne aplikacije smo

morali kreirati tudi lokacijsko določene podatkovne vire. Platforma Azure je razmeščena na

različnih geografskih regijah širom sveta, večinoma na področju Amerike, Evrope, severne

Azije in Avstralije. Za optimalno delovanje naše mobilne aplikacije in hitro časovno

dostopnost smo izbrali strežnik s podatkovnimi viri v Evropi. Prav tako je treba pri izdelavi

mobilne aplikacije izbrati načrt stroškovnega financiranja v primeru uporabe dodatnih,

Analiza in primerjava oblačnih storitev za razvoj mobilnih zalednih storitev

42

nezakupljenih podatkovnih virov oziroma procesorskih enot. Kot omenjeno, smo za potrebe

našega raziskovalnega dela izbrali brezplačni načrt, omejen na 30 dni uporabe. Na Slika

6.2 je prikazana osnovna stran portala naše mobilne aplikacije limeOrder po končani

namestitvi.

Slika 6.2: Nadzorna plošča portala Azure, iz katerega je razvidno novo ustvarjeno zaledje

namenske aplikacije limeOrder.

Po končani vzpostavitvi mobilne aplikacije na portalu Azure smo vzpostavili začetno

integracijo z razvojnim ogrodjem Azure Mobile Client SDK za operacijski sistem Android.

Pri integraciji je razvijalcem na voljo tudi namenski čarovnik, preko katerega lahko na

podlagi želenih parametrov, potrebnih za delovanje mobilne aplikacije, samodejno izdelamo

projekt mobilne aplikacije s predhodno vključenimi referencami in programskimi knjižnicami

za dostop do zalednih storitev Azure. Znotraj samodejno generiranega projekta mobilne

aplikacije je vključena tudi funkcionalna programska koda, ki znotraj začetne aktivnosti

razvijalcem nazorno prikazuje interakcijo s storitvami dostopa do vnosa in branja podatkov

iz podatkovne baze. Predhodno omenjen čarovnik poskrbi, da so znotraj nastalega projekta

že vključeni avtentifikacijske številke in nizi, ki pri interakciji dovoljujejo uporabo dostopa do

spletnih storitev. Prav tako imajo razvijalci pri procesu vnosa nastavitev in želenih

Analiza in primerjava oblačnih storitev za razvoj mobilnih zalednih storitev

43

parametrov za izdelavo začetnega projekta mobilne aplikacije preko čarovnika, čarovnik v

izdelan projekt, možnost izdelave entitetno-relacijske podatkovne baze, ki jo obravnavani

čarovnik pozneje preko niza podatkovne povezave samodejno vključi v kreiran projekt.

Razvijalci imajo možnost ročne integracije programskih knjižnic do zalednih storitev Azure

v obstoječi projekt mobilne aplikacije. V tem primeru je znotraj projekta treba ročno vključiti

potrebne programske knjižnice, vendar je uporaba čarovnika za samodejno kreacijo

projekta priporočljiva zlasti razvijalcem, ki se prvič srečujejo z integracijo zalednih mobilnih

storitev. Na Slika 6.3 je ponazorjen del programske kode, potreben za integracijo

omenjenega razvojnega ogrodja v projekt naše mobilne aplikacije.

Slika 6.3: Vključitev knjižnic razvojnega ogrodja Azure Mobile Client SDK v projekt

mobilne aplikacije.

Kot omenjeno, portal Azure omogoča izdelavo začetnega projekta mobilne aplikacije preko

čarovnika. S čarovnikom lahko razvijalci tudi izdelajo začetno podatkovno bazo. Za potrebe

izvršitve eksperimentalnega dela magistrskega dela smo morali našo začetno podatkovno

bazo z imenom limeDatabase nadgraditi z namenskimi tabelami in atributi. Razvijalci imajo

možnost urejanja podatkovne baze na samem portalu Azure, prav tako pa je dopuščena

možnost za urejanje podatkovne baze v Microsoft SQL Server Management Studio (SSMS)

ali drugi aplikaciji, ki je povezljiva s podatkovno bazo Microsoft SQL. Za proces izdelave

smo uporabili SQL Server Object Explorer znotraj razvojnega okolja Microsoft Visual Studio

Community Edition 2013. Kot je omenjeno, se za trajno shranjevanje podatkov pri uporabi

zalednih storitev Azure uporablja entitetno-relacijska podatkovna baza ali podatkovna baza

NoSQL. V našem primeru smo uporabili relacijsko podatkovno bazo SQL in znotraj

omenjenega orodja z ukazi Transcript-SQL (T-SQL) izdelali tabele s potrebnimi atributi.

Znotraj nastale podatkovne baze se samodejno kreirajo naslednji atributi:

Analiza in primerjava oblačnih storitev za razvoj mobilnih zalednih storitev

44

id – predstavlja primarni ključ zapisa v tabeli;

createdAt – predstavlja časovni zapis, kdaj je bil zapis vnesen;

updatedAt – predstavlja časovni zapis, kdaj je bil zapis nazadnje spremenjen;

deleted – predstavlja logični zapis v primeru brisanja zapisa iz podatkovne tabele.

Omenjeni atributi se za posamezen zapis v podatkovni tabeli tudi samodejno kreirajo in

posodobijo. Znotraj uporabe podatkovne baze bi želeli izpostaviti, da se v primeru izvršitve

storitve brisanja iz podatkovne tabele sam zapis ne izbriše. V primeru brisanja zapisa se

spremeni zgolj atribut deleted na pozitivno logično vrednost, medtem je ta izbrisan zapis pri

klicu storitev nalaganja podatkov iz podatkovne baze ignoriran. Na Slika 6.4 je prikazana

izdelava podatkovne tabele v skriptnem jeziku T-SQL znotraj orodja SQL Server Object

Explorer.

Slika 6.4: Izdelava tabele v skriptnem jeziku T-SQL.

Pri uporabi razvojnega ogrodja Azure Mobile Client SDK znotraj klica procedur za

shranjevanje ali nalaganje zapisov v podatkovni tabeli uporablja format JSON. V razvojno

ogrodje je vključena razširitev GSON za pretvorbo zapisov v tabeli v objekte znotraj naše

aplikacije ali obratno. Za samodejno serializacijo ali deserializacijo je znotraj objektov

Analiza in primerjava oblačnih storitev za razvoj mobilnih zalednih storitev

45

razvijalcem treba definirati notacije. Slika 6.5 prikazuje primer uporabe notacij. Če

posameznega atributa v programski kodi ne označimo s potrebno notacijo, se ta ne

prenese. Kot je omenjeno, se pri izdelavi podatkovne baze kreirajo dodatni atributi, teh pa

pri razvoju mobilen aplikacije ni potrebno uporabiti.

Slika 6.5: Uporaba notacij za transformacijo podatkov v podatkovni bazi Microsoft SQL.

Po kreaciji podatkovnih tabel in pripadajočih atributov v podatkovni bazi SQL smo v

programski kodi projekta mobilne aplikacije vzpostavili povezavo za dostop do zalednih

Analiza in primerjava oblačnih storitev za razvoj mobilnih zalednih storitev

46

storitev Azure. Na Slika 6.6 lahko vidimo del programske kode v mobilni aplikaciji za

pridobitev uporabe storitev Azure znotraj naše mobilne aplikacije.

Slika 6.6: Avtentifikacijo do storitev Azure.

Za uporabo storitev za delo in shranjevanje podatkov preko podatkovne baze in drugih

klicev zalednih storitev Azure je potrebna uporaba asinhronih opravil. Pri implementaciji

operacij za doseg meritev v eksperimentalnem delu našega magistrskega dela smo naleteli

na težave pri pridobitvi podatkov iz objektov, ki vsebujejo povezave preko tujih ključev do

druge podatkovne tabele z relacijo ena proti mnogo. Omenjena razširitev GSON, ki skrbi

za samodejno pretvorbo zapisov v podatkovni tabeli v programske objekte, deluje zgolj na

zapisih iz podatkovnih tabel brez sklicevanja na zapise v drugi podatkovni tabeli. V ta

namen smo morali za pretvorbo objektov v želeni zapis iz podatkovne tabele izdelati lastne

pretvornike na podlagi razširitve pretvornikov JSON. Na Slika 6.7 vidimo implementacijo

namenskega pretvornika za pretvorbo zapisov iz referenčne podatkovne tabele.

Analiza in primerjava oblačnih storitev za razvoj mobilnih zalednih storitev

47

Slika 6.7: Implementacija serializacije za referenčne zapise v drugi podatkovni tabeli.

Prav tako smo po implementaciji namenskih pretvornikov znotraj zagona naše mobilne

aplikacije morali omenjene pretvornike registrirati. Na Slika 6.8 opazimo vključitev in

registracijo implementiranega vmesnika za pretvorbo zapisov.

Slika 6.8: Registracija implementiranega vmesnika za pretvorbo referenčnih zapisov.

Uporaba zalednih mobilnih storitev Azure omogoča razvijalcem razvoj mobilne aplikacije,

ki deluje v načinu brez povezave. Znotraj programskih knjižnic za dostop do storitev Azure

je vključena možnost uporabe shranjevanja ali nalaganja podatkov, tudi v primeru, kadar

znotraj mobilne aplikacije ni neposrednega dostopa do storitev Azure. V tem primeru se

zapisi za ažuriranje shranijo v medpomnilnik mobilne aplikacije in se posodobijo ob

Analiza in primerjava oblačnih storitev za razvoj mobilnih zalednih storitev

48

naslednji uspešni vzpostavitvi povezave s storitvami Azure. Na Slika 6.9 je prikazano

implementirano opravilo, ki skrbi za naknadno sinhronizacijo podatkov v primeru, kadar je

neposredna povezava s storitvami Azure onemogočena.

Slika 6.9: Del programske kode, ki skrbi za naknadno sinhronizacijo podatkov.

Po končani implementaciji smo pričeli z merjenjem rezultatov z zagonom posameznih

primerjalnih procedur.

6.4 Integracija v Google Firebase

Kot je bilo omenjeno v sami predstavitvi obravnavanega ponudnika zalednih storitev, je

Firebase sestavni del platforme Google Cloud. Razvijalcem ponuja nabor orodij za razvoj

visokokakovostnih mobilnih aplikacij. Znotraj uporabe zalednih storitev Firebase imajo

razvijalci možnost za uporabo naslednjih paketov storitev:

Analiza in primerjava oblačnih storitev za razvoj mobilnih zalednih storitev

49

Google Analytics – pregled in analiza delovanja mobilne aplikacije;

Develop – omogoča razvoj mobilne aplikacije, uporabo sporočil, avtentifikacije

uporabnikov, uporabo realno časovne podatkovne baze, uporabo podatkovnega

prostora v oblaku, gostovanje in laboratorij za testiranje;

Grow – uporaba notifikacij, konfiguracije oddaljenega dostopa, indeksiranje

prometa mobilnih aplikacij, uporabo AdWords in drugo;

Earn – uporaba monetizacije znotraj razvite mobilne aplikacije.

Za potrebe našega raziskovalnega dela smo uporabili brezplačen račun za razvijalce za

dostop do zalednih storitev Firebase. Kot omenjeno pri opisu ponudnika zalednih storitev,

brezplačna različica omogoča omejeno uporabo zalednih storitev kakor tudi omejeno

količino prenosov in velikosti za trajno shranjevanje podatkov. Po uspešni registraciji smo

na portalu Firebase ustvarili nov projekt. Slika 6.10 prikazuje osnovno stran portala naše

mobilne aplikacije po končani namestitvi.

Slika 6.10: Nadzorna plošča portala Firebase, iz katerega je razvidno novo ustvarjeno zaledje

namenske aplikacije limeOrder.

Analiza in primerjava oblačnih storitev za razvoj mobilnih zalednih storitev

50

Po končani namestitvi mobilne aplikacije na portalu za razvijalce Firebase smo vzpostavili

začetno integracijo z razvojnim ogrodjem Firebase SDK za operacijski sistem Android. Za

delovanje zalednih storitev ponudnika Firebase smo morali znotraj razvojnega okolja

Android Studio, preko upravljalnika razvojnih ogrodij (angl. »Android SDK Manager«),

namestiti repozitorij storitev Google (angl. »Google Repository«). V primeru uporabe

razvojnega okolja Android Studio 2.2 je na voljo posebno razvito orodje z nazivom asistent

Firebase (angl. »Firebase Assistant«). Omenjeno orodje omogoča razvijalcem, da preko

čarovnika in vnosa želenih parametrov ter identifikacijske številke mobilne aplikacije na

portalu Firebase samodejno ustvari reference in prenese potrebne programske knjižnice v

projekt mobilne aplikacije. Zaradi konsistentne uporabe in dosega relevantnih rezultatov

merjenja pri izvršitvi primerjalnih procedur smo tudi pri integraciji zalednih storitev

ponudnika Firebase uporabili starejšo različico razvojnega okolja Android Studio 1.5, v

katerem še uporaba asistenta Firebase ni bila implementirana. V ta namen smo morali

ročno prenesti potrebne programske knjižnice in znotraj konfiguracijskih datotek nastaviti

potrebne reference. Na Slika 6.11 lahko vidimo del programske kode, ki je potreben za

integracijo omenjenega razvojnega ogrodja v projekt naše mobilne aplikacije.

Slika 6.11: Vključitev knjižnic razvojnega ogrodja Firebase SDK v projekt mobilne

aplikacije.

Analiza in primerjava oblačnih storitev za razvoj mobilnih zalednih storitev

51

Po uspešni integraciji, ki zagotavlja dostop do uporabe zalednih storitev ponudnika

Firebase, smo izdelali podatkovno bazo. Za trajno shranjevanje podatkov pri uporabi

zalednih storitev je na voljo dokumentno orientirana podatkovna baza NoSQL. Znotraj

portala za razvijalce Firebase je mogoče zgolj izdelati podatkovno bazo, podatki pa se

kreirajo znotraj interakcije uporabe storitev s podatkovno bazo. Uporaba podatkovne baze

Firebase je omejena na pravice posameznih končnih uporabnikov mobilne aplikacije ali

razvijalcev. V namen izdelave mobilne aplikacije smo definirali pravila dostopa tako, da ima

vsak uporabnik mobilne aplikacije možnost branja, spreminjanja in dodajanja zapisov v

podatkovno bazo. Na Slika 6.12 je ponazorjena nastavitev pravic za uporabo podatkovne

baze.

Slika 6.12: Slika prikazuje nastavitev pravil dostopa do podatkovne baze.

Kot omenjeno, se za trajno shranjevanje podatkov uporablja podatkovna baza NoSQL, zato

se podatki iz objektov v mobilni aplikaciji samodejno shranjujejo in pretvorijo v želeni zapis

v podatkovni bazi, prav tako za atribute znotraj podatkovnih objektov ni predvidena uporaba

notacij. Znotraj izvršitve funkcij dostopa do podatkovne baze se za prenos podatkov

uporablja format JSON, enako se podatki samodejno transformirajo iz zapisa v formatu

JSON v podatkovni objekt znotraj mobilne aplikacije. Za omenjeno transformacijo skrbi

referenčna knjižnica GSON. Podatkovna baza ponudnika Firebase ne generira primarnega

ključa samodejno, tako da smo v ta namen morali implementirati ročno generacijo UUID

primarnega ključa.

Za uporabo storitev za delo in shranjevanje podatkov preko podatkovne baze in drugih

klicev zalednih storitev ponudnika Firebase je potrebna uporaba in implementacija

poslušalcev, ki ob končani interakciji s podatkovno bazo vrnejo želen rezultat ali obvestilo

o prekinitvi. Za preprosto uporabo vnosa posameznega zapisa ali branja in nalaganja v

seznam na grafičnem vmesniku končnega uporabnika je uporaba poslušalcev zelo

Analiza in primerjava oblačnih storitev za razvoj mobilnih zalednih storitev

52

preprosta. Znotraj našega primera, v okviru katerega je bilo treba uporabiti kompleksnejšo

poslovno logiko, pa je postopek implementacije za razvijalce zelo zamuden in nepregleden.

Na Slika 6.13 vidimo del programske kode, pri čemer smo za klic posamezne funkcije za

dostop do zalednih storitev uporabili implementacijo poslušalca.

Slika 6.13: Interakcija z zalednimi storitvami ponudnika Firebase.

Analiza in primerjava oblačnih storitev za razvoj mobilnih zalednih storitev

53

Ponudnik zalednih storitev omogoča tudi avtomatsko izdelavo varnostnih kopij podatkov, ki

jo lahko razvijalci vključijo v proceduro programske kode. Ponudnik zalednih storitev

Firebase med drugim omogoča delo v načinu brez povezave do storitev. Pri tem imajo

razvijalci možnost implementacije različnih poslušalcev, ki zajemajo upravljanje s shrambo

v načinu brez povezave, možnostmi pravil medpomnjenja v primeru zrušitve mobilne

aplikacije, možnost implementacije procedure v trenutku prekinitve povezave ter v trenutku

ponovne vzpostavitve povezave in podobno. Po končani implementaciji smo pričeli z

merjenjem rezultatov z zagonom posameznih primerjalnih procedur.

6.5 Integracija v Amazon AWS

Z razvojnim ogrodjem AWS Mobile SDK pridobimo programske knjižnice, ki zagotavljajo

povezavo med odjemalcem in storitvami AWS. Te programske knjižnice zagotavljajo

mobilno optimizirane vmesnike za dostop do storitev, kot so DynamoDB, Amazon S3 in

Amazon Kinesis. Razvojno ogrodje prav tako vsebuje možnost povezave do Amazon

Cognito in Amazon Mobile Analytics, ki so namenjene izključno razvijalcem mobilnih

rešitev.

Za potrebe našega raziskovalnega dela smo uporabili različico AWS Free za operacijski

sistem Android. Razvojno ogrodje AWS Mobile SDK za Android vsebuje naslednje:

Programske knjižnice – tj. razredi za dostop do vmesnikov spletnih storitev, razredi

za avtentifikacijo, ponovno pošiljanje zahtevkov in razrede za upravljanje z

napakami. Vsaka storitev je vključena v svoji programski knjižnici, tako da

razvijalci uporabijo zgolj tiste, ki jih potrebujejo; s tem lahko dosežejo, da je

velikost in kompleksnost razvite mobilne aplikacije manjša.

Primere uporabe – tj. praktični primeri uporabe knjižnic potrebnih za izdelavo

mobilnih rešitev.

Dokumentacijo – tj. referenčna dokumentacija za razvojno okolje AWS Mobile

SDK, vezana na operacijski sistem Android.

Kot je bilo povedano, smo v namene raziskovalnega dela uporabili brezplačni račun za

razvijalce (angl. »free tier development account«), pri katerem smo sledili čarovniku za

namestitev mobilne aplikacije. Uporaba platforme AWS znotraj mobilne aplikacije je tesno

vezana na deljene podatkovne centre, ki se nahajajo na različnih fizičnih lokacijah.

Analiza in primerjava oblačnih storitev za razvoj mobilnih zalednih storitev

54

Platforma AWS je razmeščena na 13 ločenih geografskih regijah širom sveta, večinoma na

področju Amerike, Evrope, severne Azije in Avstralije [44]. Podatkovni centri zagotavljajo

vire, ki zajemajo dostop do podatkovnih baz, analiz, vodenja računov in drugo. Lokacijo

virov je treba izbrati pri izdelavi uporabniškega računa kakor tudi za vsak posamezen

projekt oziroma mobilno aplikacijo. Da bi zagotovili optimalno delovanje in največjo

zmogljivost, smo izbrali podatkovni center v Frankfurtu (EU_CENTRAL_1). Na Slika 6.14

je prikazana osnovno stran portala naše mobilne aplikacije limeOrder po končani

namestitvi.

Slika 6.14: Nadzorna plošča portala AWS, iz katerega je razvidno novo ustvarjeno zaledje

namenske aplikacije limeOrder.

Po uspešni vzpostavitvi projekta na portalu AWS smo prenesli razvojno ogrodje AWS

Mobile SDK za operacijski sistem Android. Slika 6.15 prikazuje del programske kode v

mobilni aplikaciji, ki je bil potreben za integracijo omenjenega razvojnega ogrodja.

Analiza in primerjava oblačnih storitev za razvoj mobilnih zalednih storitev

55

Slika 6.15: Vključitev razvojnega ogrodja AWS Mobile SDK v mobilno aplikacijo.

Po namestitvi razvojnega ogrodja AWS Mobile SDK smo za dostop do naše aplikacije

nastavili potrebna dovoljenja za uporabnika znotraj konzole Amazon Cognito. Na Slika 6.16

je prikazana programska koda avtentifikacije do storitev AWS znotraj naše mobilne

aplikacije.

Slika 6.16: Avtentifikacija do storitev AWS.

Analiza in primerjava oblačnih storitev za razvoj mobilnih zalednih storitev

56

Po uspešni kreaciji in pridobitvi poverilnic smo izdelali podatkovno bazo s tabelami,

potrebnimi za izvedbo naših operacij. Pri tem smo morali za vsako izdelano tabelo izbrati

tudi pravice dostopa. Vsaka novo ustvarjena tabela ima privzeto zaklenjen dostop do

podatkov za neidentificirane uporabnike; poleg tega pa je mogoče za vsako posamezno

tabelo in za vsakega posameznega uporabnika nastaviti različne nivoje pravic. Pravice so

vezane na vsako mobilno storitev AWS in na posamezno akcijo znotraj posamezne storitve.

Pri uporabi mobilnih storitev AWS lahko imajo določeni uporabniki zgolj pravice za dostop

do baze, drugi zgolj za vnos podatkov, tretji pa nimajo dostopa do podatkov, vendar imajo

dostop do upravljanja poverilnic storitev AWS ali podobno. Za potrebe našega

raziskovalnega dela smo našemu uporabniškemu računu nastavili vse pravice in

pripadajoče akcije za delo s podatkovno bazo. Kot je bilo že omenjeno, platforma AWS

Mobile ponuja dostop do shranjevanja podatkov, preko njihove storitve Amazon

DynamoDB, ki predstavlja NoSQL podatkovno bazo. Razvijalcem je na voljo tudi uporaba

Amazon Data Storage, ki predstavlja shranjevanje in upravljanje z multimedijskimi

datotekami, kot so slike, posnetki, digitalna potrdila in drugo.

Pri sami vzpostavitvi in zagonu posameznih operacij smo naleteli na začetne težave, kajti

znotraj implementacije vsakega vmesnika za dostop do podatkov je treba eksplicitno

zapisati regijo dostopa do podatkovnih virov. Pri tem se privzeto uporablja regija

US_WEST_1, kar je za razvijalca, ki ni pri vzpostavitvi projekta izbral omenjene regije, zelo

moteče. Na Slika 6.17 je prikazan del programske kode, iz katere je razvidna eksplicitna

identifikacija regije dostopa do podatkovnih centrov oziroma virov. Kot je bilo že omenjeno,

smo zaradi optimalnega delovanja pri razvoju mobilne aplikaciji uporabili vire iz

podatkovnega centra v Frankfurtu (EU_CENTRAL_1).

Slika 6.17: Eksplicitno definiranje regije podatkovnih centrov.

Kot je bilo povedano, ponudnik zalednih storitev AWS Mobile za trajno shranjevanje

podatkov znotraj storitve DynamoDB uporablja podatkovno bazo NoSQL, kar nam je

omogočilo hitro implementacijo in upravljanje s podatki pri kompleksnejših razredih. Za

razliko od uporabe entitetno-relacijskih podatkovnih baz za shranjevanje podatkov

kompleksnejših razredov nismo potrebovali implementacije namenskih pretvornikov, ki bi

Analiza in primerjava oblačnih storitev za razvoj mobilnih zalednih storitev

57

reševali primere v relacijah ena proti mnogo. Pri implementaciji je za posamezne entitete

treba zgolj uporabiti različne notacije. Na Slika 6.18 je prikazan primer uporabe notacij za

preprost razred, ki smo ga uporabili pri implementaciji.

Analiza in primerjava oblačnih storitev za razvoj mobilnih zalednih storitev

58

Slika 6.18: Uporaba notacij za podatkovno bazo Amazon DynamoDB.

Analiza in primerjava oblačnih storitev za razvoj mobilnih zalednih storitev

59

Iz zgornje slike je razvidna uporaba notacij brez katerih shranjevanje, spreminjanje in

nalaganje podatkov ne delujejo. Pri implementaciji shranjevanja podatkov v DynamoDB so

na voljo naslednje notacije [61]:

DynamoDBAttribute – predstavlja navaden atribut v tabeli;

DynamoDBAutoGeneratedKey – predstavlja dodatek primarnega ključa in

omogoča samodejno kreacijo primarnega ključa;

DynamoDBDocument – predstavlja kompleksnejši objekt ali razred za serializacijo;

DynamoDBHashKey – predstavlja primarni ključ v tabeli;

DynamoDBIgnore – predstavlja ignoriran atribut v tabeli;

DynamoDBIndexHashKey – predstavlja sekundarni ključ v tabeli;

DynamoDBIndexRangeKey – predstavlja globalni sekundarni ključ v tabeli;

DynamoDBMarshalling – predstavlja zapis, za katerega je treba izdelati lastno

implementacijo za serializacijo objektov;

DynamoDBNativeBoolean – predstavlja dodatek navadnem atributu in predstavlja

logični da/ne atribut v tabeli;

DynamoDBRangeKey – predstavlja indeksiran atribut;

DynamoDBTable – predstavlja razred celotne tabele;

DynamoDBVersionAttribute – predstavlja verzijo atributa v primeru posodobitev.

Za uporabo storitev za delo in shranjevanje podatkov preko Amazon DynamoDB kot tudi

uporabe drugih vmesnikov je bila potrebna implementacija asinhronih opravil, kajti v

operacijskem sistemu Android razvojno ogrodje AWS Mobile SDK ne dopušča klica funkcij

znotraj glavne niti procesa naše mobilne aplikacije. Razvojno ogrodje AWS Mobile SDK

dopušča in predvideva uporabo mobilne aplikacije, kadar je dostop do zalednih storitev

moten ali prekinjen. V tem primeru je treba uporabiti orodje Amazon Cognito Sync Manager

in znotraj mobilne aplikacije nastaviti potrebno konfiguracijo. Po končani implementaciji smo

pričeli z merjenjem rezultatov z zagonom posameznih primerjalnih procedur.

6.6 Integracija v Backendless

Backendless MBAAS predstavljajo sistem integriranih, mobilno orientiranih storitev preko

REST programskih vmesnikov API [50]. Z razvojnim ogrodjem Backendless SDK pridobimo

Analiza in primerjava oblačnih storitev za razvoj mobilnih zalednih storitev

60

programske knjižnice, ki zagotavljajo dostop do zalednih storitev mBaaS ponudnika

Backendless. Obravnavani sistem storitev zajema naslednje:

upravljanje z uporabniki;

shranjevanje podatkov;

geolociranje;

pretok medijskih vsebin;

upravljanje elektronskih sporočil;

notifikacije push;

izdelavo poslovne logike po meri;

analize;

generiranje programske kode za mobilne naprave.

Znotraj razvojnega ogrodja Backendless SDK za Android smo pridobili programsko

knjižnico za dostop do spletnih storitev preko programskih vmesnikov API, začetno

dokumentacijo in osnovne primere uporabe. Za namene raziskovalnega dela smo se

registrirali kot brezplačni razvijalec. Omejitve uporabe znotraj brezplačnega preizkusa

zalednih storitev so podrobneje opisane v predhodnem poglavju. Pri izdelavi uporabniškega

računa in vzpostavitve aplikacije na portalu za razvijalce, za razliko od drugih ponudnikov

zalednih storitev, ni možnosti ročnega vnosa lokacije uporabe računalniških virov. Na Slika

6.19 vidimo osnovno stran portala za našo mobilno aplikacijo limeOrder po končani

namestitvi.

Analiza in primerjava oblačnih storitev za razvoj mobilnih zalednih storitev

61

Slika 6.19: Nadzorna plošča portala Backendless, iz katerega je razvidno novo ustvarjeno

zaledje namenske aplikacije limeOrder.

Po uspešni vzpostavitvi projekta na portalu za razvijalce Backendless smo prenesli

razvojno ogrodje Backendless SDK za operacijski sistem Android. V postopku namestitve

smo znotraj razvojnega okolja Android Studio morali ročno namestiti in integrirati

programsko knjižnico. Dodatna modifikacija znotraj konfiguracijskih datotek za integracijo v

našo aplikacijo ni bila potrebna. Po uspešni integraciji programske knjižnice v našo mobilno

aplikacijo smo morali v programski kodi vzpostaviti začetno povezavo. Slika 6.20 prikazuje

del programske kode, ki nam je omogočila uporabo zalednih storitev podjetja Backendless.

Analiza in primerjava oblačnih storitev za razvoj mobilnih zalednih storitev

62

Slika 6.20: Avtentifikacijo za uporabo zalednih storitev Backendless.

Po uspešni integraciji, ki zagotavlja dostop do uporabe zalednih storitev, smo izdelali

podatkovno bazo za namene našega raziskovalnega dela. Za trajno shranjevanje podatkov

pri uporabi zalednih storitev podjetja Backendless je na voljo entitetno-relacijska

podatkovna baza. Pri sami izdelavi podatkovne baze je razvijalcem v pomoč prilagojen

čarovnik, ki po kreaciji tabele omogoča napredne nastavitve za posamezen atribut v tabeli.

Na Slika 6.21 je prikazana uporaba čarovnika pri kreaciji naše podatkovne baze. Čarovnik

prav tako omogoča takojšnjo izdelavo validacije na nivoju podatkovne baze kot tudi

nastavitev primarnih ključev ter indeksiranja atributov.

Slika 6.21: Izdelava atributov podatkovne baze preko namenskega čarovnika za uporabo

zalednih storitev Backendless.

Znotraj izdelave naše mobilne aplikacije je za uporabo objektov, ki se shranjujejo v

podatkovno bazo, dovoljena uporaba javnih atributov. Ogrodje Backendless za

transformacijo objektov v podatkovno bazo ne potrebuje dodatnih notacij. Preostale

dodatne nastavitve posameznih atributov se tako nastavljajo znotraj predhodno

omenjenega čarovnika na portalu Backendless. Znotraj tabele se samodejno kreirajo

naslednji atributi za delovanje:

Analiza in primerjava oblačnih storitev za razvoj mobilnih zalednih storitev

63

objectId – predstavlja primarni ključ zapisa v tabeli;

ownerId – predstavlja zapis lastnika v primeru, da aplikacija podpira za več

uporabnikov;

created – predstavlja časovni zapis o tem, kdaj je bil zapis vnesen;

updated – predstavlja časovni zapis o tem, kdaj je bil zapis nazadnje spremenjen.

Za potrebe našega raziskovalnega dela smo izmed samodejno kreiranih atributov uporabili

zgolj objectId. Na SSlika 6.22 je programska koda izdelave enostavnega razreda za izvedbo

zgoraj navedenih operacij.

Slika 6.22: Struktura objekta za shranjevanje v podatkovno bazo ponudnika Backendless.

Med procesom implementacije mobilne aplikacije smo ugotovili, da posamezne tabele

podatkovne baze ni treba predhodno ustvarjati. Procedura na strani ponudnika

Backendless ob prvem klicu funkcije shranjevanja podatka, ki je v skladu z zahtevami

izdelave objektov za shranjevanje znotraj mobilne aplikacije, sama ustvari ustrezno tabelo

Analiza in primerjava oblačnih storitev za razvoj mobilnih zalednih storitev

64

v podatkovni bazi, kar je s stališča razvijalcev, ki niso vešči modeliranja entitetno-relacijskih

podatkovnih baz, zelo dobrodošlo. Prav tako v tem primeru razvijalcem ni treba skrbeti za

izdelavo tujih ključev v primeru relacij tabel ena proti mnogo, kajti za to poskrbi zgoraj

omenjena samodejna procedura znotraj podatkovne baze Backendless. Za reševanje

relacij ena proti mnogo, znotraj serializacije objektov, nismo potrebovali implementacije

dodatnih namenskih vmesnikov za serializacijo in deserializacijo objektov. Na Slika 6.23 je

del programske kode, kjer se znotraj klica funkcije za nalaganje podatkov objekt samodejno

serializira. Zraven samodejne serializacije in deserializacije zapisov v tabeli podatkovne

baze so na voljo funkcije za pridobitev in upravljanje s podatki v klasičnem tekstovnem

načinu v strukturi JSON.

Za uporabo storitev za delo in shranjevanje podatkov preko podatkovne baze in drugih

klicev zalednih storitev Backendless MBAAS je dovoljena uporaba sinhronih in asinhronih

opravil. V primeru uporabe sinhronih funkcij preko glavne niti procesa mobilne aplikacije je

tako predvidena implementacija poslušalcev (angl. »listeners«), ki vračajo rezultate in

informacije nazaj na glavno nit procesa. V našem primeru izdelave mobilne aplikacije smo

uporabili pristop implementacije z uporabo asinhronih opravil. Na Slika 6.23 lahko vidimo

del programske kode, kjer smo za klic posameznih funkcij za dostop do storitev

Backendless uporabili izvršitev znotraj asinhronega opravila. Pri implementaciji uporabe

storitev omenjenega ponudnika je pomembno tudi to, da uporaba mobilne aplikacije v

načinu brez povezave do zalednih storitev ni možna.

Analiza in primerjava oblačnih storitev za razvoj mobilnih zalednih storitev

65

Slika 6.23: Programska koda, iz katere je razvidna serializacija objektov znotraj

pripadajočih funkcij in uporaba asinhronega opravila.

Analiza in primerjava oblačnih storitev za razvoj mobilnih zalednih storitev

66

Po končani implementaciji smo pričeli z merjenjem rezultatov z zagonom posameznih

primerjalnih procedur.

6.7 Integracija v Kinvey

Ponudnik zalednih storitev Kinvey zagotavlja razvojno ogrodje za razvoj domorodnih,

hibridnih in spletnih aplikacij. V naboru storitev zagotavlja mehanizme za uporabniško

izkušnjo pri delu brez povezave, sinhronizacijo podatkov, avtentifikacijo uporabnikov in

podobno. Vsi shranjeni podatki pri ponudniku zalednih storitev Kinvey so zaščiteni po

algoritmu AES-256 [62]. Ponudnik Kinvey znotraj nabora uporabe zalednih storitev zajema:

upravljanje z dostopom in identiteto uporabnikov;

trajno shranjevanje podatkov;

shranjevanje datotek;

upravljanje z notifikacijami, push storitvami SMS in storitvami elektronskih sporočil;

uporabo lokacijskih storitev;

podporo svetilnikov (angl. »Beacon support«);

analizo na podlagi uporabnikov ali porabe.

Znotraj razvojnega ogrodja Kinvey za Android smo pridobili programsko knjižnico za dostop

do zalednih spletnih storitev. Na portal za razvijalce smo se registrirali kot brezplačni

razvijalec. Omejitve uporabe znotraj brezplačnega preizkusa zalednih storitev so

podrobneje opisane v predhodnem poglavju za ponudnika Kinvey. Pri kreiranju

uporabniškega računa in vzpostavitve aplikacije na portalu za razvijalce, enako kot pri

ponudniku Backendless, opisanem v predhodnem poglavju, ni možnosti ročnega vnosa

lokacije uporabe računalniških virov. Na Slika 6.24 vidimo osnovno stran portala naše

mobilne aplikacije limeOrder po končani namestitvi. Pri sami izdelavi mobilne aplikacije je

treba omeniti dejstvo, da za razliko od drugih ponudnikov zalednih storitev znotraj podjetja

Kinvey priporočajo namensko štirislojno arhitekturo mobilne aplikacije. Po njihovem mnenju

naj bi se njihov način štirislojne arhitekture učinkovito izkazal pri izgradnji kompleksnejših

mobilnih aplikacij kot tudi pri poznejšem vzdrževanju in urejanju programske kode [63].

Predlagana arhitektura se tako deli na naslednje sloje:

sloj odjemalca (angl. »client tier«) – upravljanje z uporabniki, medpomnjenje v

primeru dela v načinu brez povezave, ustvarjanje notifikacij push in podobno;

Analiza in primerjava oblačnih storitev za razvoj mobilnih zalednih storitev

67

sloj dostave (angl. »delivery tier«) – nalaganje in transformacija podatkov na

podlagi preferenc v sloju odjemalca (kontekst aplikacije, prijavljen uporabnik,

lokacija, stanje mobilne naprave in podobno);

sloj agregacije (angl. »aggregation tier«) – upravljanje s prenosom podatkov;

sloj storitev (angl. »service tier«) – predstavlja interakcijo mobilne aplikacije z

zalednimi storitvami

Slika 6.24: Nadzorna plošča portala Kinvey.

Znotraj nadzorne plošče na portalu za razvijalce obravnavanega ponudnika smo zasledili

možnost sodelovanja več razvijalcev. Znotraj vzpostavitve sodelovanja nas vodi čarovnik,

preko katerega na podlagi identifikatorja elektronske pošte vnesemo druge razvijalce, ki jim

lahko nastavimo tudi različne pravice. V našem primeru brezplačnega računa za razvijalce

sodelovanje ni možno. Po končani vzpostavitvi mobilne aplikacije na portalu Kinvey smo

vzpostavili začetno integracijo z razvojnim ogrodjem Kinvey Client SDK. V postopku

namestitve smo znotraj razvojnega okolja Android Studio morali ročno namestiti in

integrirati programsko knjižnico za dostop do zalednih storitev Kinvey, skupaj s preostalimi

programskimi knjižnicami za pravilno delovanje dostopa do zalednih storitev. Za pravilno

delovanje potrebuje programska knjižnica Kinvey Client SDK še knjižnico GSON, knjižnico

Analiza in primerjava oblačnih storitev za razvoj mobilnih zalednih storitev

68

GUAVA, programske knjižnice za dostop do Google HTTP programskih vmesnikov API in

knjižnico Jackson. Dodatna modifikacija znotraj konfiguracijskih datotek za integracijo v

našo aplikacijo ni bila potrebna. Po uspešni integraciji programske knjižnice v našo mobilno

aplikacijo smo morali v programski kodi vzpostaviti začetno povezavo. Na Slika 6.25 je del

programske kode, ki nam je omogočila uporabo zalednih storitev podjetja Kinvey.

Slika 6.25: Avtentifikacija do storitev Kinvey.

Po implementirani začetni vzpostavitvi dostopa do zalednih storitev ponudnika Kinvey smo

pričeli z izdelavo podatkovne baze. Podatkovno bazo za trajno shranjevanje podatkov lahko

izdelamo preko portala za razvijalce ali pa se podatkovna tabela z atributi samodejno kreira

iz objekta v mobilni aplikaciji ob klicu prve interakcije s podatkovno bazo. Znotraj portala je

omogočena zgolj kreacija podatkovne tabele, brez dodatnega orodja za izdelavo želenih

atributov ali relacij. Kot omenjeno, se atributi za posamezno podatkovno tabelo samodejno

kreirajo ob prvi interakciji s podatkovno bazo. Pri tem je dovoljena uporaba naslednjih tipov

atributov:

String – tekstovni niz podatkov;

Int – vrednost celega števila;

Double – vrednost decimalnega števila;

Long – vrednost razširjenega decimalnega števila;

Boolean – vrednost logičnega operanda da ali ne;

Collection – vrednost kolekcije v primerjavi sklicevanja na zapis v drugi podatkovni

tabeli;

Analiza in primerjava oblačnih storitev za razvoj mobilnih zalednih storitev

69

GenericJSON – vrednost po meri v formatu JSON.

Znotraj izvršitve funkcij dostopa do podatkovne baze se za prenos podatkov uporablja

format JSON, prav tako se podatki samodejno transformirajo iz zapisa v formatu JSON v

podatkovni objekt znotraj mobilne aplikacije. Za omenjeno transformacijo skrbi referenčna

knjižnica GSON. Za uspešno samodejno kreacijo atributov v podatkovni tabeli kot tudi za

transformacijo zapisa v formatu JSON v podatkovni objekt je potrebna uporaba notacij. Na

Slika 6.26 vidimo primer uporabe notacij. Če posameznega atributa v programski kodi ne

označimo s potrebno notacijo, se ta ne prenese. Znotraj nastale podatkovne baze se

samodejno ustvarijo naslednji atributi:

_id – predstavlja primarni ključ zapisa v podatkovni tabeli;

_acl – predstavlja id uporabnika, ki je zapis izdelal;

_kmd – predstavlja skupek časovnih zapisov, kdaj je bil zapis ustvarjen in kdaj je

bil zapis nazadnje spremenjen.

Slika 6.26: Uporaba notacij za transformacijo podatkov.

Analiza in primerjava oblačnih storitev za razvoj mobilnih zalednih storitev

70

Uporaba zgoraj omenjenih samodejno kreiranih atributov, znotraj projekta mobilen

aplikacije, je opcijska; v našem primeru smo uporabili zgolj atribut, ki je primarni ključ.

Podatkovna baza ponudnika Kinvey ne generira primarnega ključa samodejno, zato smo v

ta namen morali implementirati ročno generacijo UUID primarnega ključa.

Pred prvo interakcijo dostopa do zalednih storitev Kinvey pri projektu mobilne aplikacije

smo najprej prijavili uporabnika. Za produkcijsko delo je predvideno, da se vsak razvijalec

ali končni uporabnik pred uporabo mobilne aplikacije, ki vsebuje dostop do zalednih storitev

Kinvey, identificira z unikatnim žetonom ali uporabniškim imenom oziroma geslom. Na Slika

6.27 je del programske kode za identifikacijo uporabnika. Kot je razvidno s slike, je dovoljen

tudi generična identifikacija uporabnika, ki je vezana na lastnika ustvarjene aplikacije na

portalu za razvijalce Kinvey. Za potrebe naše mobilne aplikacije smo za identifikacijo

uporabnika uporabili omenjen način.

Slika 6.27: Potrebna prijava uporabnika pred interakcijo z zalednimi storitvami ponudnika

Kinvey.

Za uporabo storitev za delo in shranjevanje podatkov preko podatkovne baze in drugih

klicev zalednih storitev ponudnika Kinvey je potrebna uporaba in implementacija

poslušalcev, ki ob končani interakciji s podatkovno bazo vrnejo želen rezultat ali napako..

Na Slika 6.28 je prikazan del programske kode, pri čemer smo za klic posameznih funkcij

za dostop do zalednih storitev Kinvey uporabili implementacijo poslušalca. Za preprosto

Analiza in primerjava oblačnih storitev za razvoj mobilnih zalednih storitev

71

uporabo vnosa posameznega zapisa ali branja in nalaganja v seznam na grafičnem

vmesniku končnega uporabnika je uporaba poslušalcev zelo preprosta. V primeru

kompleksnejše poslovne logiko pa je postopek implementacije za razvijalce zelo zamuden

in nepregleden. V ta namen je na portalu Kinvey na voljo tudi implementacija lastne

poslovne logike na strežniku. Na voljo so naslednji načini prenosa poslovne logike na

strežnik:

Kljuke zbirk (angl. »Collection hooks«) – implementacija omogoča spreminjanje

zahtevkov podatkov na strežniku. Način je primeren, kadar zahtevek vsebuje zapis

podatkov s sklici zapisov iz drugih tabel (relacije ena proti mnogo). V tem primeru

lahko razvijalci izdelajo specifično logiko, kako se ti zapisi shranijo ali uredijo

znotraj podatkovne baze.

Končne točke po meri (angl. »Custom endpoints«) – implementacija omogoča

izdelavo programske kode ali celotnih funkcij, ki se v celoti izvedejo na strežniku. S

tem lahko razvijalci znotraj mobilne aplikacije izdelano proceduro uporabijo preko

programskega vmesnika API.

Skupna koda (angl. »Common Code«) – omogoča uporabo končnih točk po meri

ali kljuke zbirk, ki so implementirali drugi razvijalci in so te posredovali v javno

skupno rabo.

Urnik (angl. »Scheduled Code«) – omogoča zagon ali izvrševanje posamezno

implementirane procedure po vnaprej določenem urniku ali na podlagi

specifičnega dogodka.

Analiza in primerjava oblačnih storitev za razvoj mobilnih zalednih storitev

72

Slika 6.28: Programska koda, iz katere je razvidna uporaba poslušalcev pri klicu zalednih

storitev Kinvey.

Analiza in primerjava oblačnih storitev za razvoj mobilnih zalednih storitev

73

Ponudnik storitev Kinvey omogoča uporabo aplikacije v načinu brez povezave. Pri

implementaciji moramo upoštevati naslednje politike medpomnjenja (angl. »caching

policy«) in politike načina brez povezave (angl. »offline policy«), preko katerih razvijalci

nastavijo razreševanje sinhronizacije po naslednjih načinih:

OfflinePolicy.ONLINE_FIRST – po pridobitvi povezave se najprej prenesejo

podatki iz strežnika in se prepišejo z obstoječimi znotraj mobilne aplikacije;

OfflinePolicy.LOCAL_FIRST – po pridobitvi povezave se najprej lokalni podatki,

nastali v času brez povezave, prenesejo podatki na strežnik in po potrebi prepišejo

z obstoječimi;

OfflinePolicy.ALWAS_ONLINE – omenjen način ne omogoča uporabe mobilne

aplikacije v času brez povezave.

Za uporabo mobilne aplikacije pri povezovanju do storitev ponudnika Kinvey je pri tem treba

omenjene politike implementirati znotraj izdelave poslušalcev. Na Slika 6.29 vidimo del

programske kode, ki prikazuje prenos podatkov v načinu brez povezave, pri upoštevanju

politike, da se ob vzpostavitvi povezave najprej prenesejo in posodobijo podatki nastali na

napravi mobilne aplikacije.

Slika 6.29: Del programske kode za delo v načinu brez povezave.

Po končani implementaciji smo pričeli z merjenjem rezultatov z zagonom posameznih

primerjalnih procedur.

Analiza in primerjava oblačnih storitev za razvoj mobilnih zalednih storitev

74

7 KOMPARATIVNA ANALIZA PONUDNIKOV STORITEV BAAS

V tem poglavju smo na podlagi zastavljenih raziskovalnih vprašanj in pridobljenih podatkov

iz implementacije uporabe zalednih storitev različnih ponudnikov v izdelano mobilno

aplikacijo, podrobneje opisanih v predhodnem poglavju, predstavili rezultate merjenj,

izdelali primerjavo in podali končne ugotovitve. V sklopu analize obravnavanih ponudnikov

smo izvedli naslednje primerjave:

primerjavo po hitrosti dostopa do podatkov;

primerjavo po kompleksnosti implementacije;

primerjavo po možnosti izdelave poslovne logike po meri;

primerjavo po možnosti uporabe brez povezave;

primerjavo po velikosti zapisov v podatkovni bazi;

primerjavo po zajetih storitvah po cenovnem modelu.

7.1 Rezultati merjenja implementacije zalednih storitev

V podpoglavju so navedeni rezultati meritev, pridobljenih z integracijo zalednih storitev

posameznega ponudnika v namensko mobilno aplikacijo. Na podlagi merjenja smo pridobili

podatke, s katerimi smo lahko storitve izbranih ponudnikov pozneje primerjali po prvem

podanem kriteriju hitrosti dostopa do podatkov. Enako smo med izvedbo primerjalnih

procedur samih pridobili podatke o velikosti nastalih podatkov ter zasedenosti podatkovne

baze s strani izbranega ponudnika. Z namenom, da bi zagotovili relevantne rezultate, smo

za vsako meritev uporabili deset poskusov merjenja.

Microsoft Azure

Po končani integraciji storitev ponudnika Microsoft Azure smo na podlagi merjenja pridobili

podatke za vsak korak primerjalne procedur oziroma operacij. V naslednjih tabelah (Tabela

7.1, Tabela 7.2, Tabela 7.3) so prikazane meritve znotraj primerjalnih operacij na podlagi

integracije storitev ponudnika Microsoft Azure po posameznih korakih.

Analiza in primerjava oblačnih storitev za razvoj mobilnih zalednih storitev

75

Tabela 7.1: Rezultati merjenja integracije storitev Microsoft Azure po korakih za primerjalno

proceduro 1.

Zaporedna številka poskusa

Korak 1 Korak 2 Korak 3 Skupen čas

1. 2315 ms 1021 ms 15601 ms 18937 ms

2. 2178 ms 997 ms 18875 ms 22050 ms

3. 2549 ms 1085 ms 17008 ms 20642 ms

4. 2612 ms 1121 ms 18905 ms 22638 ms

5. 2438 ms 1047 ms 17606 ms 21091 ms

6. 2269 ms 987 ms 19963 ms 23219 ms

7. 2413 ms 929 ms 19480 ms 22822 ms

8. 2681 ms 1048 ms 16843 ms 20572 ms

9. 2369 ms 1036 ms 17828 ms 21233 ms

10. 2741 ms 1011 ms 17286 ms 21038 ms

Tabela 7.2: Rezultati merjenja integracije storitev Microsoft Azure po korakih za primerjalno

proceduro 2.

Zaporedna številka poskusa

Korak 1 Korak 2 Korak 3 Skupen čas

1. 572 ms 307 ms 203 ms 1082 ms

2. 591 ms 298 ms 166 ms 1055 ms

3. 596 ms 287 ms 140 ms 1023 ms

4. 576 ms 301 ms 200 ms 1077 ms

5. 548 ms 295 ms 137 ms 980 ms

6. 612 ms 287 ms 119 ms 1018 ms

7. 637 ms 293 ms 176 ms 1106 ms

8. 587 ms 263 ms 138 ms 988 ms

9. 599 ms 286 ms 154 ms 1039 ms

10. 583 ms 278 ms 138 ms 999 ms

Tabela 7.3: Rezultati merjenja integracije storitev Microsoft Azure po korakih za primerjalno

proceduro 3.

Zaporedna številka poskusa

Korak 1 Korak 2 Korak 3 Korak 4 Korak 5 Korak 6 Skupen čas

1. 458 ms 691 ms 44 ms 125 ms 15 ms 39 ms 1372 ms

2. 441 ms 721 ms 38 ms 137 ms 12 ms 46 ms 1395 ms

3. 471 ms 711 ms 47 ms 148 ms 19 ms 50 ms 1446 ms

4. 469 ms 702 ms 43 ms 143 ms 7 ms 41 ms 1405 ms

5. 478 ms 699 ms 39 ms 154 ms 18 ms 75 ms 1463 ms

Analiza in primerjava oblačnih storitev za razvoj mobilnih zalednih storitev

76

6. 471 ms 692 ms 48 ms 134 ms 12 ms 47 ms 1404 ms

7. 477 ms 673 ms 47 ms 152 ms 18 ms 42 ms 1409 ms

8. 475 ms 688 ms 51 ms 149 ms 12 ms 22 ms 1397 ms

9. 466 ms 698 ms 43 ms 144 ms 19 ms 28 ms 1398 ms

10. 512 ms 691 ms 58 ms 159 ms 15 ms 56 ms 1491 ms

V Tabela 7.4 so ponazorjeni skupni rezultati merjenja vseh primerjalnih operacij po desetih

preizkusih.

Tabela 7.4: Rezultati merjenja posameznih operacij pri integraciji Microsoft Azure.

Zaporedna številka

poizkusa

Operacija 1 Operacija 2 Operacija 3

1. 18937 ms 1082 ms 1372 ms

2. 22050 ms 1055 ms 1395 ms

3. 20642 ms 1023 ms 1446 ms

4. 22638 ms 1077 ms 1405 ms

5. 21091 ms 980 ms 1463 ms

6. 23219 ms 1018 ms 1404 ms

7. 22822 ms 1106 ms 1409 ms

8. 20572 ms 988 ms 1397 ms

9. 21233 ms 1039 ms 1398 ms

10. 21038 ms 999 ms 1491 ms

21424, 2ms 1036,7 ms 1418 ms

Na Slika 7.1 je grafičen prikaz skupnih rezultatov, predstavljenih v zgornji tabeli.

Analiza in primerjava oblačnih storitev za razvoj mobilnih zalednih storitev

77

Slika 7.1: Graf rezultata za merjenje posameznih operacij pri integraciji Microsoft Azure.

Iz rezultatov je razvidno, da je uporaba relacijske podatkovne baze preko zalednih storitev

Azure za vstavljanje in branje podatkov precej hitra in zahteva zelo malo časa, medtem ko

se čas izvedbe posamezne operacije pri posodabljanju ali branju večje količine podatkov

upočasni. Iz zgornje tabele je tudi razvidno, da s testiranjem nismo zasedli velike količine

prostora, za izvedbo primerjalnih operacij smo porabili 6 MB prostora. Med procesom

integracije dostopa do storitev Azure smo ugotovili, da ponudnik omenjenih storitev

omogoča delno selitev poslovne logike mobilne aplikacije na sam strežnik. Operacije na

strežniku so v tem primeru omejene na operacije vstavljanja, brisanja, branja ali urejanja

podatkov, prav tako pa lahko razvijalci kreirane operacije zaganjajo z urnikom v določenem

časovnem intervalu ali na zahtevo, znotraj klica kreiranega opravila v mobilni aplikaciji.

Google Firebase

Po končani integraciji storitev ponudnika Google Firebase smo na podlagi merjenja pridobili

podatke za vsak korak primerjalne procedur oziroma operacij. V naslednjih tabelah (Tabela

7.5, Tabela 7.6, Tabela 7.7) so prikazane meritve znotraj primerjalnih operacij na podlagi

integracije storitev ponudnika Google Firebase po posameznih korakih.

0

2000

4000

6000

8000

10000

12000

14000

16000

18000

1. 2. 3. 4. 5. 6. 7. 8. 9. 10.

Hit

rost

(m

s)

Zaporedna ševilka poskusa

Operacija 1

Operacija 2

Operacija 3

Analiza in primerjava oblačnih storitev za razvoj mobilnih zalednih storitev

78

Tabela 7.5: Rezultati merjenja integracije storitev Google Firebase po korakih za primerjalno

proceduro 1.

Zaporedna številka

poskusa

Korak 1 Korak 2 Korak 3 Skupen čas

1. 80 ms 92 ms 197 ms 369 ms

2. 104 ms 102 ms 201 ms 407 ms

3. 108 ms 99 ms 207 ms 414 ms

4. 83 ms 95 ms 199 ms 377 ms

5. 92 ms 97 ms 192 ms 381 ms

6. 144 ms 143 ms 231 ms 518 ms

7. 97 ms 81 ms 189 ms 367 ms

8. 89 ms 78 ms 181 ms 348 ms

9. 92 ms 80 ms 192 ms 364 ms

10. 97 ms 89 ms 200 ms 386 ms

Tabela 7.6: Rezultati merjenja integracije storitev Google Firebase po korakih za primerjalno

proceduro 2.

Zaporedna številka poskusa

Korak 1 Korak 2 Korak 3 Skupen čas

1. 94 ms 429 ms 326 ms 849 ms

2. 107 ms 406 ms 335 ms 848 ms

3. 112 ms 443 ms 300 ms 855 ms

4. 106 ms 469 ms 306 ms 881 ms

5. 102 ms 407 ms 320 ms 829 ms

6. 98 ms 381 ms 330 ms 809 ms

7. 111 ms 426 ms 284 ms 821 ms

8. 104 ms 406 ms 328 ms 838 ms

9. 108 ms 374 ms 352 ms 834 ms

10. 80 ms 466 ms 322 ms 868 ms

Tabela 7.7: Rezultati merjenja integracije storitev Google Firebase po korakih za primerjalno

proceduro 3.

Zaporedna številka poskusa

Korak 1 Korak 2 Korak 3 Korak 4 Korak 5 Korak 6 Skupen čas

1. 229 ms 372 ms 1 ms 4 ms 5 ms 12 ms 623 ms

2. 239 ms 362 ms 2 ms 7 ms 2 ms 4 ms 616 ms

Analiza in primerjava oblačnih storitev za razvoj mobilnih zalednih storitev

79

3. 254 ms 319 ms 2 ms 4 ms 6 ms 7 ms 592 ms

4. 291 ms 288 ms 1 ms 10 ms 7 ms 11 ms 608 ms

5. 264 ms 314 ms 1 ms 6 ms 3 ms 11 ms 599 ms

6. 303 ms 281 ms 1 ms 10 ms 8 ms 10 ms 613 ms

7. 341 ms 252 ms 3 ms 14 ms 7 ms 3 ms 620 ms

8. 248 ms 297 ms 2 ms 14 ms 5 ms 16 ms 582 ms

9. 285 ms 261 ms 3 ms 12 ms 5 ms 6 ms 572 ms

10. 299 ms 257 ms 2 ms 4 ms 9 ms 4 ms 575 ms

V Tabela 7.8 so skupni rezultati merjenja vseh primerjalnih operacij po desetih preizkusih.

Tabela 7.8: Rezultati merjenja posameznih operacij pri integraciji Firebase.

Zaporedna številka

poizkusa

Operacija 1 Operacija 2 Operacija 3

1. 369 ms 849 ms 623 ms

2. 407 ms 848 ms 616 ms

3. 414 ms 855 ms 592 ms

4. 377 ms 881 ms 608 ms

5. 381 ms 829 ms 599 ms

6. 518 ms 809 ms 613 ms

7. 367 ms 821 ms 620 ms

8. 348 ms 838 ms 582 ms

9. 364 ms 834 ms 572 ms

10. 386 ms 868 ms 575 ms

393,1 ms 843,1 ms 600 ms

Na Slika 7.2 lahko vidimo grafičen prikaz skupnih rezultatov, predstavljenih v zgornji tabeli.

Analiza in primerjava oblačnih storitev za razvoj mobilnih zalednih storitev

80

Slika 7.2: Graf rezultata merjenja posameznih operacij pri integraciji Google Firebase.

Iz zgornjih rezultatov je razvidno, da je uporaba podatkovne baze znotraj zalednih storitev

Firebase zelo zmogljiva pri branju podatkov in vnosu podatkov. Pri iskanju po indeksiranih

ključih iz podatkovne baze pa se čas izvedbe poveča. Uporaba podatkovne baze nakazuje

na dobre zmogljivosti tudi pri uporabi kompleksnejše logike in dela s kompleksnejšimi

objekti. Za trajno shranjevanje podatkov nismo uporabili veliko prostora, za izvedbo

primerjalnih operacij smo porabili 6,3 KB prostora, kar nakazuje na izredno prostorsko

učinkovitost podatkovne baze znotraj storitev Firebase.

Amazon AWS

Po končani integraciji storitev ponudnika Amazon AWS smo na podlagi merjenja pridobili

podatke za vsak korak primerjalne procedure oziroma operacije. V naslednjih tabelah

(Tabela 7.9, Tabela 7.10, Tabela 7.11) so prikazane meritve znotraj primerjalnih operacij

na podlagi integracije storitev ponudnika Amazon AWS po posameznih korakih.

Tabela 7.9: Rezultati merjenja integracije storitev Amazon AWS po korakih za primerjalno

proceduro 1.

Zaporedna številka poskusa

Korak 1 Korak 2 Korak 3 Skupen čas

1. 181 ms 10602 ms 5245 ms 16028 ms

2. 792 ms 7618 ms 6479 ms 14889 ms

3. 790 ms 7423 ms 6991 ms 15204 ms

4. 576 ms 7681 ms 7102 ms 15359 ms

5. 464 ms 7926 ms 6971 ms 15361 ms

6. 439 ms 7129 ms 7321 ms 14889 ms

0

2000

4000

6000

8000

10000

12000

14000

16000

18000

1. 2. 3. 4. 5. 6. 7. 8. 9. 10.

Hit

rost

(m

s)

Zaporedna ševilka poskusa

Operacija 1

Operacija 2

Operacija 3

Analiza in primerjava oblačnih storitev za razvoj mobilnih zalednih storitev

81

7. 693 ms 7345 ms 6496 ms 14534 ms

8. 742 ms 7925 ms 6247 ms 14914 ms

9. 712 ms 7685 ms 7562 ms 14959 ms

10. 526 ms 7309 ms 7199 ms 15034 ms

Tabela 7.10: Rezultati merjenja integracije storitev Amazon AWS po korakih za primerjalno

proceduro 2.

Zaporedna številka poskusa

Korak 1 Korak 2 Korak 3 Skupen čas

1. 248 ms 101 ms 95 ms 444 ms

2. 257 ms 107 ms 109 ms 473 ms

3. 194 ms 110 ms 108 ms 412 ms

4. 224 ms 103 ms 108 ms 435 ms

5. 245 ms 98 ms 101 ms 444 ms

6. 240 ms 109 ms 105 ms 454 ms

7. 220 ms 104 ms 113 ms 437 ms

8. 236 ms 105 ms 109 ms 450 ms

9. 258 ms 102 ms 124 ms 484 ms

10. 201 ms 118 ms 89 ms 408 ms

Tabela 7.11: Rezultati merjenja integracije storitev Amazon AWS po korakih za primerjalno

proceduro 3.

Zaporedna številka poskusa

Korak 1 Korak 2 Korak 3 Korak 4 Korak 5 Korak 6 Skupen čas

1. 735 ms 1282 ms 243 ms 170 ms 7 ms 139 ms 2576 ms

2. 481 ms 1304 ms 140 ms 195 ms 2 ms 125 ms 2247 ms

3. 662 ms 1358 ms 104 ms 114 ms 6 ms 146 ms 2390 ms

4. 619 ms 1262 ms 142 ms 138 ms 5 ms 137 ms 2303 ms

5. 549 ms 1192 ms 141 ms 178 ms 6 ms 142 ms 2208 ms

6. 623 ms 1351 ms 147 ms 169 ms 5 ms 146 ms 2441 ms

7. 584 ms 1303 ms 161 ms 141 ms 6 ms 151 ms 2346 ms

8. 525 ms 1307 ms 153 ms 160 ms 2 ms 121 ms 2268 ms

9. 592 ms 1370 ms 192 ms 145 ms 4 ms 141 ms 2444 ms

10. 517 ms 1269 ms 140 ms 205 ms 5 ms 136 ms 2272 ms

V Tabela 7.12 so prikazani skupni rezultati merjenja vseh primerjalnih operacij po desetih

preizkusih.

Analiza in primerjava oblačnih storitev za razvoj mobilnih zalednih storitev

82

Tabela 7.12: Rezultati merjenja posameznih operacij pri integraciji AWS Mobile.

Zaporedna številka

poizkusa

Operacija 1 Operacija 2 Operacija 3

1. 16028 ms 444 ms 2576 ms

2. 14889 ms 473 ms 2247 ms

3. 15204 ms 412 ms 2390 ms

4. 15359 ms 435 ms 2303 ms

5. 15361 ms 444 ms 2208 ms

6. 14889 ms 454 ms 2441 ms

7. 14534 ms 437 ms 2346 ms

8. 14914 ms 450 ms 2268 ms

9. 14959 ms 484 ms 2444 ms

10. 15034 ms 408 ms 2272 ms

15117,1 ms 444,1 ms 2349,5 ms

Na Slika 7.3 je grafičen prikaz skupnih rezultatov predstavljenih v zgornji tabeli.

Slika 7.3: Graf rezultata merjenja posameznih operacij pri integraciji Amazon AWS.

0

2000

4000

6000

8000

10000

12000

14000

16000

18000

1. 2. 3. 4. 5. 6. 7. 8. 9. 10.

Hit

rost

(m

s)

Zaporedna ševilka poskusa

Operacija 1

Operacija 2

Operacija 3

Analiza in primerjava oblačnih storitev za razvoj mobilnih zalednih storitev

83

Iz zgornjih rezultatov je razvidno, da je uporaba podatkovne baze Amazon DynamoDB zelo

zmogljiva pri branju podatkov in iskanju po indeksiranih ključih. Pri večjem številu vstavljanj

in branj iz podatkovne baze pa se čas izvedbe poveča. Uporaba podatkovne baze nakazuje

na dobre zmogljivosti tudi pri uporabi kompleksnejše logike in dela s kompleksnejšimi

objekti. Znotraj analitičnih storitev Amazon Mobile Analytics nismo uspeli pridobiti podatka

o velikosti same podatkovne baze.

Backendless

Po končani integraciji storitev ponudnika Backendless smo na podlagi merjenja pridobili

podatke za vsak korak primerjalne procedur oziroma operacij. V naslednjih tabelah (Tabela

7.13, Tabela 7.14, Tabela 7.15) so prikazane meritve znotraj primerjalnih operacij na

podlagi integracije storitev ponudnika Backendless po posameznih korakih.

Tabela 7.13: Rezultati merjenja integracije storitev Backendless po korakih za primerjalno

proceduro 1.

Zaporedna številka poskusa

Korak 1 Korak 2 Korak 3 Skupen čas

1. 2758 ms 15052 ms 64941 ms 82751 ms

2. 2363 ms 41513 ms 43012 ms 86888 ms

3. 2482 ms 35018 ms 51787 ms 89287 ms

4. 2630 ms 41017 ms 36967 ms 80614 ms

5. 2904 ms 30333 ms 49059 ms 82296 ms

6. 2884 ms 41186 ms 41993 ms 86063 ms

7. 2845 ms 30090 ms 49234 ms 82169 ms

8. 2798 ms 41271 ms 39381 ms 83450 ms

9. 2812 ms 36071 ms 50685 ms 89568 ms

10. 2945 ms 37905 ms 45887 ms 86737 ms

Tabela 7.14: Rezultati merjenja integracije storitev Backendless po korakih za primerjalno

proceduro 2.

Zaporedna številka poskusa

Korak 1 Korak 2 Korak 3 Skupen čas

1. 1190 ms 877 ms 895 ms 2962 ms

2. 1122 ms 1119 ms 886 ms 3127 ms

3. 1005 ms 884 ms 840 ms 2729 ms

4. 894 ms 862 ms 762 ms 2518 ms

5. 1007 ms 927 ms 947 ms 2881 ms

6. 1026 ms 931 ms 749 ms 2706 ms

Analiza in primerjava oblačnih storitev za razvoj mobilnih zalednih storitev

84

7. 1623 ms 1440 ms 981 ms 4044 ms

8. 1038 ms 902 ms 665 ms 2605 ms

9. 962 ms 853 ms 738 ms 2553 ms

10. 991 ms 867 ms 742 ms 2600 ms

Tabela 7.15: Rezultati merjenja integracije storitev Backendless po korakih za primerjalno

proceduro 3.

Zaporedna številka poskusa

Korak 1 Korak 2 Korak 3 Korak 4 Korak 5 Korak 6 Skupen čas

1. 1457 ms 1323 ms 1291 ms 2 ms 4 ms 1344 ms 5421 ms

2. 1330 ms 1287 ms 1397 ms 5 ms 4 ms 1240 ms 5263 ms

3. 1384 ms 1197 ms 1265 ms 2 ms 3 ms 1134 ms 4985 ms

4. 1889 ms 1278 ms 1106 ms 1 ms 3 ms 1040 ms 5317 ms

5. 1578 ms 1359 ms 1275 ms 4 ms 2 ms 1192 ms 5410 ms

6. 869 ms 998 ms 1283 ms 4 ms 3 ms 1159 ms 4316 ms

7. 908 ms 983 ms 998 ms 2 ms 3 ms 1033 ms 3927 ms

8. 1734 ms 1836 ms 1447 ms 2 ms 4 ms 1574 ms 6597 ms

9. 875 ms 901 ms 1019 ms 4 ms 5 ms 1135 ms 3939 ms

10. 989 ms 1059 ms 1025 ms 2 ms 3 ms 1215 ms 4293 ms

V Tabela 7.16 lahko vidimo skupne rezultate merjenja vseh primerjalnih operacij po desetih

preizkusih.

Tabela 7.16: Rezultati merjenja posameznih operacij pri integraciji Backendless.

Zaporedna številka

poizkusa

Operacija 1 Operacija 2 Operacija 3

1. 82751 ms 2962 ms 5421 ms

2. 86888 ms 3127 ms 5263 ms

3. 89287 ms 2729 ms 4985 ms

4. 80614 ms 2518 ms 5317 ms

5. 82296 ms 2881 ms 5410 ms

6. 86063 ms 2706 ms 4316 ms

7. 82169 ms 4044 ms 3927 ms

8. 83450 ms 2605 ms 6597 ms

9. 89568 ms 2553 ms 3939 ms

10. 86737 ms 2600 ms 4293 ms

Analiza in primerjava oblačnih storitev za razvoj mobilnih zalednih storitev

85

84982,3 ms 2872,5 ms 4946,8 ms

Na Slika 7.4 je grafičen prikaz skupnih rezultatov, predstavljenih v zgornji tabeli.

Slika 7.4: Graf rezultata merjenja posameznih operacij pri integraciji Backendless.

Iz zgornje tabele in grafikona je razvidno, da je uporaba storitev shranjevanja podatkov

ponudnika Backendless pri nalaganju in vnosu podatkov časovno zelo potratna. Iz

prikazanih podatkov predvidevamo, da je to posledica uporabe podatkovnih virov na

oddaljeni lokaciji, saj ponudnik zalednih storitev Backendless ne omogoča ročne izbire

lokacije uporabe podatkovnih virov. Pri iskanju posameznega zapisa po zahtevanem ključu

v podatkovni bazi pri meritvah nismo zasledili večjih časovnih vrednosti. Uporaba zalednih

storitev se je časovno učinkovito izvedla tudi pri izvrševanju zahtevnejših operacij, prav tako

smo za potrebe našega raziskovalnega dela in testiranja porabili 1 MB prostora v

podatkovni bazi.

Kinvey

Po končani integraciji storitev ponudnika Kinvey smo na podlagi merjenja pridobili podatke

za vsak korak primerjalne procedur oziroma operacij. V naslednjih tabelah (Tabela 7.17,

Tabela 7.18, Tabela 7.19) so prikazane meritve znotraj primerjalnih operacij na podlagi

integracije storitev ponudnika Kinvey po posameznih korakih.

0

2000

4000

6000

8000

10000

12000

14000

16000

18000

1. 2. 3. 4. 5. 6. 7. 8. 9. 10.

Hit

rost

(m

s)

Zaporedna ševilka poskusa

Operacija 1

Operacija 2

Operacija 3

Analiza in primerjava oblačnih storitev za razvoj mobilnih zalednih storitev

86

Tabela 7.17: Rezultati merjenja integracije storitev Kinvey po korakih za primerjalno proceduro 1.

Zaporedna številka poskusa

Korak 1 Korak 2 Korak 3 Skupen čas

1. 1236 ms 278 ms 13723 ms 15237 ms

2. 1040 ms 234 ms 14605 ms 15879 ms

3. 1277 ms 295 ms 14694 ms 16266 ms

4. 1174 ms 286 ms 14919 ms 16379 ms

5. 1282 ms 305 ms 14052 ms 15639 ms

6. 1172 ms 219 ms 14459 ms 15850 ms

7. 1063 ms 251 ms 14032 ms 15346 ms

8. 1063 ms 231 ms 13964 ms 15258 ms

9. 1060 ms 260 ms 13712 ms 15032 ms

10. 1137 ms 214 ms 14294 ms 15645 ms

Tabela 7.18: Rezultati merjenja integracije storitev Kinvey po korakih za primerjalno proceduro 2.

Zaporedna številka poskusa

Korak 1 Korak 2 Korak 3 Skupen čas

1. 849 ms 293 ms 174 ms 1316 ms

2. 458 ms 274 ms 186 ms 918 ms

3. 498 ms 201 ms 131 ms 830 ms

4. 524 ms 209 ms 123 ms 856 ms

5. 593 ms 227 ms 180 ms 1000 ms

6. 517 ms 286 ms 186 ms 989 ms

7. 402 ms 203 ms 159 ms 764 ms

8. 514 ms 276 ms 172 ms 962 ms

9. 457 ms 204 ms 193 ms 854 ms

10. 532 ms 210 ms 168 ms 910 ms

Tabela 7.19: Rezultati merjenja integracije storitev Kinvey po korakih za primerjalno proceduro 3.

Zaporedna številka poskusa

Korak 1 Korak 2 Korak 3 Korak 4 Korak 5 Korak 6 Skupen čas

1. 760 ms 316 ms 59 ms 634 ms 46 ms 786 ms 2601 ms

2. 698 ms 405 ms 87 ms 797 ms 68 ms 819 ms 2874 ms

3. 362 ms 427 ms 36 ms 657 ms 31 ms 735 ms 2248 ms

4. 325 ms 287 ms 59 ms 687 ms 69 ms 768 ms 2195 ms

5. 212 ms 395 ms 32 ms 652 ms 37 ms 921 ms 2249 ms

6. 288 ms 334 ms 59 ms 744 ms 69 ms 724 ms 2218 ms

Analiza in primerjava oblačnih storitev za razvoj mobilnih zalednih storitev

87

7. 266 ms 337 ms 51 ms 631 ms 34 ms 753 ms 2072 ms

8. 345 ms 313 ms 34 ms 533 ms 11 ms 687 ms 1923 ms

9. 278 ms 257 ms 11 ms 689 ms 23 ms 767 ms 2025 ms

10. 300 ms 459 ms 32 ms 728 ms 32 ms 747 ms 2298 ms

V Tabela 7.20 vidimo skupne rezultate merjenja vseh primerjalnih operacij po desetih

preizkusih.

Tabela 7.20: Rezultati merjenja posameznih operacij pri integraciji Kinvey.

Zaporedna številka

poizkusa

Operacija 1 Operacija 2 Operacija 3

1. 15237 ms 1316 ms 2601 ms

2. 15879 ms 918 ms 2874 ms

3. 16266 ms 830 ms 2248 ms

4. 16379 ms 856 ms 2195 ms

5. 15639 ms 1000 ms 2249 ms

6. 15850 ms 989 ms 2218 ms

7. 15346 ms 764 ms 2072 ms

8. 15258 ms 962 ms 1923 ms

9. 15032 ms 854 ms 2025 ms

10. 15645 ms 910 ms 2298 ms

15653,1 ms 939,9 ms 2270,3 ms

Na naslednji sliki (Slika 7.5) je grafičen prikaz skupnih rezultatov, predstavljenih v zgornji

tabeli.

Analiza in primerjava oblačnih storitev za razvoj mobilnih zalednih storitev

88

Slika 7.5: Graf rezultata merjenja posameznih operacij pri integraciji Backendless.

Iz zgornjih rezultatov je razvidno, da je uporaba podatkovne baze v sklopu zalednih storitev

ponudnika Kinvey zelo zmogljiva in prostorsko učinkovita, saj smo za izvedbo operacij

porabili zgolj 34,3 KB prostora. Čeprav ponudnik ne omogoča ročne nastavitve lokacije

uporabe podatkovnih virov, smo dosegli zelo dobre rezultate. Rezultati nakazujejo, da je

uporaba storitev časovno zelo učinkovita pri iskanju podatkov po določenem kriteriju, prav

tako je zadovoljiva pri kompleksnejših operacijah in vnosu ter ažuriranju zapisov iz

podatkovne baze. Slabše zmogljivosti so bile ugotovljene zgolj pri večji količini vstavljanja

ali brisanja zapisov iz podatkovne baze.

7.2 Primerjalna analiza ponudnikov

Na podlagi izvedenih primerjav ponudnikov zalednih storitev BaaS smo zgoraj omenjene

primerjave podrobneje opisali in jih ločili po podpoglavjih. Primerjave so bile sestavljene in

opisane kot pomoč pri izbiri ponudnika zalednih storitev BaaS razvijalcem na podlagi

preferenc pri izdelavi mobilne aplikacije.

Primerjava po hitrosti dostopa do podatkov

0

2000

4000

6000

8000

10000

12000

14000

16000

18000

1. 2. 3. 4. 5. 6. 7. 8. 9. 10.

Hit

rost

(m

s)

Zaporedna ševilka poskusa

Operacija 1

Operacija 2

Operacija 3

Analiza in primerjava oblačnih storitev za razvoj mobilnih zalednih storitev

89

Na podlagi merjenja posameznega časa dostopa do storitev znotraj primerjalnih procedur

v naši mobilni aplikaciji smo za vse ponudnike zalednih storitev pridobili končne rezultate.

V Tabela 7.21 vidimo povprečni čas merjenja hitrosti dostopa do podatkov obravnavanih

ponudnikov zalednih storitev, po končani integraciji v razviti mobilni aplikaciji.

Tabela 7.21: Rezultati merjenja hitrosti dostopa do podatkov.

Ponudnik Operacija 1 Operacija 2 Operacija 3

Azure Mobile 21424,2 ms 1036,7 ms 1418 ms

Google Firebase 391,1 ms 843,2 ms 600 ms

Amazon AWS 15117,1 ms 444,1 ms 2349,5 ms

Backendless 84982,3 ms 2872,5 ms 4946,8 ms

Kinvey 15653,1 ms 939,9 ms 2270,3 ms

Slika 7.6: Graf rezultatov merjenja hitrosti dostopa do podatkov.

Na podlagi pridobljenih rezultatov smo glede na posamezno operacijo izvedli deskriptivno

statistko s stopnjo zaupanja 95 % in pridobili naslednje rezultate:

Operacija 1:

o najmanjša vrednost: 391,1 ms;

o največja vrednost: 84982,3 ms;

0

10000

20000

30000

40000

50000

60000

70000

80000

90000

Azure Mobile Google Firebase Amazon AWS Backendless Kinvey

Hit

rost

(m

s)

Operacija 1 Operacija 2 Operacija 3

Analiza in primerjava oblačnih storitev za razvoj mobilnih zalednih storitev

90

o razpon: 84591,2 ms;

o srednja vrednost: 27513,58 ms;

o mediana: 15653,1 ms;

o standardna deviacija: 33051,88 ms.

Operacija 2:

o najmanjša vrednost: 444,1 ms;

o največja vrednost: 2872,5 ms;

o razpon: 2428,4 ms;

o srednja vrednost: 1227,28 ms;

o mediana: 939,9 ms;

o standardna deviacija: 946,91 ms.

Operacija 3:

o najmanjša vrednost: 600 ms;

o največja vrednost: 4946,8 ms;

o razpon: 4346,8 ms;

o srednja vrednost: 2316,92 ms;

o mediana: 2270,3 ms;

o standardna deviacija: 1633,66 ms.

Iz pridobljenih rezultatov deskriptivne statistike, zgornje tabele končnih rezultatov merjenja

(Tabela 7.21) in grafikona (Slika 7.6) je razvidno, da je po kriteriju hitrosti dostopa do

storitev, ki operirajo s shranjevanjem ali nalaganjem podatkov, najhitrejši ponudnik Google

Firebase. Prav tako je pri ponudniku Google Firebase moč razbrati največje odstopanje od

srednje vrednosti po posameznih operacijah napram ostalim ponudnikom. Menimo, da je

dostop do podatkov pri ponudniku Firebase časovno učinkovit zaradi možnosti ročne izbire

geografske lokacije uporabljenih podatkovnih virov, tako kot tudi zaradi strukture

shranjevanja podatkov v dokumentno orientirani podatkovni bazi NoSQL. Drugi po časovni

učinkovitosti na podlagi odstopanja od srednje vrednosti iz rezultatov deskriptivne statistike

je ponudnik storitev Amazon AWS, ki se zadovoljivo obnese pri iskanju podatkov kakor tudi

vstavljanju in ažuriranju. Po kriteriju časovne učinkovitosti sledita ponudnika zalednih

storitev Kinvey in Microsoft Azure. Kot je razvidno iz zgornje tabele, je po kriteriju hitrosti

dostopa do podatkov ponudnik Backendless za razvijalce mobilnih aplikacij najmanj

primeren. Enako smo na podlagi pridobljenih rezultatov izmerjenih časov statistično

preverili, ali obstajajo signifikantne razlike med ponudniki vezane na hitrost dostopa do

storitev. Kot statistično metodo smo uporabili statistični test One-Way Anova po stopnji

Analiza in primerjava oblačnih storitev za razvoj mobilnih zalednih storitev

91

značilnosti 5 %. Nad podatki smo najprej izvedli Levanov test homogenosti varianc in na

podlagi rezultatov ugotovili, da je homogenost varianc kršena (Sig. < 0,05), zato smo za

preverjanje, ali med ponudniki obstajajo razlike v hitrosti, uporabili robustne teste enakosti

(Welchov test in Brown-Forsythe test). V Tabela 7.22 so rezultati obravnavanih testov.

Tabela 7.22: Rezultati statističnih testov na podlagi hitrosti.

Test Statistika Df1 Df2 Sig.

Levanov test 10,812 4 4 0,001

Welchov test 0,876 4 4,004 0,549

Brown-Forsythe test 0,854 4 2,501 0,587

Kot je bilo razvidno že iz pridobljenih rezultatov (Tabela 7.21, Slika 7.6), lahko tudi na

podlagi opravljenih testov (Welchov test in Brow-Forsythe test), s statističnega stališča

potrdimo, da med ponudniki obstajajo signifikantne razlike po kriteriju hitrosti dostopa do

storitev, ki operirajo s shranjevanjem ali nalaganjem podatkov.

Primerjava po kompleksnosti implementacije

Med procesom implementacije uporabe zalednih storitev obravnavanih ponudnikov znotraj

projekta naše mobilne aplikacije smo pridobili potrebno dokumentacijo in navodila, vendar

se sama implementacija od ponudnika do ponudnika razlikuje. Kot je bilo zapisano v

poglavju procesa integracije v mobilno aplikacijo, sta zaradi uporabe poslušalcev za razvoj

kompleksnejših opravil najmanj ugodna ponudnika Google Firebase in Kinvey. Če gre zgolj

za enostavno nalaganje podatkov v seznam mobilne aplikacije in urejanje posameznega

zapisa, je uporaba poslušalcev primerna. V primeru kompleksnejših operacij, zlasti kadar

ponudnik ne omogoča implementacije poslovne logike na strežniku storitev, pa razvijalcem

predstavlja dodatno kompleksnost in zahtevnost pri implementaciji; prav te prvine so v

nasprotju s samim namenom uporabe mobilnih zalednih storitev, ki naj bi razvijalcem

omogočile enostavno interakcijo pri uporabi zalednih storitev.

Kot je bilo povedano, lahko razvijalci pri preostalih ponudnikih za dostop do storitev

uporabljajo asinhrona opravila, kar omogoča izdelavo kompleksnejših procedur, katerih

implementacija je v reševanju dejanskih primerov potrebna dlje časa. Pri implementaciji in

interakciji storitev pri ponudniku Azure smo velikokrat naleteli na težave zlasti pri

transformaciji podatkov iz kompleksnejših podatkovnih tabel. Te težave so se pojavile pri

prenosu podatkov iz tabele, ki vsebujejo referenčni zapis iz druge tabele. Pri implementaciji

Analiza in primerjava oblačnih storitev za razvoj mobilnih zalednih storitev

92

dostopa storitev ponudnika Azure morajo razvijalci implementirati namenske pretvornike za

uspešno transformacijo iz zapisov v podatkovni tabeli v podatkovne objekte znotraj mobilne

aplikacije. Pri implementaciji ponudnika zalednih storitev Amazon AWS je transformacija

podatkov rešena na strani ponudnika, vendar lahko zlasti manj izkušenim razvijalcem

povzročajo težave pri kompleksnemu uveljavljanju pravic dostopa do podatkovne baze,

izdelavi notacij in uporabi dostopa do storitev, vezanih na različno lokacijsko razkropljene

podatkovne vire. S stališča primerjave po kompleksnosti implementacije je tako priporočena

uporaba zalednih storitev ponudnika Backendless, pri katerem v procesu integracije v našo

mobilno aplikacijo nismo naleteli na tovrstne težave.

Primerjava po možnosti izdelave poslovne logike po meri

Zaradi raznolikosti v namenu uporabe mobilnih aplikacije so razvijalci primorani za izvedbo

posameznih opravil znotraj mobilne aplikacije razviti namensko poslovno logiko. Da bi

dosegli optimalno delovanje, je v specifičnih scenarijih potrebna izdelava poslovne logike

na nivoju strežnika storitev. Znotraj predstavitve in procesa implementacije posameznih

ponudnikov smo ugotovili, da ponudnika storitev Kinvey in Backendless podpirata različne

načine uporabe lastno razvite programske kode na strežniku. Omenjena ponudnika

podpirata izdelavo lastnih končnih točk z želeno poslovno logiko. Pri ponudniku zalednih

storitev Kinvey je prav tako možna uporaba končnih točk storitev drugih razvijalcev, pa tudi

uporaba samodejnih opravil na strežniku ob izvedbi specifične dogodka ali na podlagi

urnika. S stališča možnosti izdelave poslovne logike po meri je tako najprimernejši ponudnik

Kinvey, enako je na področju programske kode po meri ustrezen ponudnik Backendless.

Temu kriteriju sledita ponudnik Amazon AWS, ki prav tako preko nabora storitev AWS

Lambda omogoča izdelavo kompleksnejše poslovne logike na strežniku, vendar je

implementacija težavna, še posebej za manj vešče razvijalce. Ponudnik storitev Azure na

tem področju ponuja omejene operacije vstavljanja, brisanja, branja ali urejanja podatkov,

obenem pa lahko razvijalci kreirane operacije zaganjajo z urnikom v določenem časovnem

intervalu ali na zahtevo znotraj klica kreiranega opravila v mobilni aplikaciji. Razvijalci, ki za

implementacijo mobilnih aplikacij uporabljajo zaledne storitve ponudnika Azure, imajo

možnost izdelave namenskih vmesnikov API s poslovno logiko po meri, vendar je pri tem

za uporabo znotraj mobilne aplikacije potrebna registracija končnih točk z orodjem

Swagger. Ponudnik storitev Google Firebase za razvoj mobilnih aplikacij, ki za svoje

delovanje potrebujejo poslovno logiko po meri na nivoju strežnika, ni primeren, ker ne

omogoča lastne implementacije na nivoju strežnika.

Analiza in primerjava oblačnih storitev za razvoj mobilnih zalednih storitev

93

Primerjava po možnosti uporabe brez povezave

Zaradi uporabe mobilnih aplikacij na različnih lokacijah s slabšim ali prekinjenim delovanjem

internetne povezave se razvijalci pogosto srečujejo s problemom sinhronizacije in delovanja

mobilne aplikacije, kadar je povezava do spletnih storitev motena ali onemogočena.

Ponudnik storitev Backendless ne ponuja možnosti uporabe mobilne aplikacije, ko je dostop

do storitev moten ali onemogočen. Preostali ponudniki zalednih storitev BaaS ponujajo

vključene možnosti uporabe mobilne aplikacije v načinu brez povezave. Pri tem je treba

poudariti ponudnika Firebase, ki ponuja razvijalcem širok nabor politik in možnosti

implementacije različnih poslušalcev, kadar povezava ni na voljo. Zaradi naprednih

možnosti uporabe v primeru motene povezave s storitvami je izbira ponudnika Firebase

najprimernejša.

Primerjava po velikosti zapisov v podatkovni bazi

Pri izbiri ponudnika zalednih mobilnih storitev je za razvijalce pomembna tudi velikost

posameznih zapisov v podatkovni bazi. Na podlagi izvedbe primerjalnih procedur znotraj

implementacije posameznih ponudnikov smo na podlagi enake količine vnesenih podatkov

pridobili končne velikosti podatkovnih baz, če je pri ponudniku to možno.

V Tabeli 7.2 so velikosti podatkovnih baz obravnavanih ponudnikov zalednih storitev po

končani integraciji v razviti mobilni aplikaciji. Zaradi lažje primerjave smo vse podatke

pretvorili v enako enoto za prikaz velikosti podatkov.

Tabela 7.23: Rezultati za velikosti podatkovnih baz.

Ponudnik Velikost podatkovne baze

Azure 6000 Kb

Google Firebase 6,3 kB

Amazon AWS Ni podatka

Backendless 1000 kB

Kinvey 34,3 kB

Iz zgornje tabele je razvidno, da je po kriteriju velikosti podatkovne baze po enaki količini

vstavljenih podatkov najbolj učinkovit ponudnik Google Firebase. Predvidevamo, da je

majhna velikost podatkov povezana s strukturo shranjevanja podatkov v dokumentno

orientirani podatkovni bazi NoSQL. Drugi po učinkovitosti velikosti zapisov v podatkovni

bazi je ponudnik Kinvey, ki kot preostali ponudniki, z izjemo Firebase, za trajno shranjevanje

podatkov uporablja relacijsko podatkovno bazo. Prav tako je prostorsko učinkovit ponudnik

Analiza in primerjava oblačnih storitev za razvoj mobilnih zalednih storitev

94

Backendless, medtem ko je velikost enakega števila zapisov pri ponudniku Azure največja.

Na portalu za razvijalce ali znotraj analiz pri ponudniku Amazon nismo zasledili podatka o

velikosti podatkovne baze.

Primerjava po zajetih storitev po cenovnem modelu

Pri ponudbi nabora zalednih storitev in uporabljenih računalniških virov je za razvijalce

pomembna cena. Kakor je bilo omenjeno v predstavitvi, ima vsak ponudnik svoje osnovne

cenovne modele, med drugim pa ima večji del ponudnikov zalednih storitev BaaS možnosti

dodatnega zaupa virov oziroma izračun po porabi uporabljenih podatkovnih virov. Za

potrebe raziskovalnega dela in z namenom, da bi zagotovili konsistentno primerjavo, smo

primerjali količino zajetih storitev po brezplačnem cenovnem modelu za razvijalce. V Tabela

7.24 lahko vidimo primerjavo zajetih storitev obravnavanih ponudnikov po enakem

brezplačnem cenovnem razredu. Določeni ponudniki zalednih storitev imajo omejen

časovni rok uporabe brezplačnih storitev.

Tabela 7.24: Primerjava zajetih storitev obravnavanih ponudnikov zalednih storitev.

AZURE FIREBASE AMAZON

AWS

BACKENDLESS KINVEY

Število klicev

API

500.000 20.000 1.000.000 300 1.000

Število aktivnih

naprav

500 100 / 1 1.000

Število

notifikacij push

1.000.00

0

/ 1.000.000 100.000 /

Sinhronizacija

brez povezave

Omejeno Podprto Podprto Ni podprto Podprto

Izdelava

opravil po

urnikih

Omejeno / Podprto Podprto Podprto

Vključena

količina

podatkov v

podatkovni

bazi

20 MB 20 MB 10 GB 5 GB 1 GB

Analiza in primerjava oblačnih storitev za razvoj mobilnih zalednih storitev

95

Varnostno

kopiranje

Ni

podprto

Ni podprto Podprto Ni podprto Ni

podprto

Iz zgornje tabele je razvidno, da glede na izbrani cenovni model, večji ponudniki, kot so

Azure, Firebase ter Amazon, ponujajo večjo število klicev programskih vmesnikov API, prav

tako, z izjemo ponudnika Firebase, ponujajo največje število poslanih notifikacij push.

Medtem pa manjša ponudnika, kot sta Backendless in Firebase, v svojem brezplačnem

cenovnem razredu ponujata precej večje količine pri shranjevanju podatkov. Kakor je

razvidno iz tabele, je pri večini ponudnikov že v brezplačnem načinu vključena možnost

uporabe aplikacije brez povezave. Da bi lahko izbrali najbolj primernega ponudnika, ki

ponuja v brezplačnem cenovnem modelu največji razpon zalednih storitev, smo

obravnavane ponudnike ovrednotili po točkah. V Tabela 7.25 je kriterij razporeditev točk po

posameznih podatkih, pri čemer 1 točka predstavlja najmanjšo vrednost ponudbe in število

petih točk predstavlja največjo vrednost ponudbe.

Tabela 7.25: Razporeditev točk glede na obravnavane kriterije.

Število točk 1 2 3 4 5

Število klicev API 0–1000 1000–5000 5000–

10000

10000–

50000

50000–

naprej

Število aktivnih

naprav

0–100 100 – 500 500–1000 1000–

5000

5000–

naprej

Število notifikacij

push

0–1000 1000–5000 5000–

10000

10000–

50000

50000–

naprej

Sinhronizacija brez

povezave

Ni podpro Ni podprto Ni podprto Omejeno Podprto

Izdelava opravil po

urnikih

Ni podprto Ni podprto Ni podprto Omejeno Podprto

Vključena količina

podatkov v

podatkovni bazi

0 MB–

100 MB

100 MB–

500 MB

500 MB–

1000 MB

1000 MB

–5000 MB

5000 MB

– naprej

Varnostno

kopiranje

Ni podprto Ni podprto Ni podprto Omejeno Podprto

Na podlagi točkovanja smo glede na posamezen kriterij izvedli deskriptivno statistko s

stopnjo zaupanja 95 %. Tako smo pridobili naslednje rezultate:

Analiza in primerjava oblačnih storitev za razvoj mobilnih zalednih storitev

96

Število klicev API:

o srednja vrednost: 3,4;

o mediana: 4;

o standardna deviacija: 1,82.

Število aktivnih naprav:

o srednja vrednost: 2,2;

o mediana: 2;

o standardna deviacija: 1,30.

Število notifikacij push:

o srednja vrednost: 3,2;

o mediana: 4;

o standardna deviacija: 2,05.

Sinhronizacija brez povezave:

o srednja vrednost: 4;

o mediana: 5;

o standardna deviacija: 1,73.

Izdelava opravil po urnikih:

o srednja vrednost: 4;

o mediana: 5;

o standardna deviacija: 1,73.

Vključena količina podatkov v podatkovni bazi:

o srednja vrednost: 3,2;

o mediana: 4;

o standardna deviacija: 2,05.

Varnostno kopiranje:

o srednja vrednost: 1,8;

o mediana: 1;

o standardna deviacija: 1,79.

Prav tako smo po enaki statistični metodi primerjali ponudnike glede na posamezen kriterij

in pridobili rezultate, ki so podrobneje predstavljeni v spodnji tabeli (Tabela 7.26) in

grafikonu (Slika 7.7).

Analiza in primerjava oblačnih storitev za razvoj mobilnih zalednih storitev

97

Tabela 7.26: Rezultati točkovanja ponudbe obravnavanih ponudnikov.

AZURE FIREBASE AMAZON

AWS

BACKENDLESS KINVEY

Seštevek 23 15 31 18 22

Srednja vrednost 3,29 2,14 4,43 2,57 3,14

Mediana 4 1 5 1 4

Standardna

deviacija

1,70 1,68 1,51 1,99 1,77

Slika 7.7: Graf rezultatov točkovanja ponudbe obravnavanih ponudnikov.

Iz zgornjih rezultatov lahko razberemo, da glede na razpon ponudbe, največ storitev

razvijalcem tovrstnih storitev ponuja v brezplačnem cenovnem modelu, ponudnik Amazon

AWS. Srednja vrednost ponudnika 4,43 je prav tako večja od vseh srednjih vrednosti v

primerjavi po posameznih kriterijih, s čimer lahko z gotovostjo potrdimo zgornjo ugotovitev.

Po kriteriju točkovanja, kateri ponudnik ponuja največ, sledita ponudnika Microsoft Azure

ter Kinvey, medtem ko imata ponudnika Backendless in Google Firebase najslabše

vrednosti. Z namenom, da bi ugotovili, ali na podlagi razpona ponudbe obstajajo

signifikantne razlike med obravnavanimi ponudniki, smo izvedli statistično analizo s t-

testom parnih vzorcev s stopnjo zaupanja 95 % in pridobili naslednje rezultate:

t: -0,294;

df: 34;

Sig: 0,770.

0

5

10

15

20

25

30

35

AZURE FIREBASE AMAZON AWS BACKENDLESS KINVEY

Seštevek Srednja vrednost Mediana Standardna deviacija

Analiza in primerjava oblačnih storitev za razvoj mobilnih zalednih storitev

98

Na podlagi pridobljenih statističnih rezultatov, kjer je absolutna vrednost razlike (vrednost t)

manjša od stopinj svobode (vrednost df), lahko statistično potrdimo, da so obstajajo

signifikantne razlike po kriteriju razpona ponudbe posameznih ponudnikov.

7.3 Rezultati in analiza primerjave

Pri izbiri ponudnika zalednih storitev BaaS se s stališča razvijalcev mobilnih aplikacij

pojavljajo naslednje spremenljivke: hitrost, velikost shranjenih podatkov, težavnost

implementacije, dostopnost, dosegljivost in cena. Kot smo statistično potrdili v prejšnjem

podpoglavju, med ponudniki zalednih storitev obstajajo signifikantne razlike. Na podlagi

predstavitve in primerjave obravnavanih ponudnikov po različnih kriterijih z vidika uporabe

razvijalcev smo ugotovili, da je v primeru potrebe po hitrem dostopu do podatkov najbolj

primerna izbira storitev Firebase. To je najbolj primerna izbira tudi takrat, kadar razvijalci

želijo popoln nadzor nad operacijami ažuriranja podatkov, kadar je dostop do storitev moten

ali prekinjen. Druga izbira glede na hitrost in delo v primeru brez povezave so storitve

ponudnika Kinvey. Vendar sta Kinvey in Firebase primerna zgolj za mobilne aplikacije, ki

ne vsebujejo zahtevne programske logike. Za uporabo spreminjanja posameznih

podatkovnih zapisov in prikazovanja teh na zaslonu mobilne aplikacije je uporaba storitev

ponudnikov Firebase in Kinvey povsem zadovoljiva; v primeru uporabe kompleksnejše

programske logike pa je razvijalcem mobilnih aplikacij priporočena uporaba zalednih

storitev ponudnikov Azure ali Amazon AWS. Navedena ponudnika zraven dostopa do

storitev ponujata širok nabor drugih funkcionalnosti, kot so analize delovanja, analize

porabe, nadzor nad tokom mobilne aplikacije, operiranje z uporabniki in drugo. V primeru

izdelave kompleksnejše aplikacije z večjim naborom funkcionalnosti, ki jo po možnosti

razvija večja skupina razvijalcev, je izbira ponudnika Azure ali Amazon AWS edina pravilna

možnost. V primeru izdelave kompleksnejše mobilne aplikacije in potrebnega zakupa

dodatnih storitev ali računalniških virov bi priporočali izbiro Amazon AWS, ki znotraj

enakega cenovnega razreda ponuja večji nabor storitev. Pri tem pa je treba upoštevati tudi

vidik težavnosti implementacije. Vsak ponudnik zalednih storitev ima na voljo nemoteno

tehnično pomoč in ustrezno referenčno dokumentacijo, ki omogoča razvijalcem lažjo in

hitrejšo integracijo zalednih storitev v želeno mobilno aplikacijo. Pri sami implementaciji

dostopa storitev večje razlike, v primeru najlažje in posledično najhitrejše izdelave končne

različice mobilne aplikacije, bi zlasti razvijalcem ali začetnikom brez izkušenj z uporabo

zalednih mobilnih storitev svetovali uporabo zalednih storitev ponudnika Backendless.

Analiza in primerjava oblačnih storitev za razvoj mobilnih zalednih storitev

99

8 SKLEP

V magistrskem delu smo se osredinili na koncepte delovanja zalednih storitev za mobilne

aplikacije in pri tem poudarili opaznejše ponudnike. Z vidika razvijalca smo analitično

predstavili njihove lastnosti skozi proces implementacije uporabe storitev v mobilno

aplikacijo. Pri obravnavi ponudnikov smo ugotovili, da je računalništvo v oblaku, zlasti

uporaba mobilnih zalednih storitev, postalo ena najbolj vplivnih tehnologij v industriji

informacijskih tehnologij. Uporaba zalednih storitev računalništva v oblaku je

revolucionarno spremenila način upravljanja in porabe računalniških sredstev. Pametna

uporaba tehnologij virtualizacije na strani ponudnikov storitev omogoča kupcem oziroma

razvijalcem možnost zagon podjetja in realizacijo ideje brez večjih stroškov.

Ugotovili smo, da se obravnavani ponudniki razlikujejo po cenovnih modelih, naboru

ponujenih storitev, načinu implementacije, hitrosti dostopa do storitev in podobno. Prav tako

smo med izdelavo poiskali odgovore na zastavljena raziskovalna vprašanja, predstavljena

v uvodu dela. Odgovore smo pridobili na podlagi pregleda literature ali znotraj

eksperimentalnega dela magistrske naloge.

RV1: Kako se razlikuje arhitektura mobilnih aplikacij, ki uporabljajo zaledne storitve BaaS?

Odgovor: Na podlagi pregledanih virov skozi proces sistematičnega pregleda literature in

analize ponudnikov smo ugotovili, da se arhitektura mobilnih aplikacij, ki uporabljajo dostop

do zalednih storitev, razlikuje od možnosti implementacije dostopa do storitev

posameznega ponudnika. V večini primerov poslovnih aplikacij, ne glede na način

shranjevanja ali branja podatkov, implementacija sledi arhitekturnemu konceptu po pristopu

arhitekture treh slojev [3] [27]. Kot je opisano pri integraciji storitev ponudnika Kinvey, ti

zaradi lažjega vzdrževanja pri večjih projektih priporočajo izdelavo aplikacije po arhitekturi

štirih slojev [64].

RV2: Kateri poslovni model uporabe zalednih storitev BaaS je najbolj razširjen?

Odgovor: Poslovno cenovni model uporabe zalednih storitev je pogojen z zahtevami same

aplikacije. Pri analizi izbranih ponudnikov zalednih storitev smo prikazali različne poslovne

modele. Vsi proizvajalci ponujajo zraven brezplačnega modela tudi napredne modele z

naprej zakupljenimi količinami virov ali storitev, kljub temu pa je glede na potrebe

posamezne aplikacije razvijalcem najbolj ugodna uporaba cenovnega modela »freemium«,

kar vključuje uporabo brezplačnega nabora dostopa do storitev in računalniških virov kot

tudi dodatnega zakupa v primeru porabe zakupljenih virov ali količine storitev.

Analiza in primerjava oblačnih storitev za razvoj mobilnih zalednih storitev

100

RV3: Kateri ponudnik zalednih storitev BaaS ponuja največji nabor funkcionalnosti?

Odgovor: Iz podanih predstavitev ponudnikov smo dognali, da ponudniki zalednih storitev

glede na cenovne modele ponujajo različne nabore funkcionalnosti. V primeru uporabe

brezplačnih storitev smo na podlagi analize ponudnikov, ki so podrobneje predstavljeni v

prejšnjem poglavju, ugotovili, da največji nabor funkcionalnosti in storitev ponuja ponudnik

storitev Amazon AWS.

RV4: Kateri ponudnik zalednih storitev BaaS je najugodnejši?

Odgovor: Stroški uporabe so pogojeni s kompleksnostjo razvite mobilne aplikacije, pri

čemer večina predstavljenih ponudnikov ponuja možnost dodatnega zakupa količine

računalniških virov ali storitev glede na porabo mobilne aplikacije. Vendar smo na podlagi

vnaprej pripravljenih cenovnih modelov, predstavljenih pri opisu posameznih ponudnikov,

prišli do zaključka, da je glede na količino storitev in ceno za razvijalce najbolj ugoden

ponudnik Amazon AWS.

RV5: Kateri ponudniki zalednih storitev BaaS omogočajo delo brez povezave?

Odgovor: Na podlagi predstavitev posameznih ponudnikov in v procesu integracije

obravnavanih ponudnikov v mobilno aplikacijo smo uvideli, da vsi ponudniki, z izjemo

ponudnika Backendless, omogočajo delo na mobilnih aplikacijah tudi v primeru, ko je

dostop do storitev moten ali prekinjen.

RV6: Kateri ponudnik zalednih storitev BaaS ponuja najhitrejši dostop in procesiranje

podatkov?

Odgovor: Na podlagi pridobljenih rezultatov iz implementacije primerjalnih procedur smo

ugotovili, da je časovno najbolj učinkovita uporaba ponudnika Firebase. Zaradi načina

shranjevanja oblike podatkov so storitve ponudnika Firebase zelo učinkovite tudi zaradi

velikosti podatkov.

Na podlagi podanih odgovorov na raziskovalna vprašanja in analitični primerjavi

ponudnikov smo v okviru raziskovalnega dela želeli z vidika razvijalca najbolje predstaviti

obravnavane ponudnike zalednih storitev, da bi se lahko na podlagi pridobljenih rezultatov

in ugotovitev lažje odločili za ustreznega ponudnika. Za konec naj poudarimo, da je

ustrezna izbira ponudnika odvisna od kompleksnosti mobilne aplikacije, kompetenc in

ustreznega znanja, pa tudi osebnih preferenc razvijalca ali skupine razvijalcev.

Analiza in primerjava oblačnih storitev za razvoj mobilnih zalednih storitev

101

8.1 Omejitve magistrskega dela

Pri izdelavi eksperimentalnega dela magistrske dela smo se pri predstavitvi ponudnikov

omejili zgolj na storitve ponudnikov, ki si lastijo največji tržni delež ali se najpogosteje

uporabljajo. Pri tem tako s tem namenom nismo zajeli storitev drugih oziroma manj

prepoznavnih ponudnikov s tega področja. Prav tako je uporaba storitev obravnavanih

ponudnikov v večji meri plačljiva, zato smo znotraj raziskovalnega dela imeli na voljo

funkcionalno kot tudi časovno omejene različice razvojnih ogrodij. Pri tem smo se zavedali

tveganja, da rezultati našega raziskovalnega dela tako najverjetneje ne bodo ustrezni za

razvijalce ali skupine z večjimi sredstvi, ki težijo k napredni uporabi celovitega nabora

zalednih storitev posameznega ponudnika. V procesu analize in izvedbe primerjalnih

procedur smo se tudi osredotočili zgolj na delo z eno napravo.

8.2 Predlogi za prihodnje delo

Opravljena obravnava posameznih ponudnikov je v večji meri vezana na količino ponujenih

storitev znotraj brezplačne različice za razvijalce. Zaradi omejitev, omenjenih v predhodnem

podpoglavju, smo predstavili zgolj funkcionalnosti ter nabor predstavitev, ki smo jih lahko

uporabili znotraj omenjenega brezplačnega načina. Znotraj procesa implementacije smo se

v večji meri osredotočili predvsem na uporabo storitev, ki so vezane na shranjevanje,

ažuriranje, nalaganje ali brisanje podatkov, pri tem pa je napredna uporaba same mobilne

aplikacije v načinu brez povezave ostala neizrazita. Za prihodnje delo predlagamo

primerjalno analizo in eksperiment napredne uporabe poslovne logike po meri na strani

strežnika ali z drugo izbrano simulacijo realnega okolja.

Literatura in viri

[1] Y. Z. Yuping Xing, „Future Wireless Networks and Information Systems,“

Virtualization and Cloud Computing, Izv. 143, pp. 305-312, 2012.

[2] LeeGarber, „The Lowly API Is Ready to Step Front and Center,“ Computer, Izv.

46, št. 8, pp. 14-17, 2013.

[3] M. Ott, „Develop and Scale Mobile Services in Cloud Computing Scenarios,“

2013.

[4] W. Kohl, „Backend As A Service - Using the Example of Enginio a Cloud Service

for Qt,“ WS 2013/14, Institute of Distributed Systems, University of Ulm, Ulm,

2013.

[5] D. Rowinski, „Mobile Backend As A Service Parse Raises $5.5 Million in Series A

Funding,“ readwrite, 9 11 2011. [Elektronski]. Available:

http://readwrite.com/2011/11/09/mobile-backend-as-a-service-pa/. [Poskus

dostopa 10 6 2017].

[6] Gartner, „Gartner Says Worldwide Cloud Infrastructure-as-a-Service Spending to

Grow 32.8 Percent in 2015,“ Gartner, [Elektronski]. Available:

http://www.gartner.com/newsroom/id/3055225. [Poskus dostopa 1 9 2016].

[7] V. L. B. J. W. Richard Marshall, „Market Guide for Cloud Mobile Back-End

Services,“ Gartner, 5 3 2015. [Elektronski]. Available:

https://www.gartner.com/document/2999121?ref=solrAll&refval=185830802&qid=

2320e7231e1a9900b24391903341a8ad. [Poskus dostopa 10 6 2017].

[8] J. T. K. G. Elizabeth Golluscio, „Market Guide for Hybrid Integration Platform-

Enabling Technologies,“ Gartner, 25 4 2016. [Elektronski]. Available:

https://www.gartner.com/document/3291720?ref=solrAll&refval=185830802&qid=

2320e7231e1a9900b24391903341a8ad. [Poskus dostopa 10 6 2017].

[9] Amazon, „What is Cloud Computing?,“ Amazon, [Elektronski]. Available:

https://aws.amazon.com/what-is-cloud-computing/. [Poskus dostopa 1 9 2016].

[10] R. Baburajan, „The Rising Cloud Storage Market Opportunity Strengthens

Vendors,“ TMCnet.com, [Elektronski]. Available:

http://technews.tmcnet.com/viewette.aspx?u=http%3a%2f%2ftechnews.tmcnet.co

m%2fchannels%2fcloud-storage%2farticles%2f211183-rising-cloud-storage-

market-opportunity-strengthens-vendors.htm. [Poskus dostopa 24 8 2016].

[11] J. Wray, „Where's The Rub: Cloud Computing's Hidden Costs,“ Forbes,

[Elektronski]. Available: Where's The Rub: Cloud Computing's Hidden Costs.

[Poskus dostopa 25 8 20016].

[12] Y. Luo, „Network I/O Virtualization for Cloud Computing in Plastics,“ IT

Professional, Izv. 12, pp. 536-541, 2010.

[13] G. Čehovin, „Računalništvo v oblaku: fleksibilnejši dostop do računalniških

storitev,“ mladipodjetnik.si, 20 2 2011. [Elektronski]. Available:

http://mladipodjetnik.si/podjetniski-koticek/poslovanje/racunalnistvo-v-oblaku-

fleksibilnejsi-dostop-do-racunalniskih-storitev. [Poskus dostopa 24 8 2016].

[14] A. Mohamed, „A history of cloud computing,“ CcomputerWeekly, [Elektronski].

Available: http://www.computerweekly.com/feature/A-history-of-cloud-computing.

[Poskus dostopa 2 9 2016].

[15] CloudBuzz, „History of Cloud Computing,“ CloudTweaks, 9 2011. [Elektronski].

Available: http://cloudtweaks.com/2011/02/a-history-of-cloud-computing/. [Poskus

dostopa 25 8 2016].

[16] M. Crnkovič, „Analiza slovenskega trga ponudnikov storitev v oblaku za podjetja,“

2014.

[17] GeminiStyle.si, „Storitve in ponudniki računalništva v oblaku,“ GeminiStyle.si,

[Elektronski]. Available:

http://www.geministyle.si/print/racunalnistvo/splosno/racunalnistvo-v-oblaku-

6.html. [Poskus dostopa 27 8 2016].

[18] S. Angels, „Virtualization vs. Cloud Computing: What's the Difference?,“ Business

News Daily, [Elektronski]. Available: http://www.businessnewsdaily.com/5791-

virtualization-vs-cloud-computing.html. [Poskus dostopa 27 8 2016].

[19] T. Navarro, „The Difference Between Cloud Computing And Virtualization,“ 7 maj

2014. [Elektronski]. Available: https://www.computenext.com/blog/the-difference-

between-cloud-computing-and-virtualization/. [Poskus dostopa 27 8 2016].

[20] N. Martin, „Virtualization vs. cloud: Let's get this straight,“ TechTarget,

[Elektronski]. Available:

http://searchservervirtualization.techtarget.com/feature/Virtualization-vs-cloud-

Lets-get-this-straight. [Poskus dostopa 27 8 2016].

[21] B. Consulting, „Cloud Computing,“ [Elektronski]. Available:

http://www.barkatconsulting.com/consolidation-and-virtualization/. [Poskus

dostopa 4 6 2017].

[22] A. Shields, „Overview: Cloud computing services and deployment models,“ 23 7

2014. [Elektronski]. Available: http://marketrealist.com/2014/07/must-know-cloud-

computing-services-and-models/. [Poskus dostopa 4 6 2017].

[23] S. Sridhar, „Mobile Cloud Backend as a Service Ecosystem Map – All roads lead

to BaaS,“ 9 2 2012. [Elektronski]. Available: https://www.kinvey.com/mobile-cloud-

backend-as-a-service-ecosystem-map-all-roads-lead-to-baas/. [Poskus dostopa

15 8 2016].

[24] S. Sridhar, „Welcome to the World of Backend as a Service,“ Kinvey, 25 5 2011.

[Elektronski]. Available: https://www.kinvey.com/welcome-to-the-world-of-

backend-as-a-service/. [Poskus dostopa 27 8 2016].

[25] M. Panhale, Beginning Hybrid Mobile Application Development, Apress, 2015.

[26] „Solving the Cloud Computing Impasse with MBaaS,“ SIGCSE '16, pp. 721-721,

2016.

[27] J. A. J. D. E. C. F. A. S. P. M. Igor Costa, „Availability Evaluation and Sensitivity

Analysis of a Mobile Backend-as-a-service Platform,“ Quality and Realiability

Engineering International, Izv. 32, št. 7, pp. 2191-2205, 2015.

[28] A. Soinu, „Cloud Solutions for Mobile Applications,“ Tampere University of Applied

Sciences, 2014.

[29] A. Tan, „FatFractal ups the ante in backend-as-a-service market,“ Techgoondu,

30 9 2012. [Elektronski]. Available:

http://www.techgoondu.com/2012/09/30/fatfractal-ups-the-ante-in-backend-as-a-

service/. [Poskus dostopa 28 7 2016].

[30] M. Rouse, „mobile backend as a service (mobile BaaS),“ TechTarget,

[Elektronski]. Available:

http://searchmobilecomputing.techtarget.com/definition/mobile-Backend-as-a-

Service-mobile-BaaS. [Poskus dostopa 28 7 2016].

[31] backendless, „WHAT IS BACKEND AS A SERVICE?,“ backendless, [Elektronski].

Available: https://backendless.com/what-is-backend-as-a-service/. [Poskus

dostopa 28 7 2016].

[32] AndroidNames, „List of the Best Mobile Backend as a Service (mBaaS)

Providers,“ AndroidNames, 15 6 2016. [Elektronski]. Available:

http://www.androidnames.com/development/list-of-the-best-mobile-backend-as-a-

service-mbaas-providers/. [Poskus dostopa 28 7 2016].

[33] AndroidBegin, „List of the best Android Backend as a Service (BaaS) provider,“ 1

4 2014. [Elektronski]. Available: http://www.androidbegin.com/blog/list-best-

android-backend-service-baas-provider/. [Poskus dostopa 20 9 2016].

[34] B. D. S. Siripathi, „Back-End as a Service for Mobile Apps,“ envatotuts+, 5 3

2017. [Elektronski]. Available: https://code.tutsplus.com/articles/back-end-as-a-

service-for-mobile-apps--cms-28154. [Poskus dostopa 31 5 2017].

[35] M. Azure, „What is Azure?,“ [Elektronski]. Available:

https://azure.microsoft.com/en-us/overview/what-is-azure/. [Poskus dostopa 10 9

2016].

[36] S. Martin, „Upcoming Name Change for Windows Azure,“ Microsoft, 24 3 2014.

[Elektronski]. Available: https://azure.microsoft.com/en-us/blog/upcoming-name-

change-for-windows-azure/. [Poskus dostopa 10 9 2016].

[37] Microsoft, „Azure,“ [Elektronski]. Available: https://azure.microsoft.com/en-

us/?v=17.23h. [Poskus dostopa 10 9 2016].

[38] L. Welicki, „Announcing Azure Portal general availability,“ Microsoft, 2 12 2015.

[Elektronski]. Available: https://azure.microsoft.com/en-us/blog/announcing-azure-

portal-general-availability/. [Poskus dostopa 10 9 2016].

[39] Microsoft, „Mobile Services Pricing,“ Microsoft, [Elektronski]. Available:

https://azure.microsoft.com/en-us/pricing/details/mobile-services/. [Poskus

dostopa 10 9 2016].

[40] F. Lardinois, „Google turns Firebase into its unified platform for mobile

developers,“ TechCrunch, [Elektronski]. Available:

https://techcrunch.com/2016/05/18/google-turns-firebase-into-its-unified-platform-

for-mobile-developers/. [Poskus dostopa 12 9 2016].

[41] G. C. Platform, „Mobile Solutions - The Mobile Cloud Era,“ [Elektronski]. Available:

https://cloud.google.com/solutions/mobile/. [Poskus dostopa 11 9 2016].

[42] G. Fireabase, „Firebase - Pricing Plans,“ [Elektronski]. Available:

https://firebase.google.com/pricing/. [Poskus dostopa 24 5 2017].

[43] S. J. Vaughan-Nichols, „PCMAG - Google Cloud Platform,“ [Elektronski].

Available: http://www.pcmag.com/article2/0,2817,2496296,00.asp. [Poskus

dostopa 15 02 2017].

[44] Amazon, „Amazon Web Services - About AWS,“ [Elektronski]. Available:

https://aws.amazon.com/about-aws/. [Poskus dostopa 27 8 2016].

[45] B. Black, „http://blog.b3k.us/,“ [Elektronski]. Available:

http://blog.b3k.us/2009/01/25/ec2-origins.html. [Poskus dostopa 27 8 2016].

[46] Amazon, „AWS Mobile Services,“ Amazon, [Elektronski]. Available:

https://aws.amazon.com/mobile/. [Poskus dostopa 12 9 2016].

[47] J. Varia, „Build Your Mobile App Faster with AWS Mobile Services,“ [Elektronski].

Available: http://www.slideshare.net/AmazonWebServices/build-your-mobile-app-

faster-with-aws-mobile-services. [Poskus dostopa 1 9 2016].

[48] T. Hoff, „Amazon Architecture,“ [Elektronski]. Available:

http://highscalability.com/amazon-architecture. [Poskus dostopa 10 3 2017].

[49] Amazon, „Amazon Free Tier,“ [Elektronski]. Available:

https://aws.amazon.com/free/. [Poskus dostopa 12 9 2016].

[50] Backendless, „Backendless platform,“ [Elektronski]. Available:

https://backendless.com/products/. [Poskus dostopa 5 3 2017].

[51] J. Novet, „15 alternatives to Facebook’s Parse,“ 29 1 2016. [Elektronski].

Available: http://venturebeat.com/2016/01/29/15-alternatives-to-facebooks-parse/.

[Poskus dostopa 5 3 2017].

[52] Backendless, „BACKENDLESS CLOUD FUNCTIONAL LIMITS,“ [Elektronski].

Available: https://backendless.com/pricing/backendless-cloud-functional-limits/.

[Poskus dostopa 10 9 2016].

[53] Backendless, „API Engine Documentation,“ [Elektronski]. Available:

https://backendless.com/documentation/api-engine/apieng_overview.htm. [Poskus

dostopa 5 3 2017].

[54] M. Gienow, „Backendless is a Badass MBaaS,“ 7 10 2016. [Elektronski].

Available: https://thenewstack.io/backendless-badass-baas/. [Poskus dostopa 5 3

2017].

[55] I. Widjaya, „Backend as a Service (BaaS): Kinvey Review,“ CLOUD BIZ

REVIEWS, [Elektronski]. Available: http://www.cbrdigital.com/2012/02/13/what-is-

backend-as-a-service-baas.html. [Poskus dostopa 12 3 2017].

[56] Crunchbase, „Kinvey,“ [Elektronski]. Available:

https://www.crunchbase.com/organization/kinvey#/entity. [Poskus dostopa 12 3

2017].

[57] Kinvey, „Backend as a Service vs. API Management,“ [Elektronski]. Available:

http://d1cqpkecg5rwnz.cloudfront.net/docs/API+Management+vs.+BaaS+-

+A+Kinvey+Whitepaper.pdf. [Poskus dostopa 15 3 2017].

[58] Kinvey, „Mobile Cloud Reference Architecture for Enterprise,“ [Elektronski].

Available: https://d1cqpkecg5rwnz.cloudfront.net/docs/kinvey-mobile-reference-

architecture.pdf. [Poskus dostopa 15 3 2017].

[59] Kinvey, „Kinvey Pricing,“ [Elektronski]. Available: https://www.kinvey.com/pricing/.

[Poskus dostopa 12 9 2016].

[60] Microsoft, „Why Mobile Apps?,“ [Elektronski]. Available:

https://docs.microsoft.com/en-us/azure/app-service-mobile/app-service-mobile-

value-prop. [Poskus dostopa 12 3 2017].

[61] Amazon, „Java Annotations for DynamoDB,“ [Elektronski]. Available:

http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DynamoDB

Mapper.Annotations.html#DynamoDBMapper.Annotations.DynamoDBDocument.

[Poskus dostopa 10 3 2017].

[62] Kinvey, „Kinvey Platform,“ [Elektronski]. Available:

https://www.kinvey.com/platform/. [Poskus dostopa 12 3 2017].

[63] Kinvey, „Why you need a new mobile architecture,“ [Elektronski]. Available:

https://www.kinvey.com/platform/. [Poskus dostopa 15 3 2017].

[64] R. O'Connor, „Mobile Development Platform: The 4-Tier Architecture for

Success,“ Kinvey, 26 1 2017. [Elektronski]. Available:

https://www.kinvey.com/mobile-development-platform-4-tier-architecture-success/.

[Poskus dostopa 13 6 2017].