DATA EXCHANGE BETWEEN MOBILE AND WEB APPLICATION Mirko... · Srpski Jezik izvoda/apstrakta: JI...

59
UNIVERZITET U NOVOM SADU TEHNIČKI FAKULTET MIHAJLO PUPINZRENJANIN RAZMENA PODATAKA IZMEĐU MOBILNE I VEB APLIKACIJE DATA EXCHANGE BETWEEN MOBILE AND WEB APPLICATION MASTERRADMENTOR:doc. drLjubicaKazi STUDENT: Mirko Mijajlović BR. INDEKSA:MIT14/16 SMER: INFORMACIONE TEHNOLOGIJE - MASTER ZRENJANIN, 2019.

Transcript of DATA EXCHANGE BETWEEN MOBILE AND WEB APPLICATION Mirko... · Srpski Jezik izvoda/apstrakta: JI...

Page 1: DATA EXCHANGE BETWEEN MOBILE AND WEB APPLICATION Mirko... · Srpski Jezik izvoda/apstrakta: JI Srpski /Engleski Zemlja publikovanja: ZP ... naročito kod mlađe populacije. Tako jeautor

UNIVERZITET U NOVOM SADU

TEHNIČKI FAKULTET

„MIHAJLO PUPIN“

ZRENJANIN

RAZMENA PODATAKA IZMEĐU MOBILNE I VEB

APLIKACIJE

DATA EXCHANGE BETWEEN MOBILE AND WEB

APPLICATION

–MASTERRAD–

MENTOR:doc. drLjubicaKazi STUDENT: Mirko Mijajlović

BR. INDEKSA:MIT14/16

SMER: INFORMACIONE TEHNOLOGIJE -

MASTER

ZRENJANIN, 2019.

Page 2: DATA EXCHANGE BETWEEN MOBILE AND WEB APPLICATION Mirko... · Srpski Jezik izvoda/apstrakta: JI Srpski /Engleski Zemlja publikovanja: ZP ... naročito kod mlađe populacije. Tako jeautor

1

UNIVERZITET U NOVOM SADU

TEHNIČKI FAKULTET »MIHAJLO PUPIN« ZRENJANIN

KLJUČNA DOKUMENTACIJSKA INFORMACIJA

Redni broj:

RBR

Identifikacioni broj:

IBR

Tip dokumentacije:

TD Monografska dokumentacija

Tip zapisa:

TZ Tekstualni štampani materijal

Vrsta rada:

VR Master rad

Ime i prezime autora:

AU Mirko Mijajlović

Mentor (titula, ime, prezime,

zvanje):

MN

doc. dr Ljubica Kazi

Naslov rada:

NR Razmena podataka izmeĎu mobilne i WEB aplikacije

Jezik publikacije:

JZ Srpski

Jezik izvoda/apstrakta:

JI Srpski /Engleski

Zemlja publikovanja:

ZP Republika Srbija

Uţe geografsko područje:

UGP AP Vojvodina

Godina:

GO 2019.

Izdavač:

IZ Autorski reprint

Mesto i adresa:

MA Zrenjanin, Đure Đakovića bb

Fizički opis rada:

FO

(broj poglavlja / stranica / slika / grafikona / referenci /

priloga)

Naučna oblast:

NO Informacione tehnologije – master

Naučna disciplina:

ND Distribuirani informacioni sistemi

Predmetna odrednica, ključne

reči:

PO

Razmena podataka izmeĎu mobilne i veb aplikacije,

razmena podataka, HTML, XML, JSON, veb servis,

SOAP, REST

UDK

Čuva se u:

ČU

Biblioteka Tehničkog fakulteta

„Mihajlo Pupin“ Zrenjanin

Page 3: DATA EXCHANGE BETWEEN MOBILE AND WEB APPLICATION Mirko... · Srpski Jezik izvoda/apstrakta: JI Srpski /Engleski Zemlja publikovanja: ZP ... naročito kod mlađe populacije. Tako jeautor

2

Vaţna napomena:

VN Nema

Izvod/Apstrakt

IZ

Pitanje razmene podataka izmeĎu računara, po utisku

autora ovog rada nastalog nakon istraţivanja, postoji

od samog nastanka računara i potrebe za

umreţavanjem. Kako su rasli računarski sistemi koji

su meĎusobno komunicirali i kako su ideje nastajale iz

različitih naučnih i razvojnih centara, na red je došla

standardizacija. Kako računarskih mreţa, tako i

softverskog dela vezanog za razmenu podataka –

protokola, bezbednosti, datoteka i servisa. Akcenat je

u ovom radu stavljen na poslednja dva pomenuta

elementa (u skladu sa hipotezom istraţivanja), na

primeru komunikacije izmeĎu mobilne i veb aplikacije

uz pomoć REST servisa – što je u realizovanom

primeru i korišćeno.Realizovani primer je u vidu

informacionog sistema za restoran, sa mogućnošću

komunikacije izmeĎu mobilne i veb aplikacije. Primer

je realizovan korišćenjem Visual Studio 2017

Community alata i radnih okvira ASP.NET za veb i

Xamarin za mobilnu aplikaciju.

Datum prihvatanja od strane

NN veća:

DP

Datum odbrane:

DO

Članovi komisije:

KO

Page 4: DATA EXCHANGE BETWEEN MOBILE AND WEB APPLICATION Mirko... · Srpski Jezik izvoda/apstrakta: JI Srpski /Engleski Zemlja publikovanja: ZP ... naročito kod mlađe populacije. Tako jeautor

3

UNIVERSITY OF NOVI SAD

TEHNICAL FACULTY »MIHAJLO PUPIN« ZRENJANIN

KEY WORD DOCUMENTATION

Accession number:

ANO

Identification number:

INO

Document type:

DT Monograph documentation

Type of record:

TR Textual printed material

Concents code:

CC M.Sc.thesis

Author:

AU Mirko Mijajlovic

Mentor:

MN PhD LjubicaKazi, assistant professor

Title:

TI

Data exchange between mobile and Web

application

Language of text:

LT Serbian

Language of abstract:

LA English / Serbian

Country of publication:

CP Republic of Serbia

Locality of publication:

LP AP Vojvodina

Publication year:

PY 2019.

Publisher:

PU The author’s reprint

Publication place:

PP Zrenjanin, ĐureĐakovića bb

Physical description:

PD

Scientific field:

SF Computer Science – M.Sc.

Scientific discipline:

SD Distributed information systems

Subject, Key words:

SKW

Data exchange between mobile and Web

application, HTML, XML, JSON, web

service, SOAP, REST

UDC

Holding data:

HD

Library of Technical Faculty “Mihajlo

Pupin”Zrenjanin

Note:

N None

Abstract:

AB

The data exchange process between

computers, as this paper author’s impression is

after the research, exists from the early

beginning of the computer era and the need for

Page 5: DATA EXCHANGE BETWEEN MOBILE AND WEB APPLICATION Mirko... · Srpski Jezik izvoda/apstrakta: JI Srpski /Engleski Zemlja publikovanja: ZP ... naročito kod mlađe populacije. Tako jeautor

4

networking. As computer systems which were

networked in have been expanding, and new

ideas were developed from different science

and development centers, the turn was on

standardization. As was for computer

networks, the same was for the software part

of the data exchange – protocols, security, files

and services. In this paper, the accent is set on

two last elements from previous list (in

accordance with research hypothesis), on the

example of the communication between

mobile and web application via REST services

– which was used in the realized

example.Presented example of an information

system is based on real example of a

restaurant, with communication ability

between mobile and web app. IDE for this

example was Visual Studio 2017 Community

and ASP.NET framework and Xamarin for

mobile app.

Accepted on Scientific Board on:

AS

Defended:

DE

Thesis Defend Board:

DB

Page 6: DATA EXCHANGE BETWEEN MOBILE AND WEB APPLICATION Mirko... · Srpski Jezik izvoda/apstrakta: JI Srpski /Engleski Zemlja publikovanja: ZP ... naročito kod mlađe populacije. Tako jeautor

5

Sadrţaj

1. Uvod ...................................................................................................................................... 9

2. Metodološki okvir istraživanja ............................................................................................ 11

2.1. Predmet i problem istraživanja ................................................................................... 11

2.2. Vrsta istraživanja ......................................................................................................... 11

2.3. Cilj i zadaci istraživanja ................................................................................................ 11

2.4. Hipoteza i podhipoteze ............................................................................................... 11

2.5. Očekivani rezultati....................................................................................................... 11

2.6. Metodološki postupak ................................................................................................ 12

3. Teorijsko istraživanje ........................................................................................................... 13

3.1. Razmena podataka ...................................................................................................... 13

3.2. Jezici za razmenu podataka ......................................................................................... 13

3.2.1. SGML ................................................................................................................... 13

3.2.2. HTML ................................................................................................................... 14

3.2.3. XML ..................................................................................................................... 14

3.2.4. JSON .................................................................................................................... 15

3.2.5. Drugi jezici i modeli vezani za razmenu podataka .............................................. 15

3.3. Veb aplikacije .............................................................................................................. 16

3.4. Veb servisi ................................................................................................................... 19

3.5. Veb servisi bazirani na SOAP ....................................................................................... 19

3.6. RESTful veb servisi ....................................................................................................... 20

3.7. Mobilne aplikacije ....................................................................................................... 21

3.8. Razvoj mobilnih aplikacija ........................................................................................... 21

4. Stručno istraživanje ............................................................................................................. 22

4.1. Komunikacija Android mobilne aplikacije sa veb servisima ........................................ 22

4.2. Povezivanje putem HTTP metoda ............................................................................... 22

4.2.1. Korišdenje HttpsUrlConnection API-a .................................................................. 23

5. Naučnostručno istraživanje ................................................................................................. 27

6. Implementirano rešenje ...................................................................................................... 31

6.1. Opis problema ............................................................................................................. 31

6.2. Modeli ......................................................................................................................... 31

6.3. Korisničko uputstvo ..................................................................................................... 33

6.4. Opis implementacije ................................................................................................... 37

6.4.1. Opis korišdenih alata za realizaciju primera ........................................................ 37

6.4.2. SQL skript baze podataka .................................................................................... 40

Page 7: DATA EXCHANGE BETWEEN MOBILE AND WEB APPLICATION Mirko... · Srpski Jezik izvoda/apstrakta: JI Srpski /Engleski Zemlja publikovanja: ZP ... naročito kod mlađe populacije. Tako jeautor

6

6.4.3. JSON fajl za komunikaciju .................................................................................... 43

6.4.4. Tabela sa slojevima i podslojevima strukture aplikacije ..................................... 44

6.4.5. Ključni delovi programskog koda sa objašnjenjima ............................................ 46

6.5. Problemi realizacije ..................................................................................................... 50

7. Zaključak .............................................................................................................................. 53

8. Literatura ............................................................................................................................. 54

9. Prilozi ................................................................................................................................... 55

9.1. Prilog 1 ........................................................................................................................ 55

9.2. Prilog 2 – Listing koda ................................................................................................. 57

Page 8: DATA EXCHANGE BETWEEN MOBILE AND WEB APPLICATION Mirko... · Srpski Jezik izvoda/apstrakta: JI Srpski /Engleski Zemlja publikovanja: ZP ... naročito kod mlađe populacije. Tako jeautor

7

Apstrakt

Pitanje razmene podataka između računara, po utisku autora ovog rada nastalog

nakon istraživanja, postoji od samog nastanka računara i potrebe za umrežavanjem.

Kako su rasli računarski sistemi koji su međusobno komunicirali i kako su ideje

nastajale iz različitih naučnih i razvojnih centara, na red je došla standardizacija. Kako

računarskih mreža, tako i softverskog dela vezanog za razmenu podataka – protokola,

bezbednosti, datoteka i servisa. Akcenat je u ovom radu stavljen na poslednja dva

pomenutaelementa (u skladu sa hipotezom istraživanja), na primeru komunikacije

između mobilne i veb aplikacije uz pomod REST servisa – što je u realizovanom primeru

i korišdeno.

Realizovani primer je u vidu informacionog sistema za restoran, sa mogudnošdu

komunikacije između mobilne i veb aplikacije. Primer je realizovan korišdenjem Visual

Studio 2017 Community alata i radnih okvira ASP.NET za veb i Xamarin za mobilnu

aplikaciju.

Abstract

The data exchange process between computers, as this paper author’s impression is

after the research, exists from the early beginning of the computer era and the need

for networking. As computer systems which were networked in have been expanding,

and new ideas were developed from different science and development centers, the

turn was on standardization. As was for computer networks, the same was for the

software part of the data exchange– protocols, security, files and services. In this

paper, the accent is set on two last elements from previous list (in accordance with

research hypothesis), onthe example of the communication between mobile and web

application via REST services – which was used in the realized example.

Presented example of an information system is based on real example of a restaurant,

with communication ability between mobile and web app. IDE for this example was

Visual Studio 2017 Community and ASP.NET framework and Xamarin for mobile app.

Page 9: DATA EXCHANGE BETWEEN MOBILE AND WEB APPLICATION Mirko... · Srpski Jezik izvoda/apstrakta: JI Srpski /Engleski Zemlja publikovanja: ZP ... naročito kod mlađe populacije. Tako jeautor

8

Page 10: DATA EXCHANGE BETWEEN MOBILE AND WEB APPLICATION Mirko... · Srpski Jezik izvoda/apstrakta: JI Srpski /Engleski Zemlja publikovanja: ZP ... naročito kod mlađe populacije. Tako jeautor

9

1. UVOD

Mobilne aplikacije danas imaju veoma široku primenu u različitim oblastima privatnog

života pojedinca i poslovanja. Kada su mobilne aplikacije bile u fazi svog nastanka,

veliki boj njih je bio bez potrebe za internet vezom. Drugim rečima, korisnici nisu imali

potrebu za prelazak sa PC okruženja na mobilne uređaje. Sa porastom ponude servisa

u aplikacijama, potražnje za istim i istovremenim padom cene za Internet pristup,

popularnost mobilnih aplikacija je naglo skočila. Taj rast je pratio i sve jači hardver

mobilnih uređaja, što je otvaralo mesta za vedi broj kvalitetnije razvijenih aplikacija na

mobilnom uređaju i sa vedim brojem mogudnosti. Danas je nezamislivo imati mobilni

uređaj bez Internet veze, naročito kod mlađe populacije. Tako jeautor kroz ovaj master

rad obradiotemu jednog često korišdenog procesa – povezivanje mobilne aplikacije sa

veb aplikacijama i servisima. Ta tehnološka mogudnost naročito u poslovnom svetu ima

veliki značaj.

U ovom radu opisan je koncept veb i mobilne aplikacije, predstavljen pojam razmene

podataka i navedene su vrste fajlova koje se najčešde koriste za razmenu podataka.

Zatim je objašnjen proces uspostave veze u Andorid aplikaciji sa udaljenim resursima

preko HTTP protokola i metoda ostvarenih uz pomod REST veb servisa, a u

naučnostručnom delu je prikazano povezivanje iPhone aplikacije preko JSON i REST-a.

Kroz praktičan primer je pomenuto predstavljeno u vidu informacionog sistema za

restoran.

Na početku ovog rada najpre je izložen metodološki okvir istraživanja; definisani su

predmet, problem, vrsta, cilj i zadaci istraživanja, postavljena je hipoteza i izneseni su

očekivani rezultati.U teorijskom istraživanju obrađen je pojam razmene podataka,

navedeno je koji se jezici (vrste datoteka) koriste za razmenu podataka i izložen pojam

veb aplikacije, veb servisa i mobilne aplikacije. U stručnom istraživanju, na konkretan

način i kroz listinge kodova prikazani su načini za ostvarenje veze mobilne aplikacije sa

udaljenim resursima. U naučnostručnom istraživanju iznesen je primer komunikacije

mobilne aplikacije sa resursima u zdravstvenom informacionom sistemu preko REST

servisa i JSON fajlova. Realizovan primer obuhvata prikaz realizovane veb i mobilne

aplikacije sa međusobnom komunikacijom i bazom podataka, opis korišdenih alata za

Page 11: DATA EXCHANGE BETWEEN MOBILE AND WEB APPLICATION Mirko... · Srpski Jezik izvoda/apstrakta: JI Srpski /Engleski Zemlja publikovanja: ZP ... naročito kod mlađe populacije. Tako jeautor

10

realizaciju primera, prikaz modela putem UML dijagrma, korisničko uputstvo za

aplikativni deo realizovanog primera, zatim opis implementacije sa ključnim delovima

koda sa objašnjenjem i na kraju ključni problemi realizacije praktičnog dela ovog rada.

Page 12: DATA EXCHANGE BETWEEN MOBILE AND WEB APPLICATION Mirko... · Srpski Jezik izvoda/apstrakta: JI Srpski /Engleski Zemlja publikovanja: ZP ... naročito kod mlađe populacije. Tako jeautor

11

2. METODOLOŠKI OKVIR ISTRAŢIVANJA

2.1. Predmet i problem istraţivanja

U ovom radu, predmet i problem istraživanja su tehnike programiranja kojim se postiže

razmena podataka između mobilne i veb aplikacije, datoteke koje se koriste za

razmenu podataka, softverski servisi za razmenu podataka.

2.2. Vrsta istraţivanja

Vrste istraživanja u ovom radu su:

Teorijsko istraţivanje i

Empirijsko istraţivanje.

2.3. Cilj i zadaci istraţivanja

Cilj istraživanja je izučiti problematiku razmene podataka između mobilne i veb

aplikacije sa teorijskog i naučnostručnog aspekta.

2.4. Hipoteza i podhipoteze

Osnovna hipoteza:

Savremena razmena podataka između mobilne i veb aplikacije realizuje se putem

specifičnih datoteka i servisa.

2.5. Očekivani rezultati

Teorijski prikaz osnovnih pojmova vezanih za pitanje razmene podataka izmeĎu

mobilne i veb aplikacije,

Prikaz rezultata stručnog istraţivanja u oblasti mobilnih aplikacija, veb

aplikacija i veb servisa sa fokusom na mobilne i veb aplikacije koje su razvijene

korišćenjem savremenih pristupa za razvoj i komunikaciju

Prikaz rezultatanaučnoistraţivačkograda u oblasti mobilnih aplikacija, veb

aplikacija, veb servisa i njihove meĎusobne komunikacije

Realizovan primer mobilne i veb aplikacije sa mogućnošću komunikacije preko

mreţne veze, odreĎenih datoteka i servisa

Page 13: DATA EXCHANGE BETWEEN MOBILE AND WEB APPLICATION Mirko... · Srpski Jezik izvoda/apstrakta: JI Srpski /Engleski Zemlja publikovanja: ZP ... naročito kod mlađe populacije. Tako jeautor

12

2.6. Metodološki postupak

1. Metodološko koncipiranje istraţivanja

2. Teorijsko istraţivanje osnovnih koncepata i metoda

3. Istraţivanje postojećih naučnih i stručnih rešenja

4. Izrada prototipa mobilne i veb aplikacije

5. Testiranje prototipa

6. Dokumentovanje i analiza rezultata

Page 14: DATA EXCHANGE BETWEEN MOBILE AND WEB APPLICATION Mirko... · Srpski Jezik izvoda/apstrakta: JI Srpski /Engleski Zemlja publikovanja: ZP ... naročito kod mlađe populacije. Tako jeautor

13

3. TEORIJSKO ISTRAŢIVANJE

3.1. Razmena podataka

Razmena podataka je proces upotrebe podataka struktuiranim pod izvornom šemom i

transformacije u podatke struktuirane pod ciljnom šemom, tako da su ciljani podaci

tačna predstava izvornih podataka.„Razmena podataka omoguduje deljenje podataka

između računarskih programa. Koristi se za obavljanje zadataka kada je potrebno da

podaci budu preneseni između postojedih, nezavisno kreiranih aplikacija. Prvi sistemi

koji su podržavali restrukturiranje i prevođenje podataka bili su napravljeni pre

nekoliko desetina godina.“ Kreirani su različiti sistemi i jedan od njih je poneo ime

„EXPRESS“. On je obavljao razmenu podataka između šema struktuiranih po hijerarhiji.

„Potreba za sistemom koji podržava razmenu podataka je odavno postojao. U

poslednje vreme, ova potreba je postala više izražena kako se teren za razmenu

podataka proširio izazvano rapidnim rastom podataka na vebu skladištenih u različitim

formatima, kao što su tradicionalne šeme relacionih baza podataka, polu-struktuirane

šeme (npr. DTD i XML šeme) i različiti naučni formati.[1]

3.2. Jezici za razmenu podataka

Studijama na temu jezika za razmenu podataka pridaje se važnost od 80-ih godina

prošlog veka. Vremenom, jezici za razmenu podataka su „evoluirali od opisnih

(engl.markup), preko prikazno-orjentisanih do jezika koji podržavaju kodiranje

metapodataka koji opisuju strukturne atribute informacija“ koje prenose. Razvijanjem

Svetske Široke Mreže (engl.World Wide Web) i širenjem mogudnostiveb stranica (tada

uz pomod aplikacija napisanih u Java programskom jeziku) javila se potreba za

standardizovanim formatima za razmenu podataka.[2][3]

Različiti formati, odnosno jezici za razmenu podataka se koriste u različitim domenima.

Jedan od prvih takvih jezika je SGML (engl.Standard Generalized Markup Language), na

čijoj osnovi i ideji je nastao potpuniji HTML (engl. Hyper Text Markup Language), zatim

XML (engl. Extensible Markup Language) i drugi.[5]

3.2.1. SGML

SGML (engl.Standard Generalized Markup Language) služi za definisanje opisnih (engl.

markup) jezika. Kreiran je od strane IBM kompanije i „korišden je od strane velikih

Page 15: DATA EXCHANGE BETWEEN MOBILE AND WEB APPLICATION Mirko... · Srpski Jezik izvoda/apstrakta: JI Srpski /Engleski Zemlja publikovanja: ZP ... naročito kod mlađe populacije. Tako jeautor

14

korporacija i vladinih organizacija radi kodiranja kompleksnih dokumenata korišdenih u

industriji“. Iz tog razloga SGML i HTML imaju „relativno bogat rečnik za opisivanje

različitih tekstualnih struktura koje se često javljaju u pisanim resursima, kao što su

liste (<ul>, <ol>, i <dl>) i izlazne računarske informacije(<code>, <samp> i <kbd>), ali

isto tako oskudevaju u odnosu na ostale vrste rečnika.“Taj nedovoljno bogat rečnik je

jedan od razloga nastanka proširivog opisnog jezika - XML-a.[5][5]

3.2.2. HTML

„HTML je jezik jezgra Veba koji služi za stvaranje sadržaja za svakoga i bilo gde.“ Koristi

se za prikaz Veb stranica preko Veb pregledača (engl. browser). HTML (engl. Hyper Text

Markup Language) je jedna od primena (aplikacija) SGML-a do verzije „HTML 4“.

Najnovija glavna(engl. major) verzija „HTML 5“ je prestala da bude SGML primena.

Dobila je svoju „html“serijalizaciju i odobrena je od W3C-a (engl. World Wide Web

Consortium)2014. godine iako su prvi nacrti napravljeni još 2008. godine. Trenutna

verzija HTML 5.2odobrena je 2017. godine. [6][7][8][9][10]

Slika 1 – Izvorni kod u HTML-u[6]

3.2.3. XML

„XML (engl. Extensible Markup Language) – proširiv opisni jezikje podskup SGML-a i

razvijen je zbog kompleksnostiSGML-a.“ XML je smatran za veoma važan izum u

računarstvu zbog svog univerzalnog formata za predstavljanje podataka između

nesličnih sistema.“ Karakterišu ga jednostavnost i čitljivost pogodna za čoveka.

Napravljen je s namerom da pre svega bude pogodan za korišdenje na Internetu, koje

treba biti jednostavno. „Primarno se koristi za RPC (engl. Remote Procedure Calls –

poziveudaljenih procedura) i serijalizaciju objekata za prenos podataka između

aplikacija. Korišden je za kreiranje sadržaja od korisnički-definisanihopisnih jezika do

Page 16: DATA EXCHANGE BETWEEN MOBILE AND WEB APPLICATION Mirko... · Srpski Jezik izvoda/apstrakta: JI Srpski /Engleski Zemlja publikovanja: ZP ... naročito kod mlađe populacije. Tako jeautor

15

dokumenata i šema za kodiranje. XML nema predefinisane skupove oznaka (engl. tag

sets), a skupovi validnih oznaka su definisani od strane korisnika ili kroz druge

automatizovane šeme.“[3][4]

Slika 2 – Prikaz jednostavnosti strukture XML-a, koja predstavlja kodiranje imena

osobe [3]

3.2.4. JSON

„JSON (engl. JavaScriptObjectNotation–JavaScript označavanje objekta)je jezik pravljen

da bude razumljiv čoveku i lak za parsiranje (engl. parse – raščlanjavanje) i korišdenje

za računar. … Kako je pokazao značajne performanse u poređenju sa XML-om, koji

zahteva dodatne biblioteke da bi primio podatke iz DOM-a objekata (engl. Document

Object Model). Procenjeno je da JSON parsira podatke i do sto puta brže od XML-a u

radu sa modernim pregledačima, ali uprkos tvrdnjama o značajnim performansama,

argumenti protiv JSON-a upudeni su na račun nedostatka imenskih prostora (engl.

namespace), provere valjanosti (validacije) ulaznih podataka i nedostaci vezani za

proširivost.“ Na te argumente su dati odgovori da je, u stvari, „svaki objekat unutar

JSON-a imenski prostor“. Kao i to da „JSON koristi kontekst kako bi se izbegla

dvosmislenost, kao kod programskih jezika“. Dalje, sa korišdenjem JSON-a validacija je

prepuštena svakoj aplikaciji koja ga koristi, a na nedostatak proširivosti JSON odgovara

„fleksibilnošdu njegovih konstrukata“. [3]

Slika 3 – Prikaz jednostavnog JSON konstrukta, koji predstavlja kodiranje imena osobe

[3]

3.2.5. Drugi jezici i modeli vezani za razmenu podataka

Postoji još jezika i modelakoji su vezani za razmenu podataka, a neki od njih su:

Page 17: DATA EXCHANGE BETWEEN MOBILE AND WEB APPLICATION Mirko... · Srpski Jezik izvoda/apstrakta: JI Srpski /Engleski Zemlja publikovanja: ZP ... naročito kod mlađe populacije. Tako jeautor

16

RDF – (engl. ResourceDescriptionFramework) je„standardni model za razmenu

podataka na Vebu. RDF ima mogudnosti koje olakšava spajanje podataka iako

se osnovne šeme razlikuju.“ Podržava i razvijanje šema, bez potrebe da se

konzumenti tih šema menjaju.[11]

YAML – (engl. YetAnotherMarkupLanguage) je „format za serijalizaciju i model

za obradu podataka. (…) Optimizovan je za serijalizaciju podataka, podešavanja

konfiguracije, fajlove evidencije (engl. log files), razmenu poruka preko

Interneta i filterisanje.“ [12]

Rebol – (engl. RelativeExpressionBasedObjectLanguage) baziran je na obradi

(procesiranju) uz pomod simbola i denotacionoj semantici. Radi uz pomod

„relativnih izraza“ (engl. relativeexpressions) zvanih „dijalekti“. Upotrebu

dijalekata karakteriše koncept da su jezici koji ga koriste: mali, efikasni, da je to

domenski jezik za kodiranje, podatke i metapodatke. To znači da se Rebol

koristi za skladištenje podataka (baze podataka), pravljenje korisničkih i

serverskih programa.Takođe, poslužio je kao inspiracija za JSON. Na slici Slika 4

nalazi se uporedni prikaz Robol i JSON jezika. Na njoj se može primetiti

jednostavnost Robol sintakse, kao i korišdenje tipa podatka kao vrednost i

manipulacija istim na primeru za datum rođenja i pol.[13][14]

Slika 4 – Uporedni prikaz Robol (levo) i JSON jezika (desno)

3.3. Vebaplikacije

Veb aplikacija predstavlja aplikaciju izrađenu u klijent-server arhitekturi. Za njihovo

korišdenje, odnosno pristup interfejsu aplikacije od strane klijenta koristi se veb

pregledač. Kao i kod veb sajtova, veb aplikacija može imati više stranica, a postoji i SPA

Page 18: DATA EXCHANGE BETWEEN MOBILE AND WEB APPLICATION Mirko... · Srpski Jezik izvoda/apstrakta: JI Srpski /Engleski Zemlja publikovanja: ZP ... naročito kod mlađe populacije. Tako jeautor

17

(engl.Single-pageApplication) – jednostranična aplikacija –vebaplikacija izrađena na

jednoj HTML stranici.[15][16]

Za razliku od veb sajtova, koji su uglavnom statični, veb aplikacije spadaju u dinamički

Internet sadržaj. To znači da veb aplikacije imaju mogudnost da, kao reakcija na

korisničke zahteve, stvaraju sadržaj, menjaju stanje parametara u bazi podataka i pre

nego što isporuči sadržaj, uzima u obzirviše parametara. Sadržaj veb aplikacija semenja

često ili automatski. Servisi, odnosno zadaci za koje je aplikacija isprogramirana da

obavlja, izvršavaju se uz interakciju sa korisnikom. Pri njihovom izvršavanju koriste se

različite vrste baza podataka postavljene na servere kojima se pristupa preko

Interneta.Dinamičke veb aplikacije opslužuje dinamički veb server koji se sastoji od

statičkog servera i dodatnog softvera za smeštanje i upravljanje veb aplikacijama i

bazama podataka. Dinamički server uz pomod svog aplikativnog dela ažurira fajlove

smeštene na serveru pre njihovog slanja klijentu, odnosno pregledaču. Pregledač zatim

čita fajlove HTML stranica i vrši prikaz sadržaja.[15][17][18]

Page 19: DATA EXCHANGE BETWEEN MOBILE AND WEB APPLICATION Mirko... · Srpski Jezik izvoda/apstrakta: JI Srpski /Engleski Zemlja publikovanja: ZP ... naročito kod mlađe populacije. Tako jeautor

18

Slika 5 – Šematski prikaz učitavanja dinamičke veb stranice (prikazana prema izvoru iz

reference)[19]

U kombinaciji sa programiranjem na serveru, veb aplikacija se može razviti u

kompleksan i modan softverski paket koji ima određenu poslovnu ili neku drugu svrhu.

U poslovnom svetu, one uspešno služe zarad povedanja efikasnosti u poslovanju i

korisničke interakcije uz pomod naprednih funkcionalnosti pruženih u pristupačnom

obliku. Postoje osnovne funkcionalnosti koje veb aplikacija podrazumeva. Jedna od njih

je unapređena interakcija sa korisnicima, zatim mora imati vezu sa bazom podataka i

dinamičko generisanje sadržaja i rezultata koji se prikazuju korisniku.[20]

Iz godine u godinu veb aplikacije bivaju posmatrane od strane privrednih stručnjaka

kako klijenti očekuju od developera ispunjenje svih potreba potrošača zarad povedanja

korišdenja aplikacija od strane potrošača.[20]

Page 20: DATA EXCHANGE BETWEEN MOBILE AND WEB APPLICATION Mirko... · Srpski Jezik izvoda/apstrakta: JI Srpski /Engleski Zemlja publikovanja: ZP ... naročito kod mlađe populacije. Tako jeautor

19

Veb aplikacije danas uspešno služe kao zamena za neke softverske pakete koji moraju

biti instalirani na računaru da bi obavljali zadatke za koje su namenjeni.Razni servisi,

odnosno delovi aplikacije uz pomod kojih se vrši obrada podataka koriste resurse

servera umesto resursa radne stanice, na kojoj se nalazi korisnički interfejs aplikacije.

3.4. Veb servisi

Veb servisi su klijentske i serverske aplikacije koje komuniciraju preko HTTP-a (engl.

HyperText Transfer Protocol). Po opisu od strane W3C-a „veb servisi pružaju

standardna sredstva za interoperabilnost između softverskih aplikacija pokrenutih na

različitim platformama i okvirima (engl. framework).“ Karakteristični su po odličnom

interoperabilnošdu i mogudnošdu proširivanja. Zahvaljujudi XML-u imaju računarski

lako obradive definicije i mogu biti međusobno kombinovani u slaboj sprezi (engl.

loosecoupling) zarad obrade složenih operacija.[21]

Postoji glavna podela veb servisa na dve vrste, po načinu na koji oni mogu biti

implementirani. [22]

3.5. Vebservisi bazirani na SOAP

Veb servisi koji koriste SOAP (engl. SimpleObject Access Protocol) zovu se još i „Big“

(engl. big – veliki). SOAP je protokol za komunikaciju po kojem su usklađene poruke u

XML-u koje servis koristi za razmenu podataka. Takođe, u XML-u se definišu

arhitektura i formati poruka koje se razmenjuju.U nekim sistemima postoje definicije

operacija ponuđenih preko servisa napisane u WSDL (engl. Web

ServicesDescriptionLanguage), koji predstavlja XML jezik za sintaksno definisanje

interfejsa servisa. [22]

Dizajn softvera po SOAP-u mora imati sledede elemente:

Postojanje formalnog ugovora za opisivanje interfejsa koje veb servis nudi. Opis

formalnog ugovora se može pisati u WSDL-u. Opis može biti sastavljen od

poruka, operacija, veza i lokacije veb servisa.

Arhitekturu koja adresira složene nefunkcionalne elemente kao što su

transakcije, bezbednost, adresiranje, poverljivost, koordinacija itd.

Arhitekturu koja podržava asinhrone procese i pozive.[22]

Page 21: DATA EXCHANGE BETWEEN MOBILE AND WEB APPLICATION Mirko... · Srpski Jezik izvoda/apstrakta: JI Srpski /Engleski Zemlja publikovanja: ZP ... naročito kod mlađe populacije. Tako jeautor

20

3.6. RESTful veb servisi

RESTful (engl. RepresentationalState Transfer) veb servisi služe za osnovne zahteve u

komunikaciji između aplikacija.Bazirani su na REST arhitekturi. Kako imaju vedi nivo

integracije sa HTTP-om od servisa zasnovanih na SOAP, manje su zahtevni za

implementaciju. Ne zahtevaju da poruke budu u XML-u kao ni WDSL definicije. Zbog

svoje jednostavnosti jeftiniji su za implementiranje i kao tehnologija laki za

razumevanje i usvajanje.[22][24]

Okruženje adekvatno za RESTful za je ono koje ima sledede uslove:

Nepostojanje stanja (engl. stateless) – trajno stanje servisane postoji, što znači

da „server ne čuva nikakvo stanje vezano za sesijuklijenta. … Svaki HTTP zahtev

se dešava u potpunoj izolaciji. … Svaki zahtev mora da sadrži sve neophodne

informacije za razumevanje zahteva i bilo kakav sačuvani kontekst sa servera se

ne može koristiti. … Server se nikada ne oslanja na informacije iz prethodnih

zahteva.“

Mogudnost keširanja (engl. cacheable) –ako podaci koje veb servis vrada nakon

zahteva nisu dinamički generisani i mogu biti keširani na serveru radi

poboljšanja performansi;

Međusobno razumljiv kontekst i sadržaj–sa strane autora veb servisa i sa strane

korisnika mora da postoji međusobno razumevanje konteksta i sadržaja i

usklađenost šeme za razmenu podataka;

Ograničeni protok podataka– količina podatakakoja se prenosi mora biti

ograničena zarad performansi, naročito zbog mobilnih uređaja;

Laka implementacija u postojeda veb rešenja– RESTful je mogude primeniti bez

značajnih promena na arhitekturi postojede veb aplikacije ili sajta.Mogu se

primeniti uz korišdenje raznih alata kao što je AJAX za JavaScript[22][23]

RESTful veb servisi se mogu primeniti uz pomod AJAX pristupa koji radi u kombinaciji

više tehnologija (HTML ili XHTML, CSS, JS, DOM, XML, XSLT i XHR), za Majkrosoft

tehnologijevodedi je ASP.NET, a u Java okruženju upotrebom JAX-RS tehnologije ili

DWRalata.[22][25][26]

Page 22: DATA EXCHANGE BETWEEN MOBILE AND WEB APPLICATION Mirko... · Srpski Jezik izvoda/apstrakta: JI Srpski /Engleski Zemlja publikovanja: ZP ... naročito kod mlađe populacije. Tako jeautor

21

3.7. Mobilne aplikacije

Mobilne aplikacije su softverski programi razvijeni za mobilne uređaje kao što su

pametni telefoni, tableti, pametni satovi i PDA uređaji.[28]

Svrha mobilne aplikacije može biti različita. Počevši od uslužnih, raznih softverskih

alata i onih za poboljšanje produktivnosti, za komunikaciju i navigaciju do onih za igru,

zabavu, rekreaciju i sport. Vodede su one za socijalne mreže, a najkorišdenija aplikacija

za sve platforme u 2017. godini bila je Facebook aplikacija.[28]

Neke aplikacije dolaze uz kupljeni uređaji, ali vedina zvaničnih aplikacija je dostupna za

preuzimanje iz specifičnih prodavnica kao što je „Google Play“ za uređaje sa „Android“

operativnim sistemom, „Apple’sApp Store“ za uređaje sa „iOS“ operativnim sistemom i

„AmazonAppStore“ za „Amazon Fire“ uređaje.[28]

3.8. Razvojmobilnihaplikacija

„Razvoj mobilnih aplikacija je proces kreiranja softverskih aplikacija koje se pokredu na

mobilnom uređaju i tipična mobilna aplikacija koristi mrežnu vezu za rad sa udaljenim

računarskim resursima.“[27]

Postoje četiri glavna pristupa za razvoj mobilnih aplikacija:

Izvorne (engl. native) mobilne aplikacije

Višeplatformske (engl. Cross-Platform) izvorne mobilne aplikacije

Hibridne mobilne aplikacije

Progresivne veb aplikacije[27]

Pored navedenih, postoje i veb aplikacije koje su prilagođene za korišdenje na

uređajima saekranima koji imaju opseg rezolucija kao kod modernih pametnih

telefona.

Page 23: DATA EXCHANGE BETWEEN MOBILE AND WEB APPLICATION Mirko... · Srpski Jezik izvoda/apstrakta: JI Srpski /Engleski Zemlja publikovanja: ZP ... naročito kod mlađe populacije. Tako jeautor

22

4. STRUČNO ISTRAŢIVANJE

4.1. Komunikacija Android mobilne aplikacije sa veb servisima

Android operativni sistem ima ugrađene interfejse za povezivanje sa ostalim

uređajima, između ostalog i preko mreže putem najčešde korišdenog protokola za

povezivanje aplikacija koje zahtevaju mrežnu vezu zarad razmene podataka –

HTTP.Pored biblioteka ugrađenih u operativni sistem i koje pružaju osnovne

mogudnosti, postoje i biblioteke koje se preuzimaju kao što su Volley i Cronet. Takve

biblioteke pružaju dodatne mogudnosti, najpre vezane za performanse prenosa

podatakai olakšice oko podešavanjamrežne veze.[29][30]

Bez obzira na izbor načina uspostave veze, zajedničko za svaku Android aplikaciju je

pre svega uključivanje dozvola za korišdenje Internet veze i pristupu informaciji o

stanju mreže uređaja (da li uređaj ima mrežnu vezu ili ne). To se izvodi u dve HTML

linije u fajlu AndroidManifest.xml koji postoji u svakoj Android aplikaciji.

<uses-permissionandroid:name="android.permission.INTERNET"/> <uses-permissionandroid:name="android.permission.ACCESS_NETWORK_STATE"/>

Listing 1 – Deo XML koda AndroidManifest.xml fajla za ostvarenje dozvola u Android

aplikaciji[29]

4.2. Povezivanje putem HTTP metoda

„Pre dodavanje mrežne funkcionalnosti u aplikaciju, treba se uveriti da podaci i

informacije unutar aplikacije ostaju sigurne prilikom prenosa istih preko mreže.“

Preporuka sa „treninga“ sa zvaničnog sajta Androida je slededa praksa:

Svesti na minimum prenos osetljivih i ličnih podataka korisnika koji se prenose

preko mreže.

Svaki promet podataka izvršiti putem SSL-a (engl. SecureSocketsLayer).

Razmotriti ideju o sigurnoj postavci mreže i korišdenje sertifikata izdatih od

posebnih CA (engl. CertificateAuthorities–izdavač sertifikata)ili ograničiti pristup

sistemskih sertifikata koji su podrazumevano odobreni.[29]

Nakon obezbeđivanja sigurnog načina za komunikaciju bira se način za povezivanje sa

udaljenim resursima. Najčešde biran način za razmenu podataka je HTTP. Android

Page 24: DATA EXCHANGE BETWEEN MOBILE AND WEB APPLICATION Mirko... · Srpski Jezik izvoda/apstrakta: JI Srpski /Engleski Zemlja publikovanja: ZP ... naročito kod mlađe populacije. Tako jeautor

23

platforma ima ugrađen HttpsURLConnection klijent koji podržava TLS (engl. Transport

LayerSecurity), inače naslednika SSL-a.HttpsURLConnection klijent podržava striming

slanja i preuzimanja podatka, podesive pauze (engl. timeouts), IPv6 (Internet Protokol

verzija 6) ipuling veze (engl. connectionpooling). [30][31]

classMainActivity:FragmentActivity(),DownloadCallback<String>{

...

//Referenca ka NetworkFragment biblioteci, koja poseduje

asinhroniAsyncTask objekat koji se koristi za izvršavanje operacija

sa mrežom

privatevar networkFragment:NetworkFragment?=null

// Boolean vrednost koja govori da li je preuzimanje u toku,

radi sprečavanja preklapanja preuzimanja sa višestrukim klikom na

dugme za preuzimanje

privatevar downloading =false

overridefun onCreate(savedInstanceState:Bundle?){

...

networkFragment

=NetworkFragment.getInstance(supportFragmentManager,"https://www.go

ogle.com")

}

privatefun startDownload(){

if(!downloading){

// Izvršenje preuzimanja asinhrono

networkFragment?.apply {

startDownload()

downloading =true

}

}

}

}

Listing 2–Povezivanje sa mrežom korišćenjem «Fragment»implementacije i

«DownloadCallback» interfejsa[29]

4.2.1. KorišćenjeHttpsUrlConnection API-a

Prethodno pomenut način uspostavljanja veze predstavlja pristup koji je najpribližniji

izvornom. Što bi, drugim rečima, značilo da se koriste najosnovnije ugrađene biblioteke

Android sistema.

Page 25: DATA EXCHANGE BETWEEN MOBILE AND WEB APPLICATION Mirko... · Srpski Jezik izvoda/apstrakta: JI Srpski /Engleski Zemlja publikovanja: ZP ... naročito kod mlađe populacije. Tako jeautor

24

S više jednostavnosti, a s manje kodapružaslededi način za uspostavljanje veze i slanje

HTTP GET zahteva, takođe kroz ugrađene funkcije. [29]

Uspešno uspostavljena veza se označava uz pomod statusnog koda 200, a statusne

kodove vrada „getResponseCode()“ metoda. [29]

/**

* Zadati URL postavlja vezu i prima telo HTTP odgovora sa

servera.

* Ako je zahtev mreže uspešno izvršen, vraća telo odgovora u

String obliku (u obliku niza karaktera). U suprotnom vratiće

IOException.

*/

@Throws(IOException::class)

privatefun downloadUrl(url: URL): String? {

var connection: HttpsURLConnection? = null

returntry {

connection = (url.openConnection() as?

HttpsURLConnection)

connection?.run {

// Vreme čekanja za čitanje InputStream-a proizvoljno

je podešeno na 3000ms.

readTimeout = 3000

// Vreme čekanja za connection.connect() proizvoljno

je podešeno na 3000ms.

connectTimeout = 3000

// Za ovaj slučaj korišćenja, postavlja se HTTP

metoda na GET.

requestMethod = "GET"

// Već podrazumevana vrednost, ali postavlja se za

svaki slučaj; potrebno je da bude„true“zbog toga što ovaj zahtev

nosi telo input-a (odgovora).

doInput = true

// Otvori komunikacionu vezu (mrežni saobraćaj se

ovde dešava).

connect()

publishProgress(CONNECT_SUCCESS)

if (responseCode != HttpsURLConnection.HTTP_OK) {

throwIOException("HTTP error code:

$responseCode")

}

// Prijem tela odgovora kao InputStream.

publishProgress(GET_INPUT_STREAM_SUCCESS, 0)

inputStream?.let { stream ->

// Konvertovanje Stream-au String sa maksimalnom

Page 26: DATA EXCHANGE BETWEEN MOBILE AND WEB APPLICATION Mirko... · Srpski Jezik izvoda/apstrakta: JI Srpski /Engleski Zemlja publikovanja: ZP ... naročito kod mlađe populacije. Tako jeautor

25

dužinom 500.

readStream(stream, 500)

}

}

} finally {

// Zatvori Stream i prekini HTTPS vezu.

connection?.inputStream?.close()

connection?.disconnect()

}

}

Listing 3–Deo koda za GET zahtev uz pomoć HttpsUrlConnection API-a[29]

Tekst tela odgovora u navedenom primeru u Listing 3je „InputStream“ – ulazni

tokpodataka.Nakon prijema InputStream-a, koji predstavlja mašinski čitljiv izvor

bajtova, njime se može dalje manipulisati. Najčešda praksa za slededi korak je

konverzija Stream-a u čoveku razumljivi pojam, bio on tekstualni tip (String) ili slika

(Bitmap). [29]

Povezivanje sa udaljenim resursima iz Android aplikacije se svodi na sličan algoritam

čiji je deo prikazan kroz navedeni kod u Listing 2 i Listing 3. Upotrebom metoda u Kotlin

programskom jeziku, taj algoritam izgleda slično slededem: (Pojašnjenje navedenih

pojmova može se nadi u Prilogu 1 na kraju dokumenta.)

1. Activity pokrede NetworkFragment i prosleđuje mu navedeni URL.

2. Kada korisnikova akcija okine metodu downloadData() iz Activity-a,

NetworkFragment izvršava DownloadTask.

3. Asinhrona AsyncTask metoda onPreExecute() se prva pokrede (na niti

korisničkog interfejsa (engl. UI thread)) i otkazuje započeti zadatak u slučaju da

uređaj nije povezan na Internet.

4. AsyncTask metoda doInBackground() se pokrede zatim na niti za pozadinske

zadatke (engl. backgroundthread) i zatim poziva downloadUrl() metodu.

5. InputStream je prosleđen readStream() metodi koja konvertuje tok u niz

znakova (engl. string).

6. Na posletku, kada je posao u pozadini završen, asinhrona AsyncTaskmetoda

onPostExecute()se pokrede na niti korisničkog interfejsa i koristi

Page 27: DATA EXCHANGE BETWEEN MOBILE AND WEB APPLICATION Mirko... · Srpski Jezik izvoda/apstrakta: JI Srpski /Engleski Zemlja publikovanja: ZP ... naročito kod mlađe populacije. Tako jeautor

26

DownloadCallback za slanje rezultata nazad na korisnički interfejs kao niz

znakova.[29]

Nakon implementacije operacija za rad sa mrežom u Android aplikaciju veoma je bitno

prilagoditi aplikaciju shodno korisničkom ponašanju u tom smislu što Android

operativni sistem na menjanje položaja uređaja uspravno/vodoravno odgovara

ponovnim kreiranjem Activity-a, što za posledicu ima referenciranje novog

NetworkFragment-a koje treba izbedi. To znači da „stari“NetworkFragment gubi vezu

sa novokreiranimActivity-em i nakon završetka prijema podataka korisniku nede biti

mogud prikaz rezultata – kojibiva protraden.[29]

Nakon toga, treba obratiti pažnju na kontrolu (stanja) mrežne veze i potrošnju

mrežnog protoka kao i optimizaciju podataka koji se prenose preko mreže.

Kada su podaci preuzeti, mogude je njima dalje upravljati.

Page 28: DATA EXCHANGE BETWEEN MOBILE AND WEB APPLICATION Mirko... · Srpski Jezik izvoda/apstrakta: JI Srpski /Engleski Zemlja publikovanja: ZP ... naročito kod mlađe populacije. Tako jeautor

27

5. NAUČNOSTRUČNO ISTRAŢIVANJE

Kao rezultat naučnostručnog istraživanja, u ovom delu rada iznesena su iskustva

prilikom razvoja, odabira tehnologije za razvoj dela aplikacije za komunikaciju sa

udaljenim resursima i korišdenja mobilne aplikacije.

U konkretnom slučaju radi se o aplikaciji za korišdenje u zdravstvu za pregled podataka

o pacijentu od strane medicinskog osoblja sa mobilnog telefona sa iOS operativnim

sistemom.Error! Reference source not found.

Neki od problema na koje se nailazi sa tehničke strane u komunikaciji između mobilne

aplikacije i ostatka informacionog sistema je komunikacija novih klijenata (mobilnih

uređaja) sa postojedim API-ima koji su, uglavnom, napisani u SOAP tehnologiji. Tako je

jedan od problema bio i taj koji API koristiti u izradi mobilne aplikacije za pristup velikoj

bazi podataka koja takođe sadrži poverljive podatke, a da pritom performanse budu u

fokusu u komunikaciji između klijenta i back-end servisa, a takođe i jednostavnost

povezivanja sa istim za nove klijente.Brzina je naročito bitna kod aplikacije za ovakve

namene zato što je poželjno za medicinsko osoblje da ima brz uvid u stanje pacijenta.

Takođe, poželjan je i brz razvoj, menadžment, mogudnost proširivanja i lakoda

održavanja dostupnih mogudnosti aplikacije i povezanog servisnog sloja.Error!

Reference source not found.

Što se bezbednosti podataka o stanju pacijenata tiče vezano za upotrebu ovakve

aplikacije, autori aplikacije su odlučili da ne čuvaju nikakav podatak u samom uređaju,

kako podatke o pacijentu, tako i o prijavi autorizovanog korisnika. Aplikaciji se pristupa

tako što autorizovani korisnik unese svoju šifru u aplikaciju, zatim šifra biva poslata

preko API-a na server. Nakon uspešne provere šifre, server vrada bezbednosni token

koji se iznova koristi prilikom svakog novog podzahteva poslatog serveru.Error!

Reference source not found.

Kao još jedan od pomenutih problema sa kojima su se inženjeri susreliprilikom izrade

aplikacijeje izbor početne i dodatnih platformi za koje se mobilna aplikacija razvija. Kao

višeplatformsko rešenje pomenuta je veb aplikacija prilagođena za korišdenje sa

mobilnih uređaja, čiji je razvoj brži i zahteva manje vremena za izradu, dok je za

mobilnu aplikaciju za svaku najčešde korišdenu platformu potrebno više vremena, te je

Page 29: DATA EXCHANGE BETWEEN MOBILE AND WEB APPLICATION Mirko... · Srpski Jezik izvoda/apstrakta: JI Srpski /Engleski Zemlja publikovanja: ZP ... naročito kod mlađe populacije. Tako jeautor

28

„neophodno minimizirati složenost integracije sa back-end servisima i pokušati

„rasparivanje“ razvoja i održavanje klijentskih i komponenata sa serverske

strane.“Error! Reference source not found.

Pre razvoja mobilne aplikacije za zdravstvenu ustanovu, postojale su samo veb

aplikacije za pristup podacima o pacijentima koje su ili bile jako međusobno zavisne

(engl. tightlycoupled) ili se njima pristupalo preko veb servisa baziranim na SOAP. A kao

što je ranije pomenuto, servisi bazirani na SOAP imaju svoje prednosti (bezbednost pre

svega) i nedostatke (robusnost). Error! Reference source not found.

Slika 6 – Šematski prikaz integrisane mobilne/REST API arhitekture iz veb aplikacije

«Elysium VHR»Error! Reference source not found.

U informacionom sistemu za komunikaciju sa klijentom korišdeni su HTTP zahtevi

poslati kroz SSL da bi se pribavio JSON fajl sa demografskim podacima pacijenta ili sa

podacima o njegovom zdravstvenom stanju. Izbor se sveo na JSON zbog svoje

Klijentska aplikacija

REST API mrežni prolaz servisa

JAX-RS – Java REST veb API

Integracija podataka

Trajni sloj

Pacijenti | Laboratorijski rezultati

Elysium VHR zdravstveni

informacioni sistem

Page 30: DATA EXCHANGE BETWEEN MOBILE AND WEB APPLICATION Mirko... · Srpski Jezik izvoda/apstrakta: JI Srpski /Engleski Zemlja publikovanja: ZP ... naročito kod mlađe populacije. Tako jeautor

29

kompaktnosti i nudi bolje performanse u odnosu na XML. Radi očuvanja privatnosti,

osetljivi podaci, kao što je ime pacijenta, slati su u telu zahteva. Kao dodatan učinak za

bolje performanse, odgovori koje šalje REST API kompresovani su korišdenjem GZIP

(formata datoteke).Error! Reference source not found.

Zbog nepostojanja stanja (engl. statelessosobina) REST servisa, velike količine podataka

slate su iz više zahteva, što je suočilo inženjere sa problemom preklapanja podataka,

na šta se morala obratiti pažnja. Takođe, trebalo je odrediti i maksimalni broj

pacijenata za koji se vrši upit.Primena upita prikazana je na slici - Slika 7. Error!

Reference source not found.

{"query": {"family":"...", "max":N, "offset":M} }

{"patients": {"list":[list of patients], "count":X, "offset":Y, "remain":Z} }

Listing 4 – Primer upita u vidu JSON objekta za podatke o pacijentima (gore) i dobijeni

odgovor u vidu JSON objekta(dole)Error! Reference source not found.

Page 31: DATA EXCHANGE BETWEEN MOBILE AND WEB APPLICATION Mirko... · Srpski Jezik izvoda/apstrakta: JI Srpski /Engleski Zemlja publikovanja: ZP ... naročito kod mlađe populacije. Tako jeautor

30

Slika 7 – Izgled korisničkog interfejsa za pretragu imena pacijenataError! Reference

source not found.

Slika 8 – Izgled sažetka podataka za jednog pacijenta putem REST API-a u vidu JSON

objekta prikazano u korisničkom interfejsu iPhone aplikacijeError! Reference source

not found.

Page 32: DATA EXCHANGE BETWEEN MOBILE AND WEB APPLICATION Mirko... · Srpski Jezik izvoda/apstrakta: JI Srpski /Engleski Zemlja publikovanja: ZP ... naročito kod mlađe populacije. Tako jeautor

31

{"lab-results": {"list": [{"lab-result": {"entry":"...", "facility":"...", "normalcy":"...", "orderedBy":"...", "status":"...", "subject":"...", "urgency":"..."}}, {"lab-result": {"date":"...", ...}}, ...], "count":{count}, "offset":{offset}, "remain":{remain} }

Listing 5 – Primer upita u vidu JSON

objekata za podatke o jednom pacijentu

Error! Reference source not found.

Slika 9 – Izgled korisničkog interfejsa za

detaljni prikaz podataka o jednom

pacijentu iz listinga - Listing 5Error!

Reference source not found.

6. IMPLEMENTIRANO REŠENJE

6.1. Opis problema

Problem za koji je realizovano softversko rešenje je restoransko poslovanje. Potrebno

je omoguditi unos artikala kroz veb aplikaciju, unos i uređivanje cenovnika, kao i

pregled narudžbina dodatih od strane konobara. S tim u vezi, potrebno je omoguditi i

unos narudžbina putem mobilnog uređaja od strane konobara. Radi bržeg unosa

narudžbina, potrebno je omoguditi pretragu artikala dodatih na cenovnik. Takođe,

osim stavki narudžbine potrebno je dozvoliti i unos količine izabranog artikla i broja

stola za koji je narudžbina namenjena.

Rešenje se sastoji iz dva dela. Prvi deo je veb aplikacija koja služi za uređivanje

podataka o artiklima, prikazu artikala na mobilnom uređaju i cenama artikala, pregledu

izvršenih narudžbina i njihovih stavki. A drugi deo je mobilna aplikacija koja komunicira

Page 33: DATA EXCHANGE BETWEEN MOBILE AND WEB APPLICATION Mirko... · Srpski Jezik izvoda/apstrakta: JI Srpski /Engleski Zemlja publikovanja: ZP ... naročito kod mlađe populacije. Tako jeautor

32

sa veb aplikacijom radi unosa narudžbina. Potrebno je da konobar ima ažurni prikaz

dostupnih artikala i prikaz cene za izabranu količinu.

6.2. Modeli

U ovom odeljku prikazani su osnovni modeli putem UML dijagrama. Dati dijagrami

služe kao šematski prikaz realizovane baze podataka, istovremeno modela unutar veb

aplikacije, takođe za prikaz razmeštaja elemenata sistema i njihove međusobne

zavisnosti i kao prikaz komponenti informacionog sistema restorana i veza između njih.

Dijagram klasa daje prikaz realizovane šeme podataka koja je deo informacionog

sistema restorana iz implementiranog rešenja – kako u bazi podataka tako i u

modelima veb aplikacije.

Slika 10 – Dijagram klasa

Dijagram razmeštaja predstavlja šematski prikaz fizičkog razmeštaja artifakata (delova

softvera) raspoređenih po čvorovima. Čvorovi predstavljaju hardverske jedinice u

kojima se nalaze elementi realizovanog informacionog sistema.

Page 34: DATA EXCHANGE BETWEEN MOBILE AND WEB APPLICATION Mirko... · Srpski Jezik izvoda/apstrakta: JI Srpski /Engleski Zemlja publikovanja: ZP ... naročito kod mlađe populacije. Tako jeautor

33

Slika 11 – Dijagram razmeštaja

Dijagram komponenti daje šematski prikaz sastavnih delova realizovanog

informacionog sistema i njihovu međusobnu zavisnost, generalizaciju (sloj logike za

komunikaciju sa veb servisom ka sloju logike mobilne aplikacije) i realizaciju (veb servis

ka veb API-u), kao i korišdenje određenih datoteka.

Page 35: DATA EXCHANGE BETWEEN MOBILE AND WEB APPLICATION Mirko... · Srpski Jezik izvoda/apstrakta: JI Srpski /Engleski Zemlja publikovanja: ZP ... naročito kod mlađe populacije. Tako jeautor

34

Slika 12 – Dijagram komponenti

6.3. Korisničko uputstvo

Pre korišdenja ostatka softverskog rešenja, potrebno je izvršiti unos podataka

neophodnih za rad informacionog sistema, odnosno potrebno je najpre uneti listu

artikala i cene za artikle u delu za uređivanje cenovnika. Sa početne strane veb

aplikacije mogude je izvršiti navigaciju ka uređivanju artikala, cenovnika i pregled

postojedih narudžbina. To se može učiniti klikom na dugmad na sredini početne strane,

ili sa bilo koje strane iz navigacione trake koja se nalazi na vrhu veb aplikacije.

Page 36: DATA EXCHANGE BETWEEN MOBILE AND WEB APPLICATION Mirko... · Srpski Jezik izvoda/apstrakta: JI Srpski /Engleski Zemlja publikovanja: ZP ... naročito kod mlađe populacije. Tako jeautor

35

Slika 13 – Izgled početne stranice veb aplikacije

Na cenovnik se ne može dvaput dodati isti artikal. Unosom statusa aktivan omoguduje

se prikaz artikla u listi na mobilnom uređaju.

Slika 14 – Izgled stranice za unos artikala u cenovnik sa porukom greške

Page 37: DATA EXCHANGE BETWEEN MOBILE AND WEB APPLICATION Mirko... · Srpski Jezik izvoda/apstrakta: JI Srpski /Engleski Zemlja publikovanja: ZP ... naročito kod mlađe populacije. Tako jeautor

36

Slika 15

Slika 16 – Izgled mobilne aplikacije: početni ekran (levo) i sa izvršenom pretragom i

unesenom narudžbom (desno)

Page 38: DATA EXCHANGE BETWEEN MOBILE AND WEB APPLICATION Mirko... · Srpski Jezik izvoda/apstrakta: JI Srpski /Engleski Zemlja publikovanja: ZP ... naročito kod mlađe populacije. Tako jeautor

37

Slika 17 – Prikaz izvršene narudžbe za sto broj 5 i porukom o uspešnom unosu u dnu

ekrana

Pregled narudžbina se može izvršiti putem veb aplikacije. Mogud je i pregled

narudžbina za svaku narudžbinu po master-detail dizajnu interfejsa.

Slika 18 – Pregled izvršenih narudžbina

Page 39: DATA EXCHANGE BETWEEN MOBILE AND WEB APPLICATION Mirko... · Srpski Jezik izvoda/apstrakta: JI Srpski /Engleski Zemlja publikovanja: ZP ... naročito kod mlađe populacije. Tako jeautor

38

Slika 19 – Prikaz detalja narudžbine

6.4. Opis implementacije

6.4.1. Opis korišćenih alata za realizaciju primera

6.4.1.1. Visual Studio 2017 Community

Za izradu veb aplikacije, veb servisa i mobilne aplikacije korišdeno je radno okruženje

Visual Studio 2017 verzije Community.Microsoft Visual Studio je integrisano razvojno

okruženje (IDE - IntegratedDevelopmentEnvironment) napravljeno od strane

Majkrosofta. Koristi se za razvijanje programa za računare, prvenstveno za operativni

sistem Microsoft Windows, takođe i za veb sajtove, veb aplikacije i veb servise.[34]

Microsoft Visual Studio koristi platforme za razvojni softver kao što su Windows API,

Windows Forms, Windows PresentationFoundation, Windows Store i Microsoft

Silverlight. Pomodu njega se može proizvesti i mašinski (native) kod i upravljeni

(managed) kod.[34]

Visual Studio uključuje uređivač koda koji podržava InteliSens (komponenta koja

dovršava kod) kao i refaktorisanje koda. Takođe poseduje integrisani softver za

otklanjanje grešaka koji radi istovremeno kao dibager na nivou koda i mašinskom

nivou. Takođe uključuje i razne dizajnere kao što je dizajner formi za aplikacije sa

grafičkim korisničkim interfejsom, veb dizajner, dizajner klasa i dizajner šema baza

podataka.[34]

Page 40: DATA EXCHANGE BETWEEN MOBILE AND WEB APPLICATION Mirko... · Srpski Jezik izvoda/apstrakta: JI Srpski /Engleski Zemlja publikovanja: ZP ... naročito kod mlađe populacije. Tako jeautor

39

Pre verzije Visual Studio 2013 Update 4 program je bio besplatan za studente, ali

počevši od navedene verzije program ima svoje izdanje Zajednice (engl. community)

koja je besplatna za sve i uključujemogudnosti kao što je i Xamarin.[34]

Slika 20 – Razvojni alat Visual Studio

Platforma Xamarin 2.0 je objavljena februara 2013. godine. Njom je bilo omogudena

izrada izvornih Android, iOS i Windows u programskom jeziku C# preko Visual Studio-a

ili Xamarin Studio-a. Platforma je zasnovana na principu korišdenja postojedeg,

značajnog C# koda i raspodela po navedenim mobilnim platformama. Danas se

upotrebljava kao nastavak na Visual Studio za razvoj Android i iOS aplikacija. [34][35]

Takođe, postoji i prodavnica komponenti za integrisanje bek-end sistema, raznih

biblioteka tredih lica, klaud usluga i kontrola grafičkog korisničkog interfejsa direktno u

mobilnu aplikaciju; kao i baza znanja slična Majkrosoftovom MSDN-u. [37]

Xamarin.Forms je kros-platform alat za kreiranje korisničkog interfejsa koji omogudava

developerima da sa lakodom naprave izvorni raspored korisničkog interfejsa koji de biti

deljen između Android-a, iOS, i Windows Phone-a. To bi značilo da aplikacije mogu

deliti veliku količinu koda njihovog korisničkog interfejsa, a da i dalje zadrže izvorni

izgled i osedaj ciljne platforme. [37]

Page 41: DATA EXCHANGE BETWEEN MOBILE AND WEB APPLICATION Mirko... · Srpski Jezik izvoda/apstrakta: JI Srpski /Engleski Zemlja publikovanja: ZP ... naročito kod mlađe populacije. Tako jeautor

40

Za izradu Forms aplikacije se ne treba odlučiti u svakom slučaju. Sam proizvođač

savetuje da je Forms najbolji za aplikacije kao što su aplikacije za pristup podacima,

aplikacije koje ne zahtevaju velike platformske funkcionalnosti, prototipove i aplikacije

gde je deljenje koda mnogo značajnije nego prilagođeni interfejs. Sa druge strane,

trebalo bi se odlučiti za Xamarin.iOS i Xamarin.Android umesto Xamarin.Forms ako se

izrađuju aplikacije koje zahtevaju specijalizovanu interakciju, aplikacije sa dizajnom na

višem nivou, aplikacije koje koriste dosta API-a specifičnih za tu platformu i aplikacija

kod kojih je prilagođeni interfejs mnogo važniji nego deljenje koda (pr. muzički plejer,

igrica itd.).[37]

Slika 21 - Grafički prikaz strukture Xamarin.Formscross-platform mobilne

aplikacije[38]

6.4.1.2. PowerDesigner

„PowerDesigner omogudava jedinstven set alata za modelovanje poslovnih procesa

koji objedinjuju savremene tehnike notacije BPM, modelovanja podataka i UML

standarda sa jedinstvenim funkcijama koje su na raspolaganju za analizu, dizajn,

pravljenje i održavanje aplikacija, kao i za podršku savremenim softverskim razvojnim

alatima. PowerDesigner i njegova rešenja pružaju da se direktno povežu dizajn i

održavanje osnovnih slojeva bilo koje aplikacije u skladu sa zahtevima određenog

projekta, poslovnim procesima, objektno-orijentisanim kodom, XML šemama i

skladištima podataka. Uz pomod mnoštva grupa modela na svim nivoima apstrakcije,

PowerDesigner pomaže da se u što kradem roku i sa što manje resursa, kroz iterativni

postupak, dođe do željenog rešenja, kroz sve faze projekta, od konceptualnog do

samog izvršavanje neke aplikacije.“Svi modeli u ovom radu kreirani su uz pomod

PowerDesigner softvera. [36]

Page 42: DATA EXCHANGE BETWEEN MOBILE AND WEB APPLICATION Mirko... · Srpski Jezik izvoda/apstrakta: JI Srpski /Engleski Zemlja publikovanja: ZP ... naročito kod mlađe populacije. Tako jeautor

41

Slika 22 – PowerDesigner sa otvorenim projektom za kreiranje klasnog dijagrama za

potrebe ovog rada

6.4.2. SQL skript baze podataka

Slededi listing koda prikazuje SQL skript baze podataka koju koristi realizovani

informacioni sistem za restoran.

USE [master] GO /****** Object: Database [RestWebAppDB] Script Date: 16.9.2019. 06:20:38 ******/ CREATEDATABASE [RestWebAppDB] GO CREATETABLE [dbo].[__MigrationHistory]( [MigrationId] [nvarchar](150)NOTNULL, [ContextKey] [nvarchar](300)NOTNULL, [Model] [varbinary](max)NOTNULL, [ProductVersion] [nvarchar](32)NOTNULL, CONSTRAINT [PK_dbo.__MigrationHistory] PRIMARYKEYCLUSTERED ( [MigrationId] ASC, [ContextKey] ASC )WITH (PAD_INDEX=OFF,STATISTICS_NORECOMPUTE=OFF,IGNORE_DUP_KEY=OFF,ALLOW_ROW_LOCKS=

Page 43: DATA EXCHANGE BETWEEN MOBILE AND WEB APPLICATION Mirko... · Srpski Jezik izvoda/apstrakta: JI Srpski /Engleski Zemlja publikovanja: ZP ... naročito kod mlađe populacije. Tako jeautor

42

ON,ALLOW_PAGE_LOCKS=ON)ON [PRIMARY] )ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] GO /****** Object: Table [dbo].[Artikals] Script Date: 16.9.2019. 06:20:39 ******/ SETANSI_NULLSON GO SETQUOTED_IDENTIFIERON GO CREATETABLE [dbo].[Artikals]( [ArtikalId] [smallint] IDENTITY(1,1)NOTNULL, [Naziv] [nvarchar](max)NOTNULL, CONSTRAINT [PK_dbo.Artikals] PRIMARYKEYCLUSTERED ( [ArtikalId] ASC )WITH (PAD_INDEX=OFF,STATISTICS_NORECOMPUTE=OFF,IGNORE_DUP_KEY=OFF,ALLOW_ROW_LOCKS=ON,ALLOW_PAGE_LOCKS=ON)ON [PRIMARY] )ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] GO /****** Object: Table [dbo].[Cenovniks] Script Date: 16.9.2019. 06:20:39 ******/ SETANSI_NULLSON GO SETQUOTED_IDENTIFIERON GO CREATETABLE [dbo].[Cenovniks]( [CenovnikId] [int] IDENTITY(1,1)NOTNULL, [CenaArtikla] [decimal](18, 2)NOTNULL, [Aktivan] [bit] NOTNULL, [ArtikalId] [smallint] NOTNULL, CONSTRAINT [PK_dbo.Cenovniks] PRIMARYKEYCLUSTERED ( [CenovnikId] ASC )WITH (PAD_INDEX=OFF,STATISTICS_NORECOMPUTE=OFF,IGNORE_DUP_KEY=OFF,ALLOW_ROW_LOCKS=ON,ALLOW_PAGE_LOCKS=ON)ON [PRIMARY] )ON [PRIMARY] GO /****** Object: Table [dbo].[Narudzbinas] Script Date: 16.9.2019. 06:20:39 ******/ SETANSI_NULLSON GO SETQUOTED_IDENTIFIERON GO CREATETABLE [dbo].[Narudzbinas]( [NarudzbinaId] [smallint] IDENTITY(1,1)NOTNULL, [Datum] [datetime] NOTNULL, [Ukupno] [decimal](18, 2)NOTNULL, [Sto] [tinyint] NOTNULL, CONSTRAINT [PK_dbo.Narudzbinas] PRIMARYKEYCLUSTERED ( [NarudzbinaId] ASC )WITH (PAD_INDEX=OFF,STATISTICS_NORECOMPUTE=OFF,IGNORE_DUP_KEY=OFF,ALLOW_ROW_LOCKS=ON,ALLOW_PAGE_LOCKS=ON)ON [PRIMARY] )ON [PRIMARY] GO /****** Object: Table [dbo].[StavkaNarudzbines] Script Date: 16.9.2019.

Page 44: DATA EXCHANGE BETWEEN MOBILE AND WEB APPLICATION Mirko... · Srpski Jezik izvoda/apstrakta: JI Srpski /Engleski Zemlja publikovanja: ZP ... naročito kod mlađe populacije. Tako jeautor

43

06:20:39 ******/ SETANSI_NULLSON GO SETQUOTED_IDENTIFIERON GO CREATETABLE [dbo].[StavkaNarudzbines]( [StavkaNarudzbineId] [int] IDENTITY(1,1)NOTNULL, [NarudzbinaId] [smallint] NOTNULL, [Kolicina] [smallint] NOTNULL, [Ukupno] [decimal](18, 2)NOTNULL, [ArtikalId] [smallint] NOTNULL, CONSTRAINT [PK_dbo.StavkaNarudzbines] PRIMARYKEYCLUSTERED ( [StavkaNarudzbineId] ASC )WITH (PAD_INDEX=OFF,STATISTICS_NORECOMPUTE=OFF,IGNORE_DUP_KEY=OFF,ALLOW_ROW_LOCKS=ON,ALLOW_PAGE_LOCKS=ON)ON [PRIMARY] )ON [PRIMARY] GO /****** Object: Index [IX_ArtikalId] Script Date: 16.9.2019. 06:20:39 ******/ CREATENONCLUSTEREDINDEX [IX_ArtikalId] ON [dbo].[Cenovniks] ( [ArtikalId] ASC )WITH (PAD_INDEX=OFF,STATISTICS_NORECOMPUTE=OFF,SORT_IN_TEMPDB=OFF,DROP_EXISTING=OFF,ONLINE=OFF,ALLOW_ROW_LOCKS=ON,ALLOW_PAGE_LOCKS=ON)ON [PRIMARY] GO /****** Object: Index [IX_ArtikalId] Script Date: 16.9.2019. 06:20:39 ******/ CREATENONCLUSTEREDINDEX [IX_ArtikalId] ON [dbo].[StavkaNarudzbines] ( [ArtikalId] ASC )WITH (PAD_INDEX=OFF,STATISTICS_NORECOMPUTE=OFF,SORT_IN_TEMPDB=OFF,DROP_EXISTING=OFF,ONLINE=OFF,ALLOW_ROW_LOCKS=ON,ALLOW_PAGE_LOCKS=ON)ON [PRIMARY] GO /****** Object: Index [IX_NarudzbinaId] Script Date: 16.9.2019. 06:20:39 ******/ CREATENONCLUSTEREDINDEX [IX_NarudzbinaId] ON [dbo].[StavkaNarudzbines] ( [NarudzbinaId] ASC )WITH (PAD_INDEX=OFF,STATISTICS_NORECOMPUTE=OFF,SORT_IN_TEMPDB=OFF,DROP_EXISTING=OFF,ONLINE=OFF,ALLOW_ROW_LOCKS=ON,ALLOW_PAGE_LOCKS=ON)ON [PRIMARY] GO ALTERTABLE [dbo].[Narudzbinas] ADDDEFAULT ((0))FOR [Sto] GO ALTERTABLE [dbo].[Cenovniks] WITHCHECKADDCONSTRAINT [FK_dbo.Cenovniks_dbo.Artikals_ArtikalId] FOREIGNKEY([ArtikalId]) REFERENCES [dbo].[Artikals]([ArtikalId]) ONDELETECASCADE GO ALTERTABLE [dbo].[Cenovniks] CHECKCONSTRAINT [FK_dbo.Cenovniks_dbo.Artikals_ArtikalId] GO ALTERTABLE [dbo].[StavkaNarudzbines] WITHCHECKADDCONSTRAINT [FK_dbo.StavkaNarudzbines_dbo.Artikals_ArtikalId] FOREIGNKEY([ArtikalId]) REFERENCES [dbo].[Artikals]([ArtikalId])

Page 45: DATA EXCHANGE BETWEEN MOBILE AND WEB APPLICATION Mirko... · Srpski Jezik izvoda/apstrakta: JI Srpski /Engleski Zemlja publikovanja: ZP ... naročito kod mlađe populacije. Tako jeautor

44

ONDELETECASCADE GO ALTERTABLE [dbo].[StavkaNarudzbines] CHECKCONSTRAINT [FK_dbo.StavkaNarudzbines_dbo.Artikals_ArtikalId] GO ALTERTABLE [dbo].[StavkaNarudzbines] WITHCHECKADDCONSTRAINT [FK_dbo.StavkaNarudzbines_dbo.Narudzbinas_NarudzbinaId] FOREIGNKEY([NarudzbinaId]) REFERENCES [dbo].[Narudzbinas]([NarudzbinaId]) ONDELETECASCADE GO ALTERTABLE [dbo].[StavkaNarudzbines] CHECKCONSTRAINT [FK_dbo.StavkaNarudzbines_dbo.Narudzbinas_NarudzbinaId] GO USE [master] GO ALTERDATABASE [RestWebAppDB] SETREAD_WRITE GO

Listing 6 – SQL skript baze podataka

6.4.3. JSON fajl za komunikaciju

Slededi listing JSON koda prikazuje rezultat izvršenog GET upita ka adresi aplikacije:

«~/api/Artikal».

[

{

"ArtikalId": 12,

"Naziv": "Kiselavoda 0,33",

"Cena": 40.00

},

{

"ArtikalId": 13,

"Naziv": "SokJabuka",

"Cena": 100.00

},

{

"ArtikalId": 14,

"Naziv": "Pizza Capricciosa",

"Cena": 500.00

},

...

]

Listing 7 – Deo liste artikala u JSON formatu dobijenih preko GET zahteva

Slededi listing JSON koda prikazuje telo POST zahteva koji je potrebno izvršiti kako bi

narudžbina bila unesena u bazu podataka putem adrese:

«~/api/Narudzbina?sto=[broj stola]».

{ "StavkaNarudzbines": [

Page 46: DATA EXCHANGE BETWEEN MOBILE AND WEB APPLICATION Mirko... · Srpski Jezik izvoda/apstrakta: JI Srpski /Engleski Zemlja publikovanja: ZP ... naročito kod mlađe populacije. Tako jeautor

45

{ "ArtikalId": 1, "Kolicina": 1, "Ukupno": 1 }, { "ArtikalId": 2, "Kolicina": 1, "Ukupno": 1 } ] }

Listing 8 – Telo POST zahteva za kreiranje narudžbe

6.4.4. Tabela sa slojevima i podslojevima strukture aplikacije

Slededa tabela prikazuje strukturu realizovanog informacionog sistema restorana po

modulima, odnosno strukturu veb aplikacije sa veb servisom i strukturu mobilne

aplikacije.

MODUL GLAVNI SLOJ DIZAJN PATERN PODSLOJ TEHNOLOŠKA IMPLEMENTACIJA

VEB APLIKACIJA

PREZENTACIONI SLOJ

VIEW Korisnički interfejs

CSHTML, CSS, JS, jQuery

CONTROLLER Klase prezentacione logike

DLL biblioteka klasa

SERVISNI SLOJ Veb servis Projekat tipa veb servis, Klasa System.Web.Http. ApiController

Klase za mapiranje slojeva

DLL biblioteka klasa

SLOJ POSLOVNE LOGIKE

Radni tokovi - Engine za upravljanje radnim tokovima - DLL biblioteka klasa

MODEL Poslovni objekti

DLL biblioteka klasa sa klasama koje predstavljaju poslovne objekte (ArtikalViewModel, RestWebAppContext) -Master-detail odnosi podataka (Narudzbina -> StavkaNarudzbine)

Poslovna pravila

- Engine za izvršavanje poslovnih

Page 47: DATA EXCHANGE BETWEEN MOBILE AND WEB APPLICATION Mirko... · Srpski Jezik izvoda/apstrakta: JI Srpski /Engleski Zemlja publikovanja: ZP ... naročito kod mlađe populacije. Tako jeautor

46

pravila, eksterna poslovna pravila zapisana formalnim jezikom - DLL biblioteka klasa sa algoritmima provere i automatske primene poslovnog pravila

SLOJ ZA RAD SA PODACIMA

Rad sa relacionom bazom podataka

DLL biblioteka klasa - Entityframework

MOBILNA APLIKACIJA

PREZENTACIONI SLOJ

LAYOUT Korisnički interfejs

AXML

VIEW DLL biblioteka sa ugrađenim i korisničkim klasama

CONTROLLER Klase prezentacione logike

DLL biblioteka klasa

SERVISNI SLOJ Klase za mapiranje slojeva

DLL biblioteka klasa

SLOJ POSLOVNE LOGIKE

Radni tokovi - Engine za upravljanje radnim tokovima - DLL biblioteka klasa

MODEL Poslovni objekti

DLL biblioteka klasa sa klasama koje predstavljaju poslovne objekte

Poslovna pravila

- Engine za izvršavanje poslovnih pravila, eksterna poslovna pravila zapisana formalnim jezikom - DLL biblioteka klasa sa algoritmima provere i automatske primene poslovnog pravila

Tabela 1–Slojevi i podslojevi strukture informacionog sistema55[33],

Page 48: DATA EXCHANGE BETWEEN MOBILE AND WEB APPLICATION Mirko... · Srpski Jezik izvoda/apstrakta: JI Srpski /Engleski Zemlja publikovanja: ZP ... naročito kod mlađe populacije. Tako jeautor

47

6.4.5. Ključni delovi programskog koda sa objašnjenjima

U ovom odeljku nalaze se delovi koda sa objašnjenjima koji vrše logičke funkcije i upite ka bazi

podataka koji su ključni za rad aplikacije.

6.4.5.1. Korisnički interfejs veb aplikacije

Kod koji je prikazan u Listingu – Listing 9 prikazuje deo Create.cshtml datoteke koja

služi za prikaz korisničkog interfejsa za unos artikala u cenovnik. Da unos bio mogud,

neophodno je imati artikle u bazi podataka i postojede artikle koji ved u cenovniku. U

slučaju da nema artikala koji nisu dodati, prikazade se poruka u sklopu if petlje koja je u

listingu podvučena.

@using (Html.BeginForm()) { @Html.AntiForgeryToken() <div class="form-horizontal"> <hr /> @Html.ValidationSummary(true, "", new { @class = "text-danger" }) <div class="form-group"> @Html.LabelFor(model => model.Artikal.Naziv, htmlAttributes: new { @class = "control-label col-md-2" }) <div class="col-md-10"> @if (Model.Artikals == null){Model.Artikals = new List<Artikal>();} @Html.DropDownListFor(model => model.ArtikalId, new SelectList(Model.Artikals, "ArtikalId", "Naziv"), "Izaberite...", new { @class = "form-control" }) @Html.ValidationMessageFor(model => model.ArtikalId, "", new { @class = "text-danger" }) @if (!Model.Artikals.Any()) { <p class="text-danger">Svi artikli su dodati u cenovnik. @Html.ActionLink("Dodajte nove artikle", "Index", "Artikals")</p> } </div> </div> ...

</div>

Listing 9– Deo koda za prikaz stranice za dodavanje artikala u cenovnik

Slededi listing 10 je u skladu sa prethodnim i prikazuje serversku stranu procesa dodavanja

artikla u cenovnik. Prva Create metoda se poziva prilikom učitavanja stranice, a druga prilikom

slanja unetih podataka putem dugmeta „Sačuvaj“.

public ActionResult Create() { var listaArtikalaNaCenovniku = db.Cenovniks.Select(x => x.Artikal);

Page 49: DATA EXCHANGE BETWEEN MOBILE AND WEB APPLICATION Mirko... · Srpski Jezik izvoda/apstrakta: JI Srpski /Engleski Zemlja publikovanja: ZP ... naročito kod mlađe populacije. Tako jeautor

48

var listaArtikala = new Cenovnik { Artikals = db.Artikals.Except(listaArtikalaNaCenovniku).ToList() }; return View(listaArtikala); } [HttpPost] [ValidateAntiForgeryToken] public ActionResult Create([Bind(Include = "CenovnikId,ArtikalId,CenaArtikla,Aktivan,Artikals")] Cenovnik cenovnik) { if (ModelState.IsValid) { db.Cenovniks.Add(cenovnik); db.SaveChanges(); return RedirectToAction("Index"); } if (cenovnik.Artikals == null) { var listaArtikalaNaCenovniku = db.Cenovniks.Select(x => x.Artikal); cenovnik.Artikals = db.Artikals.Except(listaArtikalaNaCenovniku).ToList(); } return View(cenovnik); }

Listing 10 – Back-end logika za dodavanje artikla na cenovnik

6.4.5.2. REST Veb API

Kao što je pomenuto u istraživanjima koja su u sklopu ovog rada, da bi se aplikacija

(klijent) povezala na veb aplikaciju preko veb servisa putem jednostavnog GET,

neophodno je napraviti RESTful veb servis. U ASP.NET za to postoji ugrađena klasa

ApiController koja se nasleđuje, čime se postiže kreiranje API kontrolera.

public class ArtikalController : ApiController { private readonly RestWebAppContext _db = new RestWebAppContext(); public IQueryable<ArtikalViewModel> Get() { var artikli = _db.Cenovniks.Include(x => x.Artikal).Where(x => x.Aktivan).Select(x => new ArtikalViewModel { ArtikalId = x.ArtikalId, Naziv = x.Artikal.Naziv, Cena = x.CenaArtikla }); return artikli;

Page 50: DATA EXCHANGE BETWEEN MOBILE AND WEB APPLICATION Mirko... · Srpski Jezik izvoda/apstrakta: JI Srpski /Engleski Zemlja publikovanja: ZP ... naročito kod mlađe populacije. Tako jeautor

49

} ... }

Listing 11- Kreiranje REST servisa i metode GET

Sličan postupak prati kreiranje POST metode. U listingu 12 je prikazano kreiranje POST

zahteva na servisu za prijem narudžbine sa klijenta. Iz tela POST zahteva prima se

objekat tipa Narudzbina i njegove vrednosti se upisuju u bazu.

// POST: api/Narudzbina public void Post(byte sto, [FromBody]Narudzbina narudzbina) { _db.Narudzbinas.Add(new Narudzbina { Datum = DateTime.Now, Sto = sto, StavkaNarudzbines = narudzbina.StavkaNarudzbines, Ukupno = narudzbina.StavkaNarudzbines.Select(x => x.Ukupno).Sum() }); _db.SaveChanges(); }

Listing 12 – Kreiranje REST servisa i metode POST

6.4.5.3. Korisnički interfejs mobilne aplikacije

Slededi listing koda prikazuje deo koda za kreiranje korisničkog interfejsa Android

aplikacije. U listingu je prikazano kreiranje:

RelativeLayout – rasporeda sa relativnim rasporedom elemenata koji su u njega

uključeni,

Button – dugme za slanje liste stavki za unos narudžbine,

EditText – polje za unos broja stola za koji je narudžbina namenjena,

ListView – lista artikala za slanje narudžbine,

SearchView – polje za pretragu artikala.

<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" app:layout_behavior="@string/appbar_scrolling_view_behavior"

Page 51: DATA EXCHANGE BETWEEN MOBILE AND WEB APPLICATION Mirko... · Srpski Jezik izvoda/apstrakta: JI Srpski /Engleski Zemlja publikovanja: ZP ... naročito kod mlađe populacije. Tako jeautor

50

tools:showIn="@layout/activity_main" android:id="@+id/relativeLayout1"> <Button android:text="Pošalji" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:layout_alignParentTop="true" android:id="@+id/btnPosalji" /> <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentTop="true" android:layout_alignParentLeft="true" android:hint="Broj stola" android:gravity="center" android:id="@+id/etxtBrojStola" android:layout_toLeftOf="@id/btnPosalji" android:inputType="number" /> <ListView android:minWidth="25px" android:minHeight="25px" android:layout_width="wrap_content" android:layout_height="190dp" android:layout_below="@id/etxtBrojStola" android:id="@+id/listView1" /> <SearchView android:minWidth="25px" android:minHeight="25px" android:layout_width="wrap_content" android:layout_height="45dp" android:layout_alignParentRight="true" android:layout_alignParentLeft="true" android:layout_below="@id/listView1" android:id="@+id/searchView1" android:background="#ffbbdefb" android:queryHint="Pretraga..."/> ... </RelativeLayout>

Listing 13 – Deo (A)XML koda korisničkog interfejsa Android aplikacije

6.4.5.4. Pristup REST servisu iz Android aplikacije

U kodu koji je prikazan u listingu 14 nalaze se dve metode koje se pozivaju za

ostvarenje komunikacije sa veb servisom putem REST API-a. Za olakšani pristup,

preuzeta je, inače veoma popularna za komunikaciju sa REST servisima,

RestSharpbiblioteka i njene klase su RestClient, RestRequest i druge vezane za zahtev.

Klasi RestClient se dodeljuje URL na kojem je smešten API. Takođe, u listingu se vidi još

jedna preuzeta biblioteka za olakšani rad sa JSON podacima. U navedenom slučaju,

njena klasa JsonConvert služi za razlaganje primljenog JSON objekta u sklopu GET

zahteva i za spajanje unutar POST zahteva pre slanja podataka.

Page 52: DATA EXCHANGE BETWEEN MOBILE AND WEB APPLICATION Mirko... · Srpski Jezik izvoda/apstrakta: JI Srpski /Engleski Zemlja publikovanja: ZP ... naročito kod mlađe populacije. Tako jeautor

51

using RestSharp; using Newtonsoft.Json; ... //Artikli GET private void GetArtikal() { var client = new RestClient("http://10.51.37.5:45455/api/Artikal"); var request = new RestRequest(Method.GET); var response = client.Execute(request); var res = response.Content; _listaArtikala = JsonConvert.DeserializeObject<List<Artikal>>(res); } //POSTNarudzba private HttpStatusCode PostNarudzbina(string brojStola, string listaArtikala) { var client = new RestClient("http://10.51.37.5:45455/api/Narudzbina?sto=" + brojStola); var request = new RestRequest(Method.POST); request.AddJsonBody(listaArtikala); var response = client.Execute(request); return response.StatusCode; }

Listing 14 – Listing koda za kreiranje GET i POST zahteva u Android aplikaciji

6.5. Problemi realizacije

Tokom razvoja praktičnog dela ovog rada, odnosno informacionog sistema za potrebe

restoranskog poslovanja nastalo je nekoliko izazovnih problema koje je trebalo na

određeni način rešiti uz postojede iskustvo o tehnologijama i nova saznanja nastalih

prilikom istraživanja mogudeg rešenja za taj problem.

Kako je glavni problem – ujedno i glavni deo logike mobilne aplikacije – onaj koji vrši

prilagođavanje podataka za korisnički interfejs i listu za, najpre, konverziju u JSON

objekat i zatim slanje podataka na veb API putem POST zahteva.

listaIzabranihArtikala.Add( artikal.ArtikalId + " | " + izabraniArtikalNaziv + "\tKoličina: " + _kolicina.Text + "\tCena: " + (artikal.Cena * Convert.ToDecimal(_kolicina.Text)).ToString("F"));

Listing 15 – Dodavanje izabranih artikla u listu koja će biti prilagođena za slanje

Page 53: DATA EXCHANGE BETWEEN MOBILE AND WEB APPLICATION Mirko... · Srpski Jezik izvoda/apstrakta: JI Srpski /Engleski Zemlja publikovanja: ZP ... naročito kod mlađe populacije. Tako jeautor

52

U slededem listingu nalazi se metoda KreiranjeListeZaSlanje koja se poziva klikom na

dugme _btnPosalji za slanje narudžbina na veb servis. Ona formira novu listu

spremnaLista koja se sastoji od stavki za narudžbinu primljenih sa korisničkog

interfejsa. Podaci su morali da budu ekstraktovani iz stavki nove narudžbe koje se

prikazuju u korisničkom interfejsu u tekstualnom obliku (slika 16, desno). Nakon

formiranja liste spremnaLista, ista se dodaje u novu instancu objekat narudzba i ta

instanca se prosleđuje na konverziju u JSON objekat (metodom

JsonConvert.SerializeObject()), koji biva poslat na veb servis.

_btnPosalji.Click += delegate { var statusCode = PostNarudzbina(_etxtBrojStola.Text, KreiranjeListeZaSlanje(listaIzabranihArtikala)); ... } ... private string KreiranjeListeZaSlanje(ArrayList lista) { var spremnaLista = new List<StavkaNarudzbine>(); foreach (var stavka in lista) { var deloviStavke = stavka.ToString().Split('|',':'); var artikalId = Convert.ToInt16(deloviStavke[0].Trim()); var kolicina = Convert.ToInt16(deloviStavke[2] .Split('C').GetValue(0).ToString().Trim()); var ukupno = Convert.ToDecimal(deloviStavke[3].Trim()); spremnaLista.Add(new StavkaNarudzbine { ArtikalId = artikalId, Kolicina = kolicina, Ukupno = ukupno }); } var narudzba = new Narudzbina { StavkaNarudzbines = spremnaLista }; return JsonConvert.SerializeObject(narudzba); } ... //POST private HttpStatusCode PostNarudzbina(string brojStola, string listaArtikala) { var client = new RestClient("http://10.51.37.5:45455/api/Narudzbina?sto=" + brojStola); var request = new RestRequest(Method.POST);

Page 54: DATA EXCHANGE BETWEEN MOBILE AND WEB APPLICATION Mirko... · Srpski Jezik izvoda/apstrakta: JI Srpski /Engleski Zemlja publikovanja: ZP ... naročito kod mlađe populacije. Tako jeautor

53

request.AddJsonBody(listaArtikala); var response = client.Execute(request); return response.StatusCode; }

Listing 16–Prikaz formiranja liste i JSON objekta za slanje narudžbine za određeni sto

putem POST zahteva

Ovakvim planiranjem baze podataka i postupkom slanja podataka u prilagođenom

JSON objektu postiže se Master-detail dizajn interfejsa. Naime, da bi pomenut proces

bio jasniji, drugim rečima: preko POST zahteva se šalje objekat NARUDZBINA koji ne

sadrži ništa osim određeni broj pod-objekta STAVKANARUDZBINE.

{ objekat NARUDZBINA "StavkaNarudzbines": [ { pod-objekat STAVKANARUDZBINE "ArtikalId": 1, "Kolicina": 1, "Ukupno": 1 }, { pod-objekat STAVKANARUDZBINE "ArtikalId": 2, "Kolicina": 1, "Ukupno": 1 } ] } kraj objekta NARUDZBINA

Listing 17 – JSON objekat za slanje narudžbine putem POST zahteva

Kako Master-detail izgleda u korisničkom interfejsu, prikazano je na slici 18 i 19.

Page 55: DATA EXCHANGE BETWEEN MOBILE AND WEB APPLICATION Mirko... · Srpski Jezik izvoda/apstrakta: JI Srpski /Engleski Zemlja publikovanja: ZP ... naročito kod mlađe populacije. Tako jeautor

54

7. ZAKLJUČAK

U ovom radu, predmet istraživanja bile su tehnike programiranja kojim se postiže

razmena podataka između mobilne i veb aplikacije, datoteke koje se koriste za

razmenu podataka, softverski servisi za razmenu podataka. Cilj istraživanja bio je

izučavanje problematike razmene podataka između mobilne i veb aplikacije sa

teorijskog i naučnostručnog aspekta. Istražene su i prikazane osnovne tehnike

programiranja i popularni načini za postizanje komunikacije i razmene podataka.

Osnovna hipoteza je potvrđena kroz rezultate naučnostručnog istraživanja i

realizovanog primera. U oba pomenuta slučaja korišdenje veb servis zasnovan na REST

veb API-u za povezivanje sa udaljenim resursima, dok je prenos podataka vršen uz

upotrebudatoteka, odnosno, u realizovanom slučaju, uz upotrebuJSON objekata iz

radne memorije.

Istraživanje koje bi moglo biti nastavak ili nadovezivanje na ovaj može se usmeriti ka

drugim popularnim platformama i tehnologijama za uspostavljanje mogudnosti

razmene podataka između mobilnih i veb aplikacija različitim od ASP.NET tehnologije

sa veb strane i Android platforme sa mobilne strane. Još jedan mogud pravac za

istraživanje bi bio upotreba SOAP i praktični uporedni prikaz rezultata sa različitih

aspekata, kao na primer sa aspekta bezbednosti ili performansi.

Page 56: DATA EXCHANGE BETWEEN MOBILE AND WEB APPLICATION Mirko... · Srpski Jezik izvoda/apstrakta: JI Srpski /Engleski Zemlja publikovanja: ZP ... naročito kod mlađe populacije. Tako jeautor

55

8. LITERATURA

[1] Fagin, Ronald, et al. „Data exchange: semantics and query answering.“Theoretical Computer

Science 336.1 (2005): 89-124.

https://www.sciencedirect.com/science/article/pii/S030439750400725X

[2] Billingsley, F.C. (1988). „General Data Interchange Language“. ISPRS Archives. 27(B3): 80–91.

pristupljeno 27.7.2019. „The transformation routines will constitute a language and syntax which

must be discipline and machine independent.“

https://www.isprs.org/proceedings/XXVII/congress/part3/default.aspx

[3] Nurseitov, Nurzhan, et al. „Comparison of JSON and XML data interchange formats: a case

study.“ Caine 9 (2009): 157-162.

https://pdfs.semanticscholar.org/8432/1e662b24363e032d680901627aa1bfd6088f.pdf

[4] T. Anderson, (2004.) http://www.itwriting.com/xmlintro.php, pristupljeno 27.7.2019.

[5] Lewis, Joe, and MeitarMoscovitz. „AdvancED CSS“. Apress, (2009), pristupljeno 9.8.2019.

https://books.google.ba/books?id=HTtFEKPBtcsC&pg=PA5&lpg=PA5&redir_esc=y#v=onepag

e&q&f=false

[6] Zvaničnivebsajt W3C, https://www.w3.org/html/, pristupljeno 11.8.2019.

[7] Opis SGML jezika, https://www.w3.org/TR/WD-html40-970708/intro/sgmltut.html, pristupljeno

9.8.2019.

[8] HTML5 zvaničnapreporuka, https://www.w3.org/2014/10/html5-rec.html.en, pristupljeno

11.8.2019.

[9] Dokumentacija HTML5, https://www.w3.org/TR/2008/WD-html5-20080122/, pristupljeno

11.8.2019.

[10] HTML5.2 zvaničnapreporuka, https://www.w3.org/TR/2017/REC-html52-20171214/,

pristupljeno 11.8.2019.

[11] RDF model, https://www.w3.org/2001/sw/wiki/RDF, pristupljeno 19.8.2019.

[12] YAML, https://yaml.org/spec/history/2001-12-10.html, pristupljeno 19.8.2019.

[13] O REBOL jeziku, http://www.rebol.com/what-rebol.html, pristupljeno 19.8.2019.

[14] JSON naspram REBOL-a, http://www.rebol.com/article/0522.html, pristupljeno 19.8.2019.

[15] ShklarL.,Rosen R.,„Web Application Architecture“,John Wiley & Sons Ltd,(2003):4-6,

https://pdfs.semanticscholar.org/f522/e77cc67eb7f552e4882ec11ea0aaf8c1e3f4.pdf

[16] MSDN Magazin - Pojam SPA, https://msdn.microsoft.com/en-us/magazine/dn463786.aspx,

pristupljeno 25.8.2019.

[17] O statičkomidinamičkomsadrţajuveba,

https://racunarstvoiinformatika.wordpress.com/2012/04/01/staticki-i-dinamicki-vebnajcesce-

veb-tehnologije-portali/, pristupljeno 25.8.2019.

[18] MDN – O vebserveruhttps://developer.mozilla.org/en-

US/docs/Learn/Common_questions/What_is_a_web_server,pristupljeno25.8.2019.

[19] Slika: Šemadinamičkevebaplikacije, https://alb.host.cs.st-

andrews.ac.uk/webdatabases/dsn.htm,pristupljeno 27.8.2019.

Page 57: DATA EXCHANGE BETWEEN MOBILE AND WEB APPLICATION Mirko... · Srpski Jezik izvoda/apstrakta: JI Srpski /Engleski Zemlja publikovanja: ZP ... naročito kod mlađe populacije. Tako jeautor

56

[20] Vaţnostvebaplikacija u biznisu, https://www.linkedin.com/pulse/importance-web-applications-

businesses-sayed-jasi, pristupljeno 27.8.2019.

[21] O vebservisima, https://docs.oracle.com/javaee/6/tutorial/doc/gijvh.html, pristupljeno 28.8.2019.

[22] Vrstevebservisa, https://docs.oracle.com/javaee/6/tutorial/doc/giqsx.html,pristupljeno31.8.2019.

[23] PojamStatelessnesskod REST API-a, https://restfulapi.net/statelessness/, pristupljeno31.8.2019.

[24] RESTful vebservisi, https://docs.oracle.com/javaee/6/tutorial/doc/gijqy.html,

pristupljeno1.9.2019.

[25] Pojam AJAX-a, https://developer.mozilla.org/en-US/docs/Web/Guide/AJAX,

pristupljeno1.9.2019.

[26] ASP.NET WEB APIs, https://dotnet.microsoft.com/apps/aspnet/apis, pristupljeno 1.9.2019.

[27] What is mobile application development, https://aws.amazon.com/mobile/mobile-application-

development/, pristupljeno 1.9.2019.

[28] What Is a Mobile Application, https://www.lifewire.com/what-is-a-mobile-application-2373354,

pristupljeno2.9.2019.

[29] Android - Connect to the network, https://developer.android.com/training/basics/network-

ops/connecting, pristupljeno4.9.2019.

[30] Android – Volley, https://developer.android.com/training/volley, pristupljeno4.9.2019.

[31] Deprecating SSL 3.0, https://tools.ietf.org/html/rfc7568, pristupljeno5.9.2019.

[32] Andry, F., Wan, L., & Nicholson, D. (2011).„A mobile application accessing patientshealth

records through a RESTAPI“, HEALTHINF 2011 INTERNATIONAL CONFERENCE ON

HEALTH INFORMATICS (pp. 27-32)

[33] Opšta struktura višeslojne aplikacije,doc. dr Ljubica Kazi, Tehnički fakultet „M. Pupin“, (2016.)

http://www.tfzr.rs/Content/files/0/OPSTA%20STRUKTURA%20VISESLOJNE%20OO%20AP

LIKACIJE.pdf

[34] O Programu Visual Studio 2017 i Xamarin-u, http://visualstudio.com/, pristupljeno 16.9.2019.

[35] O Xamarinu, https://www.zdnet.com/article/xamarin-delivers-tool-for-building-native-mac-os-x-

apps-with-c/, pristupljeno 16.9.2019.

[36] O PowerDesigner-u, http://poslis.fon.rs/download/vezbe/PD%20Skripta.pdf, pristupljeno

16.9.2019.

[37] O Xamarin-u, https://docs.microsoft.com/en-gb/xamarin/, pristupljeno 16.9.2019.

[38] SlikaXamarin.Formsslojeva, https://www.imobdevtech.com/Xamarin.Forms-Make-Cross-

Platform-Mobile-Development-Impactful, pristupljeno 16.9.2019.

[39] Android zvaničnadokumentacija, https://developer.android.com, 16.9.2019.

9. PRILOZI

9.1. Prilog 1

Sažet programerski pojmovnik za Android operativni sistem

Page 58: DATA EXCHANGE BETWEEN MOBILE AND WEB APPLICATION Mirko... · Srpski Jezik izvoda/apstrakta: JI Srpski /Engleski Zemlja publikovanja: ZP ... naročito kod mlađe populacije. Tako jeautor

57

Pojam Značenje pojma

Activity (bilo koje dugme, tekstualno polje je aktivnost)

Svaki zasebni prikaz (ekran)korisničkog interfejsa

View Svaki element korisničkog interfejsa (dugme, raspored, lista…)

AsyncTask Predstavlja zadatak koji se izvršava asinhrono, što znači u pozadini, bez blokiranja korisničkog interfejsa

Bundle Ugrađena biblioteka za prenos podataka između Activity-a

Fragment Deo Activity-a, uz pomodu kojeg se ostvaruje veda modularnost dizajna

Intent Ugrađena biblioteka za prenos kratkih poruka između Activity-a

Stream Niz elemenata koji podržava redne i paralelne zbirne operacije (pr. preuzimanje datoteke)

Task Definiše jedinicu niza korisničke interakcije kao jedan zadatak.Task takođe čuva podatke o svim aktivnostima koje je korisnik otvorio.

Tabela 2 – Pojmovnik za Android operativni sistem[39]

Page 59: DATA EXCHANGE BETWEEN MOBILE AND WEB APPLICATION Mirko... · Srpski Jezik izvoda/apstrakta: JI Srpski /Engleski Zemlja publikovanja: ZP ... naročito kod mlađe populacije. Tako jeautor

58

9.2. Prilog 2 – Listingkoda

using System.Collections.Generic; namespace RestMobApp { public class Narudzbina { public ICollection<StavkaNarudzbine> StavkaNarudzbines { get; set; } } } ... namespace RestMobApp { public class StavkaNarudzbine { public short ArtikalId { get; set; } public short Kolicina { get; set; } public decimal Ukupno { get; set; } } }

Listing 18 – Kod za klase putem kojih se u Android aplikaciji formira objekat za slanje

narudžbine putem POST zahteva