tehniČki fakultet „mihajlo pupin“ - tfzr.uns.ac.rs tehnologije distribuiranih... ·...

64
UNIVERZITET U NOVOM SADU TEHNIČKI FAKULTET „MIHAJLO PUPIN“ ZRENJANIN TEHNOLOGIJE DISTRIBUIRANIH INFORMACIONIH SISTEMA (PROSIRENA RADNA VERZIJA UDŽBENIKA) Autori: Ljubica Kazi Biljana Radulović Dalibor Dobrilović Dragica Radosav Branko Markoski Zrenjanin, 2017.

Upload: lenhan

Post on 29-Aug-2019

234 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: TEHNIČKI FAKULTET „MIHAJLO PUPIN“ - tfzr.uns.ac.rs Tehnologije distribuiranih... · Distribuirani sistemi se mogu podeliti na: • Distribuirani računarski sistemi (“Distributed

UNIVERZITET U NOVOM SADU

TEHNIČKI FAKULTET „MIHAJLO PUPIN“

ZRENJANIN

TEHNOLOGIJE DISTRIBUIRANIH

INFORMACIONIH SISTEMA

(PROSIRENA RADNA VERZIJA UDŽBENIKA)

Autori:

Ljubica Kazi

Biljana Radulović

Dalibor Dobrilović

Dragica Radosav

Branko Markoski

Zrenjanin, 2017.

Page 2: TEHNIČKI FAKULTET „MIHAJLO PUPIN“ - tfzr.uns.ac.rs Tehnologije distribuiranih... · Distribuirani sistemi se mogu podeliti na: • Distribuirani računarski sistemi (“Distributed

Recenzenti:

Prof. dr Ivana Berković

Doc. dr Vladimir Šinik

Doc. dr Željko Stojanov

Page 3: TEHNIČKI FAKULTET „MIHAJLO PUPIN“ - tfzr.uns.ac.rs Tehnologije distribuiranih... · Distribuirani sistemi se mogu podeliti na: • Distribuirani računarski sistemi (“Distributed

PREDGOVOR

Publikacija je nastala kao rezultat višegodišnjeg nastavnog, stručnog i

naučnog rada autora u oblasti razvoja informacionih sistema, distribuiranih

informacionih sistema, kao i geografskih informacionih sistema.

Predstavlja osnovni udžbenik za predmet DISTRIBUIRANI INFORMACIONI

SISTEMI na master studijama studijskog programa "Informacione tehnologije"

i pomoćni udzbenik za predmet GEOGRAFSKI INFORMACIONI SISTEMI na

master studijama studijskog programa "Informacione tehnologije u e-upravi i

poslovnim sistemima".

Obuhvata uvodne teme vezane za arhitekturu savremenih distribuiranih

sistema kao šire kategorije, kao i distribuiranih informacionih sistema, koja je

predstavljena kroz najvažnije slojeve: računarsko-komunikacione

infrastrukture, operativnih sistema, distribuiranih baza podataka i datoteka za

razmenu podataka, aplikativnog i prezentacionog sloja. Takođe, obuhvata i

primere primena distribuiranih sistema u oblasti IoT i GIS sistema.

Ovim udžbenikom nisu obuhvaćene napredne tehnike koje bi se odnosile na

složene algoritme procesiranja podataka u distribuiranom okruženju i teme

koje se odnose na bezbednost i performanse sistema. Takođe, nisu

obuhvaćene teme koje su prirodno povezane sa primenom distribuiranih

sistema, kao što je procesiranje velikih količina podataka i analiza podataka,

što predstavlja zasebnu problematiku. Konačno, nisu obuhvaćene ni sve

moguće primene distribuiranih sistema. Svakako u narednim izdanjima ovog

udžbenika sadržaj će biti proširen i naprednim temama, kao i drugim srodnim

i aplikativnim temama.

Posebnu zahvalnost dugujemo recenzentima na kritičkom pregledu materijala i

korisnim sugestijama.

U Zrenjaninu, maja 2017. godine

Autori

Page 4: TEHNIČKI FAKULTET „MIHAJLO PUPIN“ - tfzr.uns.ac.rs Tehnologije distribuiranih... · Distribuirani sistemi se mogu podeliti na: • Distribuirani računarski sistemi (“Distributed

SADRŽAJ

1. OSNOVNI POJMOVI ....................................................................................................................... 7

1.1. Definicija i karakteristike distribuiranih sistema ............................................................... 7

1.2. Distribuirano, konkurektno i paralelno računarstvo ................................................. 9

2. KATEGORIZACIJA DISTRIBUIRANIH SISTEMA ................................................................. 11

2.1. Distribuirani računarski sistemi ............................................................................................. 11

2.2. Distribuirani informacioni sistemi ......................................................................................... 14

2.3. Distribuirani integrisani („embedded“) sistemi ............................................................... 14

3.ARHITEKTURA DISTRIBUIRANOG INFORMACIONOG SISTEMA ......................................... 17

3.1. Arhitektura informacionog sistema ...................................................................................... 17

3.2. Tipovi arhitektura distribuiranih informacionih sistema .............................................. 18

3.3. Modeli kooperacije u razmeni poruka između čvorova ................................................ 18

3.4. Elementi i principi razmene podataka u različitim arhitekturama ........................... 19

3.5. Klijent-server arhitektura ........................................................................................................ 26

3.6. Višeslojna objektno-orjentisana arhitektura .................................................................... 26

3.7. Servisno-orjentisana arhitektura .......................................................................................... 30

3.8. UML za distribuirane sisteme ................................................................................................. 30

4.SLOJ RAČUNARSKO-KOMUNIKACIONE INFRASTRUKTURE ................................................. 33

4.1. Wireless tehnologija ................................................................................................................... 33

4.2. Bluetooth ........................................................................................................................................ 33

4.3. GPS ................................................................................................................................................... 33

4.4. Mobilni uređaji .............................................................................................................................. 34

5. Distribuirani operativni sistemi ...................................................................................................... 35

5.1. Distribuirani operativni sistemi .............................................................................................. 35

5.2. Operativni sistemi za mobilne uređaje ............................................................................... 35

6. SLOJ PODATAKA .................................................................................................................................. 36

6.1. Interoperabilnost aplikacija .................................................................................................... 36

6.2. Formati datoteka za razmenu podataka ............................................................................ 36

6.2.1. XML ........................................................................................................................................... 36

Page 5: TEHNIČKI FAKULTET „MIHAJLO PUPIN“ - tfzr.uns.ac.rs Tehnologije distribuiranih... · Distribuirani sistemi se mogu podeliti na: • Distribuirani računarski sistemi (“Distributed

6.2.2. JSON ........................................................................................................................................ 37

6.3. Distribuirane baze podataka ................................................................................................... 39

6.3.1. Pojam i osnovni mehanizmi distribuiranih baza podataka .................................. 39

6.3.2. Sistemi za upravljanje distribuiranim bazama podataka .................................... 39

6.3.3. Katalog distribuirane baze podataka ........................................................................... 40

6.3.4. Distribuirane transakcije .................................................................................................. 40

6.3.5. Upiti nad distribuiranim bazama podataka u .NET okruženju ........................... 42

6.3.6. Particionisanje baze podataka ....................................................................................... 42

6.3.7. Replikacija podataka .......................................................................................................... 43

6.3.8. Oporavak distribuirane baze podataka ....................................................................... 44

6.3.9. Aplikativni sloj za rad sa podacima – DAL klase ..................................................... 44

7. SLOJ APLIKATIVNE LOGIKE ............................................................................................................ 45

7.1. Middleware .................................................................................................................................... 45

7.2. Sloj radnih tokova (Workflow management systems) ................................................. 45

7.3. Poslovni entiteti ........................................................................................................................... 46

7.4. Sistem za upravljanje poslovnim pravilima ...................................................................... 46

7.5. Web servisi .................................................................................................................................... 46

7.5.1. SOAP i REST web servisi .................................................................................................. 47

7.5.2. Uređivanje web servisa za podršku poslovnim procesima .................................. 48

8. PREZENTACIONI APLIKATIVNI SLOJ .................................................................................... 49

8.1. Prezentacioni sloj višeslojne softverske arhitekture ............................................... 49

8.2. Web aplikacije ........................................................................................................................ 49

8.3. Mobilne aplikacije ................................................................................................................. 49

8.3.1. Programski jezici i razvojni alati za razvoj mobilnih aplikacija .................. 50

8.3.2. Responsive web design .............................................................................................. 51

9.PRIMENE .................................................................................................................................................. 52

9.1. Internet of Things ....................................................................................................................... 52

9.3. Geografski informacioni sistemi ............................................................................................ 53

10. PRIMERI SOFTVERA ......................................................................................................................... 57

10.1. Primer – distribucija podataka ............................................................................................ 57

Page 6: TEHNIČKI FAKULTET „MIHAJLO PUPIN“ - tfzr.uns.ac.rs Tehnologije distribuiranih... · Distribuirani sistemi se mogu podeliti na: • Distribuirani računarski sistemi (“Distributed

10.2. Primer – distribucija procesiranja ...................................................................................... 57

11. POJMOVNIK I SKRAĆENICE .......................................................................................................... 58

12. ISPITNA PITANJA .............................................................................................................................. 60

13. LITERATURA ....................................................................................................................................... 64

Page 7: TEHNIČKI FAKULTET „MIHAJLO PUPIN“ - tfzr.uns.ac.rs Tehnologije distribuiranih... · Distribuirani sistemi se mogu podeliti na: • Distribuirani računarski sistemi (“Distributed

1. OSNOVNI POJMOVI

1.1. Definicija i karakteristike distribuiranih sistema

Distribuirani sistem se može definisati kao kolekcija nezavisnih računara koji

se javlja korisnicima kao jedan jedinstven (koherentan) sistem.

[Tanenbaum&Steen, 2007]

Važne karakteristike distribuiranih sistema:

„Skup autonomnih računarskih elemenata“ - Sastoji se od komponenti

koje su autonomne. Autonomne komponente moraju da „sarađuju“, ali

tako da je to sakriveno od korisnika.

„Višeslojna arhitektura“ - Da bi se obezbedilo povezivanje heterogenih

računarskih komponenti i mreža, distribuirani sistem je organizovan kroz

slojeve, čime se odvaja niži fizički nivo operativnih sistema i osnovnih

komunikacionih funkcija od višeg nivoa aplikacija i korisnika. Između ta

dva nivoa je srednji sloj – middleware. Aplikativni sloj dobija isti

interfejs, koji se implementira na različite načine putem komponenti.

(Ne) „Transparentnost“ - Korisnici (ljudi ili programi) imaju „utisak“ da

rade sa jednim sistemom. Implementacija sistema je sakrivena od

korisnika - ne daje detalje o tipovima računara kao komponenti (mogu

biti heterogeni) niti o načinu kako su povezani i kako sarađuju. Prema

[Tanenbaum&Steen, 2007] i standardu ISO iz 1995, postoje različite.

Forme (ne) transparentnosti distribuiranog sistema:

Tip Opis

Pristup Sakriva razlike u prezentaciji podataka i kako se

pristupa resursima

Lokacija Sakriva lokaciju resursa

Migracija Sakriva mogućnost da resurs može da promeni

lokaciju

Relokacija Sakriva mogućnost da resurs može da promeni

lokaciju u toku korišćenja

Replikacija Sakriva da se resurs replicira (umnožava)

Konkurentnost Sakriva da se resurs može deliti između više

Page 8: TEHNIČKI FAKULTET „MIHAJLO PUPIN“ - tfzr.uns.ac.rs Tehnologije distribuiranih... · Distribuirani sistemi se mogu podeliti na: • Distribuirani računarski sistemi (“Distributed

konkurentnih korisnika, tj. korisnika koji koriste

resurs u isto vreme

Greška (Failure) Sakriva greške i oporavak resursa

„Skalabilnost“ - Distribuirani sistemi se lako mogu proširiti novim

komponentama.

„Pouzdanost“ - Očekuje se da distribuirani sistem uvek bude raspoloživ i

funkcionalan, ialo pojedini elementi privremeno mogu biti van funkcije.

Korisnici i aplikacije ne bi trebali da primete delove koji su u procesu

zamene ili popravke ili dodavanja novih elemenata koji se dodaju da bi

obezbedili podršku za više korisnika ili aplikacija.

„Otvorenost“ – sistem nudi servise u skladu sa standardnim pravilima

koje opisuju sintaksu i semantiku tih servisa. Pravila se odnose na

format, sadržaj i značenje poruka koje se šalju ili primaju. Takva pravila

formalizovana su u protokolima. U distribuiranim sistemima, servisi su

definisani kroz interfejse, opisane najčešće kroz Interface Definition

Language (IDL).

„Fleksibilnost“ –sistem se lako konfiguriše od različitih komponenti (čak i

od različitih proizvođača). Sistem treba da omogući laku zamenu

komponenti ili dodavanje novih komponenti bez uticaja na postojeće

komponente koje već funkcionišu. Kako bi se postigla fleksibilnost,

sistem treba da predstavlja kolekciju malih i lako zamenjivih i

adaptibilnih komponenti. Odvajanje funkcionalnosti, ciljeva („policy“) i

mehanizma implementacije.

Nepostojanje globalnog vremenskog usklađivanja događaja (“global

clock”) ili deljene memorije

Ciljevi i opravdanost kreiranja distribuiranog sistema:

Obezbeđuju lakšu dostupnost i deljenje udaljenih resursa – uređaja,

datoteka, skladišta podataka.

Dostupnost i deljenje resursa je ekonomski opravdano – smanjuje opšte

troškove

Povezivanje korisnika i resursa olakšava kolaboraciju i razmenu

informacija

Povećanje pouzdanosti i raspoloživosti sistema, unapređenje

performansi.

Page 9: TEHNIČKI FAKULTET „MIHAJLO PUPIN“ - tfzr.uns.ac.rs Tehnologije distribuiranih... · Distribuirani sistemi se mogu podeliti na: • Distribuirani računarski sistemi (“Distributed

Rizici i problemi razvoja i korišćenja distribuiranih sistema:

Bezbednost podataka

Privatnost podataka

Pouzdanost međusobnih veza (mreže) komponenti

Usklađivanje semantike.

Kompatibilnost

Sinhronizacija procesa

1.2. Distribuirano, konkurektno i paralelno računarstvo

Paralelno računarstvo je tip obrade podataka gde se mnoga izračunavanja

izvršavaju na procesima koji se izvršavaju simultano (istovremeno). Veliki

problemi se dele na manje, koji se mogu rešavati u isto vreme. Ima nekoliko

formi paralelnog računarstva: nivo bita, nivo instrukcije, nivo podataka i

paralelizam zadataka. S obzirom na potrebu da se smanji zagrevanje I

potrošnja energije računara, paralelno računarstvo je postalo danas

dominantno u računarskoj arhitekturi, najčešće u formi procesora sa više

jezgra.

Paralelno računarstvo je blisko sa konkurentnim računarstvom. Moguće je

imati paralelizam bez konkurentnosti (npr. Bit-nivo paralelizma) ili

konkurentnost bez paralelizma (npr. Kod multitaskinga sa deljenjem vremena

na procesoru sa jednim jezgrom). Kod paralelnog računarstva, zadatak obrade

se podeli na nekoliko, čak i više sličnih podzadataka koji se mogu procesirati

nezavisno i čiji rezultati se kombinuju kasnije, nakon njihovog završetka. Kod

konkurentnog računarstva, raznovrsni procesi često se ne odnose na

međusobno povezane zadatke, već kada izvršavaju (slično kao I kod

distribuiranog računarstva) svoje aktivnosti, potrebno je da postoji proces koji

će ih povezati u toku izvršavanja.

Distribuirano računarstvo se odnosi na primenu distribuiranih sistema za

rešavanje računarski rešivih problema. U ovom načinu procesiranja, problem

je podeljen između više zadataka, gde se svaki rešava na jednom ili više

računara povezanih računarskom mrežom, koji međusobno komuniciraju

razmenom poruka. Računarski program koji se izvršava u distribuiranom

sistemu naziva se distribuirani program. Postoji više načina za razmenu

Page 10: TEHNIČKI FAKULTET „MIHAJLO PUPIN“ - tfzr.uns.ac.rs Tehnologije distribuiranih... · Distribuirani sistemi se mogu podeliti na: • Distribuirani računarski sistemi (“Distributed

poruka između računara: HTTP, RPC (Remote Procedure Call) i redovi poruka

(message queues).

Page 11: TEHNIČKI FAKULTET „MIHAJLO PUPIN“ - tfzr.uns.ac.rs Tehnologije distribuiranih... · Distribuirani sistemi se mogu podeliti na: • Distribuirani računarski sistemi (“Distributed

2. KATEGORIZACIJA DISTRIBUIRANIH SISTEMA

Distribuirani sistemi se mogu podeliti na:

• Distribuirani računarski sistemi (“Distributed Computing Systems”)

• Distribuirani informacioni sistemi

• Distribuirani integrisani (“embedded”) sistemi

2.1. Distribuirani računarski sistemi

Distribuirani računarski sistemi se mogu klasifikovati na:

Klaster računara

Grid računara

Posebnu kategoriju predstavljaju cloud sistemi, koji mogu da se baziraju na

primeni klastera i grida računara.

CLUSTER

KLASTERSKI SISTEMI su homogeni sistemi, više istih ili sličnih PC računara sa

istim operativnim sistemom, povezanih homogenom računarskom mrežom, uz

najčešće jedan master računar koji upravlja zadacima. Koristi se kod

paralelnog programiranja, gde se jedan program izvršava na paralelnim

računarima. Računarski klaster se sastoji od više povezanih (povezani brzom

lokalnom računarskom mrežom) računara koji rade zajedno (na bliskoj

lokaciji) tako da se mogu posmatrati kao jedinstveni sistem. Za razliku od

grida, kod klastera svaki čvor sistema izvršava isti zadatak, kontrolisan i

raspoređen od strane softvera. Svaki čvor (računar) ima i izvršava svoju

instancu operativnog sistema. Kod klastera, najčešće svi računari imaju isti

hardver i isti operativni sistem (iako neki primeri imaju različite operativne

sisteme i-ili hardver, npr. ako koriste: Open Source Cluster Application

Resources (OSCAR)). Klasteri se formiraju da bi se unapredile performanse

rada u odnosu na pojedinačni računar, a nastali su kao rezultat trenda

raspoloživosti jeftinih mikroprocesora, brzih računarskih mreža I softvera koji

omogućuje distribuirano procesiranje visokih performansi.

Page 12: TEHNIČKI FAKULTET „MIHAJLO PUPIN“ - tfzr.uns.ac.rs Tehnologije distribuiranih... · Distribuirani sistemi se mogu podeliti na: • Distribuirani računarski sistemi (“Distributed

GRID

“Grid” sistemi– heterogeni sistemi, odlikuje ih raznovrsnost hardvera,

operativnih sistema, mreža, administrativnih domena, bezbedonosnih

sistema…Suština grid sistema je da se resursi različitih organizacija ujedinjuju

da bi se obezbedila kolaboracija grupe ljudi ili institucija. Takva kolaboracija

predstavlja formu virtualne organizacije. Ljudi, koji pripadaju istoj virtualnoj

organizaciji, imaju prava pristupa resursima te virtualne organizacije. Ti

resursi predstavljaju procesorske servere (“compute servers”), skladišta

podataka (“storage facilities”) i bazepodataka. Takođe, posebni uređaji koji su

dostupni u mreži takođe mogu biti na raspolaganju (senzori, teleskopi…). Grid

računarstvo se realizuje kolekcijom računarskih resursa sa različitih lokacija

(geografski disperznih, tj nisu bliski fizički), kako bi se postigao zajednički cilj.

Kod grid računarstva svaki čvor izvršava različite zadatke-aplikacije, za razliku

od klastera. Grid može biti korišćen za pojedinačne namene, koje mogu biti

različite. Softverska podrška grid sistemima se zasniva na softverskim

bibliotekama opšte namene za grid srednji sloj (general-purpose

grid middleware software libraries). Osnovni elementi arhitekture grid sistema

predstavljeni su kroz slojeve:

• Sloj aplikacija (“Application layer”) – aplikacije koje se koriste u

virtualnoj organizaciji koje omogućavaju primenu celog sistema

• Sloj kolekcije (“Collective layer”) – obrađuje upravljanje istovremenim

pristupom ka više resursa i sastoji se od servisa za otkrivanje resursa,

alokaciju i vremensko raspoređivanje (“scheduling”) zadataka nad višestrukim

resursima, replikacijom podataka itd.

• Sloj konekcije (“Connectivity layer”) – obezbeđuje servise i protokole za

razmenu podataka između resursa, pristup resursima iz udaljenih lokacija.

Page 13: TEHNIČKI FAKULTET „MIHAJLO PUPIN“ - tfzr.uns.ac.rs Tehnologije distribuiranih... · Distribuirani sistemi se mogu podeliti na: • Distribuirani računarski sistemi (“Distributed

• Sadrži bezbedonosne servise autentikacije korisnika i resursa.

Autentifikacija se odnosi prvenstveno na programe koje koriste korisnici.

• Sloj resursa (“Resource layer”) –odgovoran je za upravljanje jednim

resursom. Obezbeđuje funkcije za očitavanje konfiguracionih informacija o

pojedinačnom resursu ili izvršavanje specifičnih operacija kreiranja procesa ili

čitanja podataka. Zasniva se na prethodnoj kontroli pristupa, koja je

realizovana kroz autentikaciju sloja konekcije.

• Fabrički sloj („Fabric layer“) – odnosi se na interfejse lokalnih resursa

konkretne lokacije. Obezbeđuju funkcije za deljenje resursa – upite nad

stanjem i mogućnostima („capabilities“) resursa, kroz funkcije menadžmenta

resursa (npr. zaključavanje).

CLOUD

Cloud računarstvo se bazira na metafori: Za korisnika, elementi

implementacije sistema koji nudi razne servise su nevidljivi, kao da su u

oblaku. Cloud računarstvo je tip Internet-baziranog računarstva koje

omogućuje deljene resurse za računarsko procesiranje I skladištenje

podataka, kako bi bili na raspolaganju računarima i drugim uređajima. Ovaj

model omogućuje resurse po zahtevu iz deljenog skupa lako dostupnih i lako

konfigurišućih resursa (računarskih mreža, servera, uređaja za smeštanje

podataka – storage, aplikacija, servisa), koji se brzo mogu obezbediti i dati na

korišćenje uz minimum potrebe za upravljanjem. Ovi resursi obezbeđuju

pojedinačnim korisnicima ili firmama različite mogućnosti čuvanja I

procesiranja podataka u data centrima koji mogu biti geografski veoma

udaljeni i na taj način se obezbeđuje ušteda izbegavanjem investicija u

infrastrukturu (kupovina i održavanje servera). Na ovaj način se organizacije

mogu fokusirati na suštinu svog poslovanja, umesto da ulažu vreme I novac

na računarsku infrastrukturu i njihovo održavanje. Firme koje nude “cloud”

Page 14: TEHNIČKI FAKULTET „MIHAJLO PUPIN“ - tfzr.uns.ac.rs Tehnologije distribuiranih... · Distribuirani sistemi se mogu podeliti na: • Distribuirani računarski sistemi (“Distributed

sisteme naplaćuju korišćenje cloud sistema u zavisnosti od mogućnosti koje

klijent koristi ("pay as you go").

2.2. Distribuirani informacioni sistemi

Pоd pојmоm distribuirani infоrmaciоni sistem pоdrazumеva se infоrmaciоni

sistem kојi pоdržava distribuiranu obradu pоdataka, nad distribuiranоm bazоm

pоdataka. [Mogin, Lukovic & Govedarica, 2000]

2.3. Distribuirani integrisani („embedded“) sistemi

Integrisani sistem je računarski sistem posebne namene koji je povezan sa

širim mehaničkim ili električnim sistemom, najčešće zasnovan na procesiranju

podataka u realnom vremenu. Integrisan sistem je INTEGRISAN zato što

predstalja deo kompletnog uređaja koji obično sadrži hardverske i mehaničke

komponente. Integrisani sistemi kontrolišu mnoge uređaje u svakodnevnoj

upotrebi. 98% svih proizvedenih mikroprocesora danas su zapravo realizovani

da bi bili komponente integrisanih sistema.

Osnovne karakteristike integrisanih računara, poredeći sa računarima opšte

namene, su manji nivo potrošnje energije, manje dimenzije, manji troškovi,

grublji skup operacija, zbog ograničenja procesnih resursa. Zbog ovoga je teže

programirati i raditi sa tim resursima. Radi unapređenja rada integrisanih

sistema, uključuju se inteligentni mehanizmi uz postojeći hardver, senzore i

umrežavanje integrisanih elemenata. Takođe, posebno se unapređuju

integrisani sistemi tako da imaju manje dimenzije i troškove proizvodnje, ali

Page 15: TEHNIČKI FAKULTET „MIHAJLO PUPIN“ - tfzr.uns.ac.rs Tehnologije distribuiranih... · Distribuirani sistemi se mogu podeliti na: • Distribuirani računarski sistemi (“Distributed

veću pouzdanost i bolje performanse. Na ovaj način unapređuje se npr.

Potrošnja energije integrisanih sistema.

Savremeni integrisani sistemi su najčešće bazirani na mikrokontrolerima

(procesor s integrisanom memorijom i perifernim interfejsima) ili običnim

mikroprocesorima sa eksternim čipovima za memoriju i periferne interfejse,

koji se koriste u kompleksnijim sistemima. Procesori mogu biti opšte namene

ili specijalizovani za određene vrste procesiranja. Standardna klasa namenskih

procesora su „digital signal processor (DSP)”.

Integrisani sistemi se nalaze u malim portabilnim uređajima (npr. Digitalni

satovi, MP3 player), ali i u velikim stacionarnim instalacijama kao što su

saobraćajna signalizacija, kontroleri u fabrikama, složena hibridna vozila I

slično. Kompleksnost ide od jednog mikrokontrolerskog čipa do veoma velikih i

višestrukih jedinica.

Istorijat razvoja i principi funkcionisanja distribuiranih sistema kontrole

[Proenza, Almeida 2008]:

1. Sistem kontroliše kontroler, tako što prima podatke od senzora (S) i

prenosi komandu aktuatoru (A), koji treba da izvrši neku akciju nad

sistemom koji se kontroliše, kako bi prilagodio svoje ponašanje.

Moguće je koristiti više parova senzor-aktuator i kreirati decentralizovani

sistem sa jednim kontrolerom, sa kojim se vrši komunikacija putem posebnih

linkova.

Page 16: TEHNIČKI FAKULTET „MIHAJLO PUPIN“ - tfzr.uns.ac.rs Tehnologije distribuiranih... · Distribuirani sistemi se mogu podeliti na: • Distribuirani računarski sistemi (“Distributed

Prilikom raspodele zadataka na više kontrolera dobijamo distribuirani sistem

kontrole.

Page 17: TEHNIČKI FAKULTET „MIHAJLO PUPIN“ - tfzr.uns.ac.rs Tehnologije distribuiranih... · Distribuirani sistemi se mogu podeliti na: • Distribuirani računarski sistemi (“Distributed

3.ARHITEKTURA DISTRIBUIRANOG INFORMACIONOG SISTEMA

3.1. Arhitektura informacionog sistema

Informacioni sistem (IS) je organizovani sistem za prikupljanje, organizaciju,

filtriranje, obradu, čuvanje i razmenu podataka koji koriste ljudi i organizacije.

To je skup komponenti koje međusobno sarađuju u cilju proizvodnje

informacija. Računarski podržan informacioni sistem je sistem koji se sastoji

od ljudi i računarske opreme koja procesira ili interpretira informacije. U užem

smislu obuhvata računarski sistem sa aplikativnim softverom koji se izvršava

nad kompjuterizovanom bazom podataka. Kompjuterski-baziran informacioni

sistem je IS koji koristi računarsku tehnologiju za izvršavanje prethodno

navedenih zadataka koji se odnose na podatke. Osnovne komponente

računarski-zasnovanog informacionog sistema su:

Hardware - različiti uređaji: monitor, procesor, štampač, tastatura itd. Koji

se koriste za akviziciju, procesiranje i prezentovanje podataka i

informacija.

Software - računarski programi koji omogućavaju da hardver procesira

podatke.

Data - predstavljaju podatke u strukturiranom i nestrukturiranom obliku.

Networks - predstavljaju sistem veza koje omogućavaju da različiti

računari i oprema razmenjuju podatke i distribuiraju resurse.

Orgware – predstavljaju organizacione forme, procedure i propise na koji

način se organizuju aktivnosti u toku razvoja, održavanja i primene

sistema.

Lifeware – predstavljaju ljude koji su na pozicijama korisnika ili pozicijama

koje implementiraju ili održavaju sistem.

Naredna slika prikazuje različite tipove informacionih sistema, u zavisnosti

od nivoa upravljanja organizacijom.

Page 18: TEHNIČKI FAKULTET „MIHAJLO PUPIN“ - tfzr.uns.ac.rs Tehnologije distribuiranih... · Distribuirani sistemi se mogu podeliti na: • Distribuirani računarski sistemi (“Distributed

3.2. Tipovi arhitektura distribuiranih informacionih sistema

Različite hardverske i softverske arhitekture se koriste kod distribuiranog

računarstva. Na nižem nivou, potrebno je povezati veći broj procesora

određenom vrstom mreže. Na višem nivou, potrebno je povezati procese da se

izvršavaju na tim procesorima sa određenim komunikacionim sistemom.

Distribuirano programiranje (programiranje distribuiranih aplikacija) obuhvata

najčešće sledeće osnovne arhitekture softvera:

Troslojna arhitektura: programska logika je izmeštena na srednji sloj

tako da se pojednostavljuje razvoj i klijenti rasterećuju.

Višeslojna arhitektura: aplikacija se strukturira kroz četiri osnovna sloja

(sloj za rad sa podacima, sloj poslovne logike, sloj servisa i

prezentacioni sloj) i svaki od navedenih slojeva ima podslojeve.

Servisno-orjentisana arhitektura: raspodela procesiranja pojedinih

segmenata funkcionalnosti na više lokacija i poziv radi izvršavanja tog

dela funkcionalnosti u formi servisne usluge.

3.3. Modeli kooperacije u razmeni poruka između čvorova

Modeli kooperacije u razmeni poruka između čvorova:

Peer-to-peer model: ne postoje posebni server koji obezbeđuje servise

ili upravlja mrežnim resursima. Umesto toga, odgovornosti su uniformno

Page 19: TEHNIČKI FAKULTET „MIHAJLO PUPIN“ - tfzr.uns.ac.rs Tehnologije distribuiranih... · Distribuirani sistemi se mogu podeliti na: • Distribuirani računarski sistemi (“Distributed

razdeljene između svih računara, nazvanih peer. Peer računari

(ravnopravni računari) mogu da imaju ravnopravno ulogu i kao klijenti i

kao serveri.

Klijent-server model: klijent razmenjuje podatke sa serverom upućujući

zahteve korisnika za podacima ili prosleđujući serveru podatke koje

treba da ažurira. Klijent može biti “fat” ili “smart” tako da je programska

logika u okviru klijentskog računara ili “thin” kada je programska logika

u okviru serverskog računara. Razmena podataka se pokreće od strane

prijemne strane (klijenta). Čvor koji reaguje na klijentske zahteve i

proizvodi rezultat je server. Serveri ne pokreću aktivnosti, već samo

reaguju na zahteve.

Producer-consumer model: transakcije se pokreću od strane proizvođača

informacija (producer). Čvorovi kojima je potrebna informacija

identifikuju da je poslata i preuzimaju je sa mreže (consumer).

Publish-subscribe model: korisnici informacija se pretplaćuju

(subscriber) na usluge dostavljanja informacija od strane čvorova koji ih

publikuju (publisher).

3.4. Elementi i principi razmene podataka u različitim arhitekturama

Poruka

Poruka je diskretna jedinica komunikacije formulisana od strane izvora poruke

radi korišćenja od strane primaoca poruke. Poruke su forma komunikacije

korišćena u konkurentnom i paralelnom računarstrvu, objektno-orjentisanom

programiranju ili interprocesnoj komunikaciji.

U objektno-orjentisanom programiranju, poruka predstavlja poziv metode

objekta sa vrednostima parametara. Poruka se šalje objektu klase, čime se

specificira zahtev za izvršavanje konkretne akcije od strane metode te klase,

uz konkretne vrednosti parametara poziva. Postoje različiti standardi-protokoli

razmene poruka.

U komunikacionim sistemima [Proenza, Almeida 2008], razmena poruka

predstavlja mehanizam interakcije između čvorova računarske mreže. Poruka

je jedinica informacije koja se pranosi, u nekom vremenskom intervalu, od

procesa pošiljaoca do jednog ili više procesa primaoca. Poruka sadrži podatke,

Page 20: TEHNIČKI FAKULTET „MIHAJLO PUPIN“ - tfzr.uns.ac.rs Tehnologije distribuiranih... · Distribuirani sistemi se mogu podeliti na: • Distribuirani računarski sistemi (“Distributed

kao i kontrolne informacije koje su potrebne za adekvatnu transmisiju

podataka (pošiljalac, cilj, sadržaj).

Mrežna transakcija predstavlja sekvencu akcija u okviru komunikacionog

sistema potrebnu da se izvrši efektivni transfer podataka poruke. Transakcija

može da sadrži poruke samo sa kontrolnim podacima, ali i sa ostalim

podacima. Transakcija koja se sastoji od više poruka je atomarna ako se sve

poruke iz kojih se sastoji moraju preneti bez prekida. Paket je najmanja

jedinica informacije koja se prenosi bez prekida. Više paketa čini jednu

transakciju poruka.

Razmena poruka u objektnom programiranju

U objektnom programiranju, slanje poruke je obraćanje procesu-metodi

objekta, koji treba da izvrši neki programski kod, odnosno izvrši neku akciju.

U objektno-orjentisanom programiranju, na ovaj način se razlikuje funkcija od

implementacije, koja je enkapsulirana. Enkaspulacijom softverski objekti

pozivaju servise drugih objekata bez poznavanja ili uticaja na to kako su ti

servisi implementirani. Distribuirana razmena poruka omogućuje developerima

Page 21: TEHNIČKI FAKULTET „MIHAJLO PUPIN“ - tfzr.uns.ac.rs Tehnologije distribuiranih... · Distribuirani sistemi se mogu podeliti na: • Distribuirani računarski sistemi (“Distributed

sloj arhitekture (nazvan “messaging layer”) sa mogućnošću izgradnje sistema

sastavljenog od podsistema koji se izvršavaju na različitim računarima sa

različitim lokacijama i u različito vreme. Messaging layer omogućava slanje

poruka distribuiranih objekata drugim objektima kroz:

- Pronalaženje adekvatnog objekta, pri čemu se objekti mogu nalaziti na

različitim računarima, operativnim sistemima I biti implementirani na

različitim programskim jezicima

- Snimanje poruke u red (queue) ukoliko odgovarajući objekat nije

trenutno aktivan i pokretanje poruke kada se odgovarajući objekat

aktivira

- Kontrolisanje distribuiranih transakcija, obezbeđujući ACID osobine nad

podacima.

Razlikujemo sinhrono i asinhrono slanje poruka. Sinhrono slanje poruka se

javlja između objekata koji su aktivni u isto vreme. Asinhrono slanje poruka je

moguće kada je objekat koji treba da primi poruku i izvrši akciju zauzet ili nije

aktivan u trenutku kada objekat koji šalje poruku pošalje tu poruku. Ta

obradu asinhrone razmene poruka koristi se poseban middleware, npr.

Message-oriented middleware, gde se zahtevi šalju, čuvaju u “message bus”,

a obrađuju kada je ciljni objekat aktivan. Sinhrona razmena poruka takođe

može da koristi poseban middleware (npr. Synchonizer), gde sender ne šalje

novu poruku dok ne dobije odgovor od prijemnika da je primio poruku.

Potrebno je razlikovati slanje poruka i poziv procedure. U tradicionalnom

pozivu procedure, argumenti (vrednosti parametara poziva procedure) se šalju

korišćenjem registara opšte namene koji pamte samo adresu vrednosti

argumenta, dok se kod slanja poruke šalje ceo argument-parametar sa svim

svojim osobinama (tip podatka) kao i vrednost argumenta.

Komunikacioni protokol

U telekomunikacijama, komunikacioni protocol je sistem pravila koja

omogućavaju da dva entiteta komunikacionog sistema razmenjuju podatke

pomoću varijacija fizičkih veličina. Ta pravila ili standardi opisuju sintaksu,

semantiku I sinhronizaciju komunikacija I metode za oporavak od mogućih

grešaka. Protokoli mogu biti implementirani u okviru hardvera i softvera.

Komunikacioni sistemi koriste dobro definisane formate (protokole) za

razmenu različitih poruka. Svaka poruka ima precizno značenje kojim se

Page 22: TEHNIČKI FAKULTET „MIHAJLO PUPIN“ - tfzr.uns.ac.rs Tehnologije distribuiranih... · Distribuirani sistemi se mogu podeliti na: • Distribuirani računarski sistemi (“Distributed

pokreće i očekuje odgovor iz skupa svih mogućih odgovora koji su unapred

definisani za takvu situaciju.Očekivano ponašanje kao odgovor na poruku je

nezavisno od načina implementacije. Komunikacioni protokoli treba da su

rezultat dogovora-usaglašavanja između svih strana, a obično se oblikuju kao

tehnički standardi. Protokoli definišu pravila koja se odnose na transmisiju

poruka. Protokol mora da definiše: formate podataka za razmenu, adresne

formate (pošiljaoca I primaoca) za razmenu podataka, adresno mapiranje (u

druge oblike adresa), rutiranje (definisanje posrednika u komunikaciji),

detekcija grešaka transmisije, odgovor o uspehu prijema paketa podataka,

gubitak podataka (timeout i retry), usmerenje toka informacija, kontrola

sekvenci, kontrola toka.

Softverski servis

Servis je diskretna jedinica funkcionalnosti kojoj se može pristupiti udaljeno

(remotely) i koristiti i menjati nezavisno.

Software as a service (SaaS) je model za softversko licenciranje i isporuku

gde se softver licencira na bazi pretplate i centralno je smešten (hostovan).

SaaS se pristupa od strane korisnika koristeći tanki (“thin”) klijent koristeći

web browser. SaaS je postao uobičajen model za isporuku poslovnih

aplikacija. Pojam Saas se koristi kao deo nomenclature u okviru Cloud

računarstva, zajedno sa infrastructure as a service (IaaS), platform as a

service (PaaS), desktop as a service (DaaS), managed software as a service

(MSaaS), mobile backend as a service (MBaaS), and information technology

management as a service (ITMaaS). S obzirom da SaaS aplikacije ne mogu da

pristupaju internim sistemima neke kompanije (npr. Bazama podataka ili

internim servisima), integracija je omogućena koristeći protokole i API

(application programming interfaces). Ovi protokoli su bazirani na HTTP, SOAP

i REST.

Distribuirani objekti

U distribuiranom računarstvu, distribuirani objekti su objekti (u smislu

objektno-orjentisanog programiranja) koji su distribuirani na različitim

adresnim prostorima u okviru različitih procesa jednog računara ili na više

računara u računarskoj mreži, ali funkcionišu zajedno deljenjem i razmenom

podataka i pokretanjem metoda. To uključuje lokacijsku (ne)transparentnost,

Page 23: TEHNIČKI FAKULTET „MIHAJLO PUPIN“ - tfzr.uns.ac.rs Tehnologije distribuiranih... · Distribuirani sistemi se mogu podeliti na: • Distribuirani računarski sistemi (“Distributed

gde udaljeni objekti „izgledaju“ isto kao i lokalni objekti. Osnovni način

komunikacije distribuiranih objekata je putem udaljenog poziva metoda putem

slanja poruka: jedan objekat šalje poruku drugom objektu na udaljenoj mašini

ili procesu da izvrši neki zadatak. Rezultati se šalju nazad objektu koji je

pozvao taj objekat.

Primeri podrške za distribuirane objekte: Java RMI, CORBA, DCOM (Microsoft

platform), DDObjects(Delphi), JavaSpaces, Pyro (Python), DRb

(DistributedRuby).

Udaljeno pozivanje procedura (RPC)

U distribuiranom računarstvu, Remote Procedure Call (RPC) je proces

pozivanja, od strane računarskog programa, procedure koja se izvršava u

drugom adresnom prostoru, najčešće na drugom računaru deljene računarske

mreže. Prilikom tog udaljenog pozivanja, u programu se pišu naredbe kao da

se poziva lokalna procedura, bez potrebe za dodatnim programiranjem detalja

u vezi udaljene interakcije. Implementacija odgovara request-response

sistemu razmene poruka, slično kao kod klijent-server modela. Istorijat: Počev

od objektno-orjentisanog programiranja I modela “Remote Method

Invocation”, zatim CORBA (Common Object Request Broker Architecture),

zatim Java RMI (Java Remote Method Invocation).

Page 24: TEHNIČKI FAKULTET „MIHAJLO PUPIN“ - tfzr.uns.ac.rs Tehnologije distribuiranih... · Distribuirani sistemi se mogu podeliti na: • Distribuirani računarski sistemi (“Distributed

OSI model

OSI model (Open Systems Interconnection Model) je konceptualni model koji

standardizuje komunikacione funkcije telekomunikacionih i računarskih

sistema bez obzira na internu strukturu i tehnologiju. Cilj je obezbediti

interoperabilnost (mogućnost razmene podataka i integracije sistema i

softvera) različitih sistema pomoću standardnih komunikacionih pravila

(protokola). OSI model je rezultat projekta „Open Systems

Interconnection project” kod International Organization for

Standardization (ISO) i opisan u okviru standard ISO/IEC 7498-1. OSI model

deli komunikacioni sistem u apstraktne slojeve. Koncept OSI modela sa sedam

slojeva rezultat je rada Charles Bachmana (Honeywell Information Services).

Osnovna verzija standard opisana je 1983 godine kao “Basic Reference Model

for Open Systems Interconnection”. Publikovan je 1984. Godine kao standard

ISO 7498 od strane ISO organizacije i kao standard X.200 od strane

organizacije Telecommunications Standardization Sector of the International

Telecommunication Union (ITU-T).

Originalna verzija OSI modela definiše 7 slojeva. OSI model definiše

komunikaciju između slojeva jednog sistema ili komunikaciju između entiteta

različitih sistema i istih slojeva. Servisne definicije apstraktno opisuju

funkcionalnost obezbeženu za N sloj od strane N-1 sloja. Određeni sloj „služi“

sloju iznad, a „biva poslužen“ od strane sloja ispod, odnosno dobija rezultate

usluga sloja ispod. Dva entiteta-instance istog sloja (različitih host-ova, tj.

uređaja), tj. N-sloj peer-ovi (ravnopravni slojevi u komunikaciji dva različita

uređaja), komuniciraju putem standardnih protokola, razmenjujući

protokolom definisane jedinice razmene podataka (PDU – protocol data units)

za taj N sloj. Svaki PDU sadrži jedinicu servisnih podataka (Service data unit –

SDU) zajedno sa protokolom definisanim hederima i futerima za poziv servisa.

Proces komunikacije između dve OSI-kompatibilna uređaja: Podaci se šalju od

najvišeg sloja uređaja koji šalje podatke u obliku PDU, koji se prosleđuje N-1

sloju gde se prepoznaje kao SDU i dodaje mu se heder i futer, a zatim se

prosleđuje N-2 sloju koji to sve tumači kao PDU od N-1 sloja. Proces se

nastavlja do najnižeg sloja. Tek u tom obliku se šalju uređaju koji prima

podatke. Uređaj koji prima podatke zatim transformiše od najnižeg sloja do

najvišeg, kako bi se na najvišem nivou podaci koristili.

Page 25: TEHNIČKI FAKULTET „MIHAJLO PUPIN“ - tfzr.uns.ac.rs Tehnologije distribuiranih... · Distribuirani sistemi se mogu podeliti na: • Distribuirani računarski sistemi (“Distributed

Asinhrona komunikacija

U telekomunikacijama, asinhrona komunikacija je razmena podataka bez

primene eksternog satnog signala, gde se podaci razmenjuju povremeno, bez

konstantnog protoka. Transmiter i receiver satni generatori nisu

sinhronizovani.

Sinhrona komunikacija

Sinhronizacija je koordinacija događaja u sistemu. Sistemi čiji svi elementi

funkcionišu sinhrono, nazivaju se sinhroni sistemi. Sinhroni uređaji zahtevaju

postojanje satnog signala (clock signal), čija je osnovna namena da

signaliziraju početak i kraj nekog vremenskog perioda. Na ovaj način se

događaji nad različitim elektronskim sistemima mogu sinhronizovati, tj. da se

Page 26: TEHNIČKI FAKULTET „MIHAJLO PUPIN“ - tfzr.uns.ac.rs Tehnologije distribuiranih... · Distribuirani sistemi se mogu podeliti na: • Distribuirani računarski sistemi (“Distributed

ponašaju tako da se izvršavaju simultano. Primer sinhronizacije je u GPS

sistemima, gde rad satelita treba da se uskladi sa radom GPS uređaja na

Zemlji, koristeći Network Time Protocol (NTP) kojima se obezbeđuje pristup u

realnom vremenu I bliska aproksimacija za “UTC timescale”.

3.5. Klijent-server arhitektura

Klijent-server je model distribuirane strukture aplikacije, tako da se dele

zadaci i aktivnosti između “obezbeđivača resursa ili servisa” (server) i

“zahtevača servisa” (klijenti). Najčešće klijenti i server funkcionišu na

različitom hardveru i povezani su računarskom mrežom, iako mogu biti i na

fizički istom sistemu. Server izvršava jedan ili više serverskih programa

kojima deli svoje resurse sa klijentima, dok klijent ne deli svoje resurse, već

zahteva od server određene sadržaje ili servisne funkcije. Klijent-server

predstavlja relaciju saradnje programa u aplikaciji. Serverska komponenta

aplikacije obezbeđuje funkcije ili servise za jednog ili više klijenata, koji

zahtevaju te servise. Serveri se mogu klasifikovati u odnosu na usluge-servise

koje obezbeđuju. Npr. Web server obezbeđuje web stranice, file server služi za

obradu računarskih fajlova, server baze podataka procesira rad sa bazama

podataka. Deljeni resursi servera mogu biti računarski softver (program,

podaci) ili hardverske komponente (npr. Uređaji za skladištenje podataka –

storage devices). Deljenje resursa servera čini servis. Jedan računar može

izvršavati više serverskih programa i pružati više servisa (npr. Može

istovremeno biti i web server, server baze podataka, file server).

3.6. Višeslojna objektno-orjentisana arhitektura

U softverskom inženjerstvu, višeslojna arhitektura (često nazvana i n-tier

arhitektura) je klijent-server arhitektura gde su prezentacija, procesiranje

aplikacije i funkcije upravljanja podacima fizički odvojene. Najčešće korišćena

višeslojna arhitektura je troslojna arhitektura. N-tier aplikaciona arhitektura

obezbeđuje model softvera gde developeri mogu da kreiraju fleksibilne

aplikacije pogodne za održavanje i ponovno korišćenje komponenti (reusable).

Razdvajanjem aplikacije na slojeve, dobija se mogućnost izmene ili dodavanja

specifičnih slojeva, umesto da se celokupna aplikacija ponovo implementira

zbog promena. U troslojnoj arhitekturi najčešće razlikjemo prezentacioni sloj

Page 27: TEHNIČKI FAKULTET „MIHAJLO PUPIN“ - tfzr.uns.ac.rs Tehnologije distribuiranih... · Distribuirani sistemi se mogu podeliti na: • Distribuirani računarski sistemi (“Distributed

(presentation tier), sloj domenske logike (domain logic tier) i sloj podataka

(data storage tier).

Slika. Troslojna softverska arhitektura (izvor: Microsoft MSDN [w1])

U objektno-orjentisanom dizajnu višeslojne arhitekture softverske podrške

informacionog sistema, najčešći su slojevi:

Page 28: TEHNIČKI FAKULTET „MIHAJLO PUPIN“ - tfzr.uns.ac.rs Tehnologije distribuiranih... · Distribuirani sistemi se mogu podeliti na: • Distribuirani računarski sistemi (“Distributed

Prezentacioni sloj (Presentation layer) – korisnički interfejs(UI layer), sloj

pogleda(view layer)

Aplikacioni sloj (Application layer) – Sloj servisa (service layer), Controller

Layer

Poslovni sloj (Business layer) - Sloj poslovne logike(business logic layer -

BLL), domenski sloj (domain layer)

Sloj pristupa podacima (Data access layer) (persistence layer, logging,

networking i ostali servisi potrebni za poslovni sloj)

Slika. Višeslojna softverska arhitektura (izvor: Microsoft MSDN [w1])

MVC (Model View Controller)

Model–view–controller (MVC) je softverski arhitekturni (dizajn) patern. Deli

aplikaciju na tri međusobno povezane komponente kao bi se razdvojile interne

prezentacije informacija od načina kako je informacija prezentovana i

prihvaćena od strane korisnika. Na ovaj način, MVC dizajn patern omogućava

paralelni razvoj komponenti i ponovnu iskoristivost koda (code reuse).

Page 29: TEHNIČKI FAKULTET „MIHAJLO PUPIN“ - tfzr.uns.ac.rs Tehnologije distribuiranih... · Distribuirani sistemi se mogu podeliti na: • Distribuirani računarski sistemi (“Distributed

Inicijano korišćena za desktop aplikacije, ova arhitektura je postala popularna

za dizajn web i mobilnih aplikacija. Najčešće korišćeni programski jezici Java,

C#, PHP i Ruby imaju svoje popularne MVC framework-e koji se koriste u

razvoju aplikacija.

Komponente su:

MODEL – centralna komponenta MVC paterna. Upravlja podacima i

poslovnim objektima, čime vodi računa o stanju podataka kao osnove

funkcionisanja aplikacije.

VIEW – prikaz podataka u različitim formama. Za iste informacije može

biti više različitih prikaza – grafikoni, tabelarni prikazi i slično.

KONTROLER – preuzima ulaze i konvertuje ih u komande koje su

upućene MODELU ili VIEW. Upravlja prezentacionom i

domenskom/poslovnom logikom.

Podela na 3 komponente definiše i njihovu međusobnu povezanost:

MODEL čuva podatke, KONTROLER zadaje komande modelu za

preuzimanje podataka, kontroler zadaje komande kojima se podaci

prikazuju u VIEW.

VIEW daje izlaz (output) koji je predstavljen korisniku, a generisan je i

pozvan od strane KONTROLERA, na osnovu promena koje su se desile u

modelu.

KONTROLER može da šalje komande MODELU da promeni stanje

modela. Kontroler može da šalje komande na VIEW da se izmeni prikaz

podataka na osnovu izmena modela ili da se prikaže druga vrsta ili način

ponašanja VIEW.

Page 30: TEHNIČKI FAKULTET „MIHAJLO PUPIN“ - tfzr.uns.ac.rs Tehnologije distribuiranih... · Distribuirani sistemi se mogu podeliti na: • Distribuirani računarski sistemi (“Distributed

3.7. Servisno-orjentisana arhitektura

Servisno-orjentisana arhitektura (SOA) je stil softverskog dizajna gde su

servisi obezbeđeni softverskim komponentama kojima se pristupa putem

mrežnih komunikacionih protokola. Servis ima opšte karakteristike, nezavisne

od tehnologije ili dobavljača: predstavlja logičku jedinicu posla, samostalan,

implementacija je sakrivena za korisnike, može da se u svojoj implementaciji

zasniva na primeni drugih servisa. Različiti servisi se mogu udružiti kako bi

obezbedili funkcionalnost složenije softverske aplikacije. U okviru servisno-

orjentisane arhitekture, aplikacija se kreira integracijom distribuiranih,

nezavisno-održavanih i postavljenih softverskih komponenti. Servis

predstavlja jednostavni interfejs koji je pozvan od strane korisnika usluge

servisa I koji sakriva implementaciju samog servisa. U okviru SOA, servisi

koriste protokole kojima se opisuje kako se prosleđuju I tumače poruke,

koristeći metapodatke – opisuju funkcionalne karakteristike I karakteristike

kvaliteta usluge-servisa. Osnovni elementi i učesnici SOA pristupa su:

- Service Provider (Kreira web servis i registruje ga u okviru registra

servisa)

- Service Broker (registar servisa, skladište servisa)

- Service Requester (pronalazi web servis u okviru servisnog brokera i

povezuje se sa service provider-om kako bi koristio usluge web servisa.

U razvoju SOA aplikacija razvijaju se web servisi i koriste se standardi za web

servise, npr. SOAP, CORBA; REST.

3.8. UML za distribuirane sisteme

The Unified Modeling Language (UML) je jezik opšte namene u oblasti

softverskog inženjerstva, čiji je cilj da obezbedi standardni način vizualizacije

dizajna sistema. Nastao je integracijom različitih pristupa I tipova modela od

strane Grady Booch, Ivar Jacobson i James Rumbaugh u okviru firme Rational

Software u 1994–1995. godini. Prihvaćen je kao standard u okviru Object

Management Group (OMG) i International Organization for

Standardization (ISO) kao ISO standard. Inicijalna verzija UML sadrži 9 vrsta

dijagrama. Novije verzije UML 2.0 dobijaju još 3 nova dijagrama.

Page 31: TEHNIČKI FAKULTET „MIHAJLO PUPIN“ - tfzr.uns.ac.rs Tehnologije distribuiranih... · Distribuirani sistemi se mogu podeliti na: • Distribuirani računarski sistemi (“Distributed

Najvažniji UML (Unified modeling language) modeli koji se koriste za prikaz

distribuiranih sistema su:

- Dijagram komponenti

- Dijagram razmeštaja

Osnovni elementi dijagrama komponenti su:

softverski paket

softverska komponenta

fajl

veze između elemenata

Slika. Primer dijagrama komponenti za web aplikaciju koja koristi bazu

podataka i web servis ([6])

Osnovni elementi dijagrama razmeštaja su:

čvor – računar u računarskoj mreži koji sadrži softverske pakete,

komponente i fajlove

softverski paket

softverska komponenta

fajl

veze između čvorova

Page 32: TEHNIČKI FAKULTET „MIHAJLO PUPIN“ - tfzr.uns.ac.rs Tehnologije distribuiranih... · Distribuirani sistemi se mogu podeliti na: • Distribuirani računarski sistemi (“Distributed

Slika. Primer dijagrama razmeštaja za web aplikaciju koja koristi bazu

podataka i web servis ([6])

Page 33: TEHNIČKI FAKULTET „MIHAJLO PUPIN“ - tfzr.uns.ac.rs Tehnologije distribuiranih... · Distribuirani sistemi se mogu podeliti na: • Distribuirani računarski sistemi (“Distributed

4.SLOJ RAČUNARSKO-KOMUNIKACIONE INFRASTRUKTURE

4.1. Wireless tehnologija

Wireless komunikacija je transfer informacija između dve tačke koje nisu

povezane električnim provodnikom. Najčešće korišćene wireless tehnologije

koriste radio talase. Sa radio talasima udaljenost tačaka u komunikaciji može

biti različita (manje udaljenosti u okviru zgrada ili veće udaljenosti za

svemirske radio-komunikacije). Druge wireless tehnologije su implementirane

na rasprostiranju svetlosti, magnetnog polja, električnog polja ili zvuka.

Različiti uređaji koriste wireless komunikaciju: mobilni uređaji – telefoni,

tableti, GPS uređaji, wireless tastature i miševi, bežični telefoni, kao i wireless

uređaj za otvaranje vrata i drugo.

4.2. Bluetooth

Bluetooth je wireless tehnološki standard za razmenu podataka na kratkim

udaljenostima (koristeći kratke radio talase). Uveden je prvi put u okviru

Ericsson-a 1994. godine, kao alternativa RS-232 data kablovima. Bluetooth

tehnologija se razvija u okviru organizacije Bluetooth Special Interest

Group (SIG), koja udružuje više od 30,000 kompanija u oblasti

telekomunikacija, računarstva, mreža I elektronike.

Organizacija IEEE standardizovala je Bluetooth kao standard IEEE 802.15.1.

Današnji proizvođači opreme koji žele da realizuju Bluetooth podršku, treba da

usklade karakteristike sa Bluetooth SIG standardima.

4.3. GPS

Global Positioning System (GPS) predstavlja globalni navigacioni satelit-

bazirani system (NAVigation with Satellite Timing And Ranging = NAVSTAR

sistem, u vlasništvu vlade Sjedinjenih Američkih Država, ali je besplatno

dostupan svima) koji obezbeđuje geolokaciju i informacije o vremenu GPS

receiver-u bilogde na Zemlji ili blizu Zemljine površine. Uslov da GPS uređaj

na Zemlji radi je da je u svakom trenutku na takvoj lokaciji da ima mogućnost

„pogleda“ na barem 4 ili više GPS satelita. Princip rada GPS uređaja je

triangulacija (presek tri „sfere koje se formiraju“ između uređaja GPS i

satelita, pri čemu se četvrta sfera koristi zbog preciznosti).

GPS projekat je započet 1973, kako bi prevazišao probleme postojećih

navigacionih sistema, a postao je 1995. potpuno funkcionalan sa 24 satelita. U

Page 34: TEHNIČKI FAKULTET „MIHAJLO PUPIN“ - tfzr.uns.ac.rs Tehnologije distribuiranih... · Distribuirani sistemi se mogu podeliti na: • Distribuirani računarski sistemi (“Distributed

nizu godina menjane su tehnologije i broj satelita. Razvijeni su i alternativni

GPS sistemi, kako ne bi postojala zavisnost od Sjedinjenih Američkih Država.

Ruski GPS system je razvijen (The Russian Global Navigation Satellite System

- GLONASS), ali nije imao dobru pokrivenost satelitima do 2000.

godine. Danas se GLONASS može povezati sa GPS uređajima, kako bi se

postigla veća dostupnost satelita i preciznije izračunavanje pozicija. Razvijeni

su i drugi navigacioni sistemi:European Union Galileo positioning system,

China's BeiDou Navigation Satellite System, Indijski NAVIC.

4.4. Mobilni uređaji

Mobilni uređaj je računarski uređaj koji je toliko malih dimenzija da može da

se nalazi u ruci. Najčešće uređaj ima ravan ekranski displej sa malom

alfanumeričkom tastaturom ili touchscreen sa virtualnom tastaturom na

ekranu. Mnogi mobilni uređaji imaju mogućnost povezivanja na internet ili

povezivanja sa drugim uređajima putem WiFi ili Bluetooth veze, kao i

mogućnost koriščćenja GPS. Mobilni uređaji su podržani mobilnim operativnim

sistemima koji omogućavaju instaliranje drugih korisnih aplikacija. Dodatne

funkcije mogu biti omogućene kroz čitače bar koda ili kartica i senzore kojima

se detektuje orjentacija ili pokreti. Biometrijska autentikacija je moguća u

oblasti prepoznavanja lica ili otiska prsta. Proizvođači mobilnih uređaja su:

Apple, Samsung, Sony, HTC, LG, Motorola.

Page 35: TEHNIČKI FAKULTET „MIHAJLO PUPIN“ - tfzr.uns.ac.rs Tehnologije distribuiranih... · Distribuirani sistemi se mogu podeliti na: • Distribuirani računarski sistemi (“Distributed

5. Distribuirani operativni sistemi

5.1. Distribuirani operativni sistemi

Distribuirani operativni system je softver koji je instaliran na kolekciji

nezavisnih, umreženih i fizički odvojenih čvorova. Svaki pojedinačni čvor

sadrži specifični podskup softverskih elemenata globalnog agregatnog

operativnog sistema. Svaki čvor sadrži dva skupa softverskih funkcija. Prvi je

microkernel (jezgro) koje kontroliše direktno hardver čvora. Drugi je kolekcija

softverskih komponenti višeg nivoa za upravljanje čvorom, tj. njegovim

individualnim i kolaborativnim aktivnostima. Komponente druge grupe

omogućavaju podršku aplikativnog softvera. Primer distribuiranog operativnog

Sistema je Amoeba, razvijena od strane Andrew S. Tanenbaum i drugih sa

Vrije Universiteit Amsterdam. Cilj Amoeba projekta je da se napravi

timesharing system koji omogućava da cela mreža i svi računari “izgledaju”

korisniku kao jedna mašina.

5.2. Operativni sistemi za mobilne uređaje

Mobilni operativni sistem je operativni system namenjen za mobilne uređaje –

smart telephone, tablete i druge mobilne uređaje. Mobilni operativni sistemi

kombinuju mogućnosti operativnih sistema personalnih računara sa drugim

korisnim funkcijama za mobilnu upotrebu, npr. a touchscreen, cellular (mobilni

telefon), Bluetooth, Wi-Fi Protected Access, Wi-Fi, Global Positioning

System (GPS) mobile navigation, camera, video camera, speech

recognition, voice recorder, music player… Do kraja 2016. godine, preko 430

milliona smart telefona je prodato, pri čemu su mobilni operativni sistemi

zastupljeni: 81.7% Android, 17.9% iOS, 0.3% Windows Mobile.

Page 36: TEHNIČKI FAKULTET „MIHAJLO PUPIN“ - tfzr.uns.ac.rs Tehnologije distribuiranih... · Distribuirani sistemi se mogu podeliti na: • Distribuirani računarski sistemi (“Distributed

6. SLOJ PODATAKA

6.1. Interoperabilnost aplikacija

Interoperabilnost je karakteristika proizvoda ili sistema, koja omogućava

interakciju i integraciju sa drugim sistemima na osnovu čitljivih, jasnih i

dostupnih interfejsa. Interoperabilnost je značajna kod razmene podataka

između različitih proizvoda ili sličnih proizvoda različitih proizvođača ili čak

između prošle i aktuelne verzije istog proizvoda istog proizvođača.

Razlikujemo 2 tipa interoperabilnosti:

Sintaksnu interoperabilnost – dva sistema mogu da komuniciraju i

izražavaju sintaksnu interoperabilnost kada koriste specifične formate

podataka i komunikacione protokole. Primeri standarda koji podržavaju

sintaksnu interoperabilnost: XML, SQL, formati datoteka (ASCII,

Unicode).

Semantičku interoperabilnost – odnosi se na sposobnost da se

automatski interpretira značenje informacija koje se razmenjuju, što

rezultuje korisnim rezultatima. Da bi se postigla semantička

interoperabilnost, obe strane komunikacije moraju referencirati

zajednički referentni model razmene podataka.

Razlikujemo interoperabilnost i kompatibilnost. Interoperabilnost proizvoda je

zasnovana na podešavanju karakteristika proizvoda da je u skladu sa opšte

usvojenim otvorenim standardima, a kompatibilnost je usklađivanje proizvoda

sa drugim proizvodom koji ne mora biti implementiran u skladu sa opštim

otvorenim standardima. U tom slučaju, proizvod je samo kompatibilan sa tim

drugim proizvodom. Otvoreni standardi su rezultat rada konsultativne grupe

koju čine predstavnici proizvođača, istraživača i drugih zainteresovanih strana

u razvoju.

6.2. Formati datoteka za razmenu podataka

6.2.1. XML

Extensible Markup Language (XML) je jezik označavanja (markup language)

koji definiše skup pravila za formulisanje dokumenata u formi koja je čitljiva

za ljude i mašine. XML specifikacija je otvoreni standard koji definisala W3C.

Glavni ciljevi XML su: jednostavnost, opštost, primenljivost na Internetu. To je

tekstualni format podataka sa dobrom podrškom za Unicode format, koji je

Page 37: TEHNIČKI FAKULTET „MIHAJLO PUPIN“ - tfzr.uns.ac.rs Tehnologije distribuiranih... · Distribuirani sistemi se mogu podeliti na: • Distribuirani računarski sistemi (“Distributed

potreban različitim govornim jezicima. XML se široko koristi za strukture

podataka koje se koriste kod web servisa. Razvijeni su brojni API (Application

programming interfaces) koji omogućavaju procesiranja XML podataka.

Primer XML dokumenta:

<?xml version="1.0" standalone="yes"?>

<SpisakProizvodjaca>

<Proizvodjac>

<NazivProizvodjaca>Dijamant</NazivProizvodjaca>

<NazivRobe>Margarin</NazivRobe>

<CenaRobe>100</CenaRobe>

</Proizvodjac>

<Proizvodjac>

<NazivProizvodjaca>ZitoProdukt</NazivProizvodjaca>

<NazivRobe>Suncokret</NazivRobe>

<CenaRobe>50</CenaRobe>

</Proizvodjac>

</SpisakProizvodjaca>

6.2.2. JSON

Java Script Object Notation ili JSON je format otvorenog standardnog formata

koji koristi čoveku-čitljiv tekst kako bi slao objekte podataka. Sastoji se od

atribut-vrednost parova i tipa podatka - nizovi. Predstavlja uobičajeni format

podatka za asinhronu komunikaciju (web browser-server). Predstavlja zamenu

za XML. JSON je format podataka nezavisan od programskog jezika. Mnogi

programski jezici uključuju naredbe za generisanje i parsiranje (izdvajanje

elemenata) JSON formatiranih podataka. Ekstenzija fajla je “*.json”. Douglas

Crockford je osmislio JSON format ranih 2000tih.

Primer JSON fajla (Google Maps):

{"markers": [

{

Page 38: TEHNIČKI FAKULTET „MIHAJLO PUPIN“ - tfzr.uns.ac.rs Tehnologije distribuiranih... · Distribuirani sistemi se mogu podeliti na: • Distribuirani računarski sistemi (“Distributed

"point":new GLatLng(40.266044,-74.718479),

"homeTeam":"Lawrence Library",

"awayTeam":"LUGip",

"markerImage":"images/red.png",

"information": "Linux users group meets second

Wednesday of each month.",

"fixture":"Wednesday 7pm",

"capacity":"",

"previousScore":""

},

{

"point":new GLatLng(40.211600,-74.695702),

"homeTeam":"Hamilton Library",

"awayTeam":"LUGip HW SIG",

"markerImage":"images/white.png",

"information": "Linux users can meet the first Tuesday

of the month to work out harward and configuration issues.",

"fixture":"Tuesday 7pm",

"capacity":"",

"tv":""

},

{

"point":new GLatLng(40.294535,-74.682012),

"homeTeam":"Applebees",

"awayTeam":"After LUPip Mtg Spot",

"markerImage":"images/newcastle.png",

"information": "Some of us go there after the main

LUGip meeting, drink brews, and talk.",

"fixture":"Wednesday whenever",

"capacity":"2 to 4 pints",

"tv":""

},

] }

Page 39: TEHNIČKI FAKULTET „MIHAJLO PUPIN“ - tfzr.uns.ac.rs Tehnologije distribuiranih... · Distribuirani sistemi se mogu podeliti na: • Distribuirani računarski sistemi (“Distributed

6.3. Distribuirane baze podataka

6.3.1. Pojam i osnovni mehanizmi distribuiranih baza podataka

Distribuirane baze podataka su baze podataka gde uređaji na kojima su

uskladištene nisu povezani na zajednički procesor. Mogu biti čuvane na više

računara, smeštenih na jednoj fizičkoj lokaciji ili mogu biti smeštene na

računarima na širem prostoru i povezane računarskom mrežom. Distribuirane

baze podataka unapređuju performanse u odnosu na korisnika sistema,

omogućujući da se transakcije izvršavaju na više mašina, umesto da se

izvršavaju na jednoj mašini. Neke od osnovnih tehnika rada sa distribuiranim

bazama podataka obuhvataju:

Upravljanje katalogom distribuirane baze podataka

Distribuirane transakcije

Upiti nad distribuiranim bazama podataka

Particionisanje baze podataka

Replikacija podataka

Oporavak baze podataka

Sinhronizacija podataka

6.3.2. Sistemi za upravljanje distribuiranim bazama podataka

Sistem za upravljanje bazom podataka (Database management system DBMS)

je softverska aplikacija koja razmenjuje podatke sa korisnicima i drugim

aplikacijama kako bi se omogućila specifikacija, smeštanje, ažuriranje i

analiziranje baze podataka. DBMS opšte namene omogućava definiciju,

kreiranje, postavljanje upita, izmene i administraciju baza podataka.

Najpoznatiji DBMS su MySQL, PostreSQL, MongoDB, Microsoft SQL Server,

Oracle, IBM DB2. Baza podataka generalno nije portabilna kroz raznorodne

DBMS sisteme, ali različiti DBMS podržavaju interoperabilnost (razmenu

podataka) raznorodnih DBMS sistema korišćenjem standarda – SQL, ODBC,

JDBC. Standardi ODBC i JDBC omogućavaju da jedna aplikacija radi sa

različitim DBMS. DBMS sistemi se najčešće klasifikuju u odnosu na model

podataka koji podržavaju. Najšire rasprostranjen model podataka kod većeg

broja DBMS je relacioni model.

Page 40: TEHNIČKI FAKULTET „MIHAJLO PUPIN“ - tfzr.uns.ac.rs Tehnologije distribuiranih... · Distribuirani sistemi se mogu podeliti na: • Distribuirani računarski sistemi (“Distributed

Danas je razvoj distribuiranih DBMS u velikoj ekspanziji, zasnivajući se i na

drugim modelima podataka – nestrukturirani podaci, NoSQL DBMS, XML baze

podataka…

Neki primeri distribuiranih DBMS:

Aerospike, Cassandra, Clusterpoint, ClustrixDB, Couchbase, FoundationDB, N

uoDB, Riak ...

6.3.3. Katalog distribuirane baze podataka

Katalog je sistemska baza podataka koja sadrži podatke o baznim relacijama,

pogledima, indeksima, korisnicima itd, a u slučaju distribuiranog sistema, i o

načinu rada sa distribuiranim bazama podataka i lokacijama na koje su podaci

razdeljeni ili ponovljeni. Sam katalog u distribuiranom sistemu može biti

centralizovan (samo na jednoj lokaciji), potpuno ponovljen (na svim

lokacijama po jedna kopija kataloga), particionisan (na svakoj lokaciji je deo

kataloga koji se odnosi na objekte sa te lokacije) ili kombinovan (katalog je

particioniran, ali na jednoj lokaciji postoji i centralna kopija kompletnog

kataloga).

6.3.4. Distribuirane transakcije

Distribuirana transakcija je transakcija nad distribuiranim bazama podataka,

koje se nalaze na više različitih čvorova (host mašina) u računarskoj mreži.

Najčešće host za pojedinačni segment distribuirane baze podataka obezbeđuje

transakcione resurse, ali postoji transakcioni menadžer koji je odgovoran za

kreiranje i upravljanje globalnom transakcijom koja uključuje sve operacije

nad pojedinačnim bazama podataka svih pripadajućih hostova. Distribuirane

transakcije, kao i sve transakcije, moraju imati sve četiri ACID (Atomarnost,

Konzistentnost- Consistency, Izolacija, Trajnost – Durability) osobine. Pod

distribuiranom transakcijom se može smatrati transakcija nad bazom

podataka koja mora biti sinhronizovana (obezbeđujući ACID) između više baza

podataka koje učestvuju i koje su distribuirane na različitim fizičkim

lokacijama. Karakteristika atomarnosti govori o procesu transakcije kao “sve

ili ništa”. Izolacija se odnosi na potrebu serijalnost bude očuvana, pa se

primenjuje dvofazno zaključavanje zbog kontrole konkuretnosti. Uobičajeni

algoritam koji omogućava korektno izvršavanje distribuiranih transakcija je

dvofazna potvrda (commit). Distribuirane transakcije se mogu izvršavati i u

Page 41: TEHNIČKI FAKULTET „MIHAJLO PUPIN“ - tfzr.uns.ac.rs Tehnologije distribuiranih... · Distribuirani sistemi se mogu podeliti na: • Distribuirani računarski sistemi (“Distributed

sistemima koje koriste web servise. Distribuirane transakcije mogu biti “brze” i

“long-lived” (situacija kod uključivanja web servisa). Neke od savremenih

tehnologija (Enterprise Java Beans - EJBs), Microsoft Transaction

Server (MTS)) u potpunosti podržavaju standard distribuiranih transakcija.

Distribuirana transakcija u Visual studio NET okruženju podržana je u okviru

standardne biblioteke System.Transactions (počev od 4.5 verzije .NET

frameworka). Nakon uključivanja ove biblioteke, moguće je koristiti klasu

TransactionScope, koja upravlja svim drugim transakcijama nad pojedinačnim

bazama podataka koje pripadaju skupu distribuiranih baza podataka.

Primer koda dat je u nastavku. Suština je u instanciranju Transaction Scope

objekta, korišćenju using oblasti i naredbe koja radi COMMIT nad svim

pojedinačnim izvršenim operacijama nad različitim bazama podataka, a to je

naredba: scope.Complete();

using (TransactionScope scope = new TransactionScope())

{

using (SqlConnection connection1 = new

SqlConnection(connectString1))

{

connection1.Open();

int returnValue1 = 0;

SqlCommand command1 = new SqlCommand(commandText1,

connection1);

returnValue1 = command1.ExecuteNonQuery();

using (SqlConnection connection2 = new

SqlConnection(connectString2))

{

connection2.Open();

int returnValue2 = 0;

Page 42: TEHNIČKI FAKULTET „MIHAJLO PUPIN“ - tfzr.uns.ac.rs Tehnologije distribuiranih... · Distribuirani sistemi se mogu podeliti na: • Distribuirani računarski sistemi (“Distributed

SqlCommand command2 = new SqlCommand(commandText2,

connection2);

returnValue2 = command2.ExecuteNonQuery();

}

}

scope.Complete();

} // using

6.3.5. Upiti nad distribuiranim bazama podataka u .NET okruženju

Distribuirani upiti pristupaju podacima iz više izvora podataka, koji čak mogu

biti i heterogeni. Izvori podataka mogu biti na istom ili na različitim

računarima. Microsoft SQL Server podržava distribuirane upite koristeći OLE

DB biblioteku u okviru Visual Studio .NET. Korisnici SQL Servera mogu da

koriste distribuirane upite da bi pristupili:

Distribuiranim podacima koji su smešteni na više instanci SQL Servera.

Heterogenim podacima koji su smešteni na različitim relacionim i

nerelacionim izvorima podataka, kojima se pristupa koristeći OLE DB

provajder. OLEDB provajderi daju mogućnost korišćenja podataka u

tabelarnoj formi memorijskih kolekcija redova (“rowsets”), kojima se

može pristupati putem Transact-SQL naredbi, kao da su SQL Server

naredbe.

6.3.6. Particionisanje baze podataka

Particionisanje je podela logičke celine baze podataka na različite nezavisne

elemente (koji mogu biti smešteni na fizički različitim lokacijama).

Particionisanje baze podataka se realizuje u cilju unapređenja upravljanja

podacima, performansi, dostupnosti podataka i balansiranje učitavanja (load

balancing).

Primenu particionisanja moguće je realizovati u okviru distribuiranih DBMS.

Svaka particija može biti postavljena na jednu ili više čvorova, a korisnici

pojedinačnog čvora mogu da izvršavaju lokalne transakcije nad jednom

particijom, čime se povećava dostupnost i bezbednost podataka.

Razlikujemo dve najčešće korišćene metode particionisanja:

1. Horizontalno particionisanje, gde se određeni zapisi čuvaju u bazi podataka

koja se odnosi na podskup svih zapisa, a razvrstavanje se vrši prema nekom

kriterijumu (npr. ukoliko određeni podatak pripada nekoj listi ili opsegu

Page 43: TEHNIČKI FAKULTET „MIHAJLO PUPIN“ - tfzr.uns.ac.rs Tehnologije distribuiranih... · Distribuirani sistemi se mogu podeliti na: • Distribuirani računarski sistemi (“Distributed

podataka onda se snima u jednu bazu podataka, a ako pripada drugom

opsegu ili listi, snima se u drugu bazu podataka).

2. Verikalno particionisanje, gde se struktura tabele deli vertikalno, tj. jedan

deo kolona strukture relacione tabele se čuva u jednoj bazi podataka, a druga

baza podataka sadrži drugi deo kolona celovite strukture tabele. Kriterijum za

vertikalnu podelu može biti frekvencija pristupa i izmene podataka, pa bi se

mogli odvojiti frekventno korišćeni od manje frekventno korišćenih podataka.

6.3.7. Replikacija podataka

Replikacija podrazumeva deljenje informacija koje obezbeđuje konzistentnost

između redundantnih resursa (hardverskih ili softverskih komponenti), kako bi

se unapredila pouzdanost, tolerancija na greške i mogućnost pristupa.

Redundansa podrazumeva ponavljanje istih podataka na više mesta ili

lokacija.

Replikacija uključuje specijalizovani softver koji prati promene u distribuiranoj

bazi podataka. Jednom kada su promene identifikovane, replikacioni proces

usaglašava podatke u svim distribuiranim bazama podataka. Dupliciranjem

podataka identifikuje se glavna (master) baza podataka i kopiraju se svi

podaci u drugu bazu podataka (duplicira se baza podataka). Korisnici menjaju

samo podatke u master bazi podataka, a dupliciranjem se pravi rezervna

kopija podataka.

Razlikujemo:

Replikaciju podataka – ako su isti podaci smešteni na više različitih

skladišnih uređaja,

Replikaciju procesiranja – kada se isti zadatak procesiranja izvršava više

puta.

Vrste replikacije podataka:

Aktivna replikacija – svaka izmena se procesira na sve replike

istovremeno.

Pasivna replikacija – svaka izmena se odražava na jednu repliku, a na

osnovu nje naknadno i na ostale replike.

Treba razlikovati replikaciju i bekap podataka. Kod bekapa podataka

povremeno se snimaju podaci kao rezervna kopija i čuva se kopija podataka

duže vremena neizmenjena. Kod replikacije podrazumevaju se frekventne

izmene i usklađivanje podataka.

Page 44: TEHNIČKI FAKULTET „MIHAJLO PUPIN“ - tfzr.uns.ac.rs Tehnologije distribuiranih... · Distribuirani sistemi se mogu podeliti na: • Distribuirani računarski sistemi (“Distributed

6.3.8. Oporavak distribuirane baze podataka

Oporavak podataka je process spasavanja (vraćanja) izgubljenih ili oštećenih

podataka na osnovu sekundarnog medija na kom su podaci snimljeni. Podaci

mogu biti oštećeni ili obrisani zbog softverskih ili hardverskih razloga, a takođe

mogu biti i nedostupni zbog kriptovanja.

Kada su u pitanju distribuirane baze podataka, zbog replikacije podataka

moguće je kasnije nadoknaditi podatke u nekoj od particionisanih baza

podataka koja je u nekom trenutku nedostupna. Nadoknađivanje podataka se

vrši upisom nedostajućih podataka ili ažuriranjem postojećih podataka novim

vrednostima koje su prisutne na ostalim fragmentima.

6.3.9. Aplikativni sloj za rad sa podacima – DAL klase

Sloj za pristup podacima (Data Access Layer - DAL) je sloj računarskog

programa koji obezbeđuje jednostavniji pristup podacima koji su smešteni u

okviru nekog trajnog skladišta podataka (persistent storage), npr. u okviru

relacione baze podataka ili fajl sistema. DAL čine klase koje obezbeđuju

podatke iz npr. baze podataka, a koje mogu pristupati podacima pozivom

stored procedura iz baze podataka. DAL sakriva kompleksnost skladištenja

podataka, a može da sadrži upite i nad više različitih izvora podataka i više

baza podataka. DAL može biti zavisan od konkretnog DBMS (sistema za

upravljanje bazom podataka), odnosno servera baze podataka ili nezavisan.

DAL koji podržava više različitih tipova DBMS (ili je univerzalan u tom smislu)

je lakši za održavanje, jer se lako izvrši izmena podrške konkretnom DBMS,

dok ostali elementi ostaju nepromenjeni. Alati ORM (Object-Relational

Mapping) tipa omogućavaju Active record model, tj. arhitekturni patern, gde

se tabele iz baze podataka mapiraju u objekte relacionog modela i svaka

promena nad objektima automatski povlači izmene u podacima u bazi

podataka.

Page 45: TEHNIČKI FAKULTET „MIHAJLO PUPIN“ - tfzr.uns.ac.rs Tehnologije distribuiranih... · Distribuirani sistemi se mogu podeliti na: • Distribuirani računarski sistemi (“Distributed

7. SLOJ APLIKATIVNE LOGIKE

7.1. Middleware

Middleware je računarski softver koji obezbeđuje servise softverskim

aplikacijama van onih koje su na raspolaganju od strane operativnog sistema.

Middleware olakšava softverskim developerima da implementiraju

komunikaciju i ulaz-izlaz, kako bi se mogli fokusirati na specifične namene

njihovih aplikacija. Termin je najčešće korišćen u značenju softvera koji

omogućuje komunikaciju i upravljanje podacima u distribuiranim aplikacijama.

Middleware je definisan i kao “servisi koji su iznad transportnog sloja OSI

modela, ali ispod aplikacionog okruženja, odnosno aplikacionog API nivoa). U

ovom specifičnom smislu, middleware povezuje klijent i server, odnosno dva

peer-a u peer-to-peer vezi. Middleware se takođe definiše i kao softverski sloj

koji je između operativnog sistema i aplikacija na svakoj strani distribuiranog

sistema u mreži. Servisi koji pripadaju middleware uključuju integraciju

poslovnih aplikacija (Enterprise application integration), integraciju podataka,

middleware orjentisan na poruke (Message oriented middleware), object

request brokers (ORBs) i enterprise service bus (ESB).

7.2. Sloj radnih tokova (Workflow management systems)

Sistem za upravljanje radnim tokovima obezbeđuje infrastrukturu za

definisanje, funkcionisanje i monitoring definisanog niza zadataka, uređenih u

aplikaciju koja prati i podržava radne tokove. Sistem za upravljanje radnim

tokovima je zasnovan na modelu kojim se definišu zadaci kao čvorovi i njihova

međusobna povezanost. Zadaci se aktiviraju ukoliko su uslovi njihove

međusobne povezanosti sa drugim zadacima ispunjeni. Teorijska osnova

upravljanja radnim tokovima je teorija grafova i petrijeve mreže. Upravljanje

radnim tokovima implementira se kroz softversku podršku koja najčešće

uključuje primenu web servisa. Aktuelni su standardi za definisanje načina

povezivanja web servisa za primenu u podršci radnim tokovima. Posebno

definisan jezik Web Services Business Process Execution Language

(WS-BPEL) predstavlja standardni jezik za specifikaciju akcija u okviru

poslovnih procesa koji se realizuju putem web servisa.

Page 46: TEHNIČKI FAKULTET „MIHAJLO PUPIN“ - tfzr.uns.ac.rs Tehnologije distribuiranih... · Distribuirani sistemi se mogu podeliti na: • Distribuirani računarski sistemi (“Distributed

7.3. Poslovni entiteti

Poslovni entitet je objekat u okviru višeslojne objektno-orjentisane softverske

aplikacije koji razmenjuje podatke sa slojem podataka i slojem poslovne

logike. Opisuju entitete rečnika poslovnog domena i omogućavaju

implementaciju poslovne logike.

7.4. Sistem za upravljanje poslovnim pravilima

Sistemi za upravljanje poslovnim pravilima (BRMS – business rule

management system) je softverski sistem koji se koristi za definisanje,

postavljanje, izvršavanje, monitoring i održavanje različitih elemenata logike

odlučivanja koje se koriste u softverskim sistemima podrške organizacijama ili

preduzećima. Logika odlučivanja uključuje poslovna pravila, politike, zahteve,

uslovne rečenice koje se koriste kako bi se utvrdile taktičke akcije koje bi se

primenile u aplikacijama i sistemima. Osnovna arhitektura BRMS sistema

minimalno mora sadržavati:

Skladište (repozitorijum) gde će biti smešteni elementi logike

odlučivanja, izdvojeni iz programskog koda jezgra softverske aplikacije,

Alati kojima se definiše i održavaju elementi logike odlučivanja,

Izvršno okruženje (Business Rules Engine), koje omogućava aplikaciji da

pokreće i izvršava logiku odlučivanja koja se nalazi u BRMS.

Prednosti korišćenja BRMS sistema odnose se na smanjivanje zavisnosti

organizacionih jedinica od IT odeljenja kada su u pitanju promene pravila

poslovanja, povećan nivo kontrole nad logikom odlučivanja, unapređenje

preciznosti odlučivanja i efikasnosti zbog automatizacije odlučivanja.

7.5. Web servisi

Prema W3C (WWW consortium), web servis je definisan kao softverski sistem

koji je dizajniran da podrži interoperabilnu interakciju mašine sa mašinom

posredstvom računarske mreže. Prilikom komunikacije koriste se standardi

World Wide Web-a, kao što je HTTP. Za razmenu podataka između web

servisa i aplikacije (ili drugog web servisa) koja koristi taj web servis koriste

se formati datoteka kao što su XML i JSON.

U okviru Visual studio .NET okruženja, web servis je poseban tip projekta.

Kreiranjem ovog projekta, automatski se web servis kreira kao klasa, koja

nasleđuje generičku klasu tipa web servisa. Funkcionalnost web servisa

opisuje se kroz javne metode koje ova klasa daje na korišćenje javnosti. Web

Page 47: TEHNIČKI FAKULTET „MIHAJLO PUPIN“ - tfzr.uns.ac.rs Tehnologije distribuiranih... · Distribuirani sistemi se mogu podeliti na: • Distribuirani računarski sistemi (“Distributed

servis se može dodati u okviru projekta ASPX web aplikacije u Visual Studio

.NET okruženju tako što se najpre mora pokrenuti. Aktivan URL web servisa

dodaje se kao „Service Reference“ u okviru projekta ASPX web aplikacije.

7.5.1. SOAP i REST web servisi

SOAP (Simple Object Access Protocol) je protocol kojim se specificira razmena

strukturiranih informacija u implementaciji web servisa u računarskim

mrežama. Ovaj protocol promoviše proširivost, neutralnost i nezavisnost od

konkretnih tehnologija. Koristi XML kao format za razmenu poruka izasniva se

na protokolima aplikacionog sloja OSI modela, kao što je HTTP. SOAP

omogućava izvršavanje web servisa na različitim operativnim sistemima, s

obzirom da je zasnovan na HTTP koji je podržan na svim operativnim

sistemima.

Representational state transfer (REST) ili RESTful Web servisi su jedan od

načina obezbeđivanja interoperabilnosti između računarskih sistema i

interneta. Termin representational state transfer je prvi put definisan 2000.

Godine u doktorskoj disertaciji Roy Fieldinga. Rest-bazirani web servisi

omogućavaju “stateless” operacije za tekstualnu reprezentaciju web resursa.

Na ovaj način, REST omogućava bolje performance izvršavanja (brži rad),

pouzdanost i ponovnu iskoristivost komponenti.

SOAP I REST web servisi se razlikuju prema:

Page 48: TEHNIČKI FAKULTET „MIHAJLO PUPIN“ - tfzr.uns.ac.rs Tehnologije distribuiranih... · Distribuirani sistemi se mogu podeliti na: • Distribuirani računarski sistemi (“Distributed

7.5.2. Uređivanje web servisa za podršku poslovnim procesima

Web servisi se koriste u okviru određenog sistema putem kompozicije web

servisa. Kompozicija može biti:

- Koreografija – opisuje uređenje web servisa u određeni redosled i uslove

pod kojim se razmenjuju podaci između web servisa. Koordinacija web

servisa iz globalne perspektive sa više učesnika, bez centralnog

kontrolera.

- Orkestracija – automatsko uređivanje, koordinacija i upravljanje

računarskim sistemima, middleware i servisima, koje treba da bude u

skladu sa zahtevima poslovanja. Definiše pogled pojedinačnog učesnika

na celinu. U okviru „cloud computing“ koristi se orkestrator koji upravlja

celinom.

Page 49: TEHNIČKI FAKULTET „MIHAJLO PUPIN“ - tfzr.uns.ac.rs Tehnologije distribuiranih... · Distribuirani sistemi se mogu podeliti na: • Distribuirani računarski sistemi (“Distributed

8. PREZENTACIONI APLIKATIVNI SLOJ

8.1. Prezentacioni sloj višeslojne softverske arhitekture

Prezentacioni sloj višeslojne softverske arhitekture zadužen je predstavljanje

podataka korisniku, kao i za neposredni prijem komandi korisnika u toku

korišćenja aplikacije. Osnovne funkcije obuhvataju formatiranje i

predstavljanje podataka, kao i organizaciju dostupnosti funkcija kroz

personalizaciju funkcija različitim tipovima korisnika. Strukture podataka služe

za prijem i predstavljanje podataka i mogu se značajno razlikovati u odnosu

na strukture podataka koje se nalaze u poslovnom sloju i sloju podataka.

Posebne klase objektno-orjentisane implementacije obezbeđuju odgovarajuće

strukture podataka, kao i funkcije prikaza i organizacije funkcija, odnosno

prijema komandi sa korisničkog interfejsa. Te klase mogu biti univerzalne, pa

se mogu koristiti u implementaciji različitih tipova korisničkih interfejsa

(desktop, web, mobilne aplikacije). Takođe, ovom sloju pripadaju I standardne

klase za grafičko uređenje korisničkog interfejsa.

8.2. Web aplikacije

Web aplikacija je softverska aplikacija realizovana po klijent-server modelu,

gde se klijentska aplikacija izvršava u okviru web browsera, na osnovu

procesiranja koje se realizuje na serveru. Web aplikacija se postavlja (hostuje)

na serverski računar koji mora imati instaliran program koji će da procesira

naredbe same aplikacije i priprema prikaz koji se prezentuje klijentu. Takvi

programi su web serveri.

Mobilne web aplikacije - Web aplikacije se mogu koristiti i u okviru web

browsera koji su instalirani na mobilnom uređaju. Pri tome se mora voditi

računa da sama web aplikacija koja se postavlja na web server bude

prilagodljiva (“responsive web design”) za prikaz na malim ekranima i da

može da se koristi na “touch” ekranima.

8.3. Mobilne aplikacije

Mobilna aplikacija je softver koji je dizajniran da se izvršava na mobilnim

uređajima, kao što su smart telefoni i tablet računari. Mobilne aplikacije mogu

biti instalirane u okviru pripreme za korišćenje kod proizvodnje, naknadno

instalirane ili se mogu koristiti web aplikacije koje u okviru web browsera

Page 50: TEHNIČKI FAKULTET „MIHAJLO PUPIN“ - tfzr.uns.ac.rs Tehnologije distribuiranih... · Distribuirani sistemi se mogu podeliti na: • Distribuirani računarski sistemi (“Distributed

mobilnog uređaja imaju procesiranje klijentske strane (npr. putem Java

skripta). Razvoj aplikacija za mobilne uređaje zahteva uzimanje u obzir

ograničenja i karakteristika ovih uređaja. Mobilni uređaji se napajaju sa

baterije i zato imaju manje moćne procesore nego personalni računari, ali zato

imaju i dodatne karakteristike, kao što je detekcija lokacije. Developeri treba

da uzmu u obzir širok spektar veličina ekrana, hardverskih specifikacija i

konfiguracija, kao i intenzivnu konkurenciju mobilnog softvera i promena koje

se odnose na različite platforme. Razvoj mobilnih aplikacija zahteva korišćenje

specijalizovanih razvojnih okruženja. Mobilne aplikacije se prvo testiraju

korišćenjem emulatora, a tek onda se testiraju na samom uređaju. Kod

razvoja mobilnih aplikacija, dizajn korisničkog interfejsa je takođe važan, pri

čemu je bitno da bude olakšana manipulacija sistemom. Korisnički interfejs

(front-end) zavisi od programske logike (back-end) kako bi se podržao

udaljeni pristup informacionom sistemu organizacije. Mobilni back-end

uključuje: data routing, security, authentication, authorization, working off-

line i orkestraciju servisa. Ova funkcionalnost je podržana kombinovanjem

komponenti srednjeg sloja koje obuhvataju: mobile app servers, Mobile

Backend as a service (MBaaS) i SOA.

8.3.1. Programski jezici i razvojni alati za razvoj mobilnih aplikacija

Razvoj mobilnih aplikacija uključuje više slojeva:

1. Front-end (dizajn korisničkog interfejsa, servisi za pristup uređaju i

prilagođavanje različitim platformama:

- Programski jezici: C, C++, C#, Java, HTML, Java Script, CSS,

Objective-C, Ruby, Action Script

- Razvojni alati: Eclipse, Intelli J, Android Studio, BlackBerry JDE, Visual

Studio, Xcode, Xamarin Studio

2. Back-end (autorizacija korisnika, servisi sa podacima, poslovna logika)

- Programski jezici: C#, Java, Java Script, VB.NET, Objective-C,

ActionScript, XML, HTML, Ruby on Rails

- Razvojni alati: Eclipse, GO!AppZone Studio, Visual Studio, IntelliJ

3. Bezbednosni sloj (uključivanje aplikacija u sigurnosni sistem, enkripcija

podataka, izveštavanje i statistika)

Kriterijum za izbor razvojne platforme uključuje ciljnu mobilnu platformu:

Page 51: TEHNIČKI FAKULTET „MIHAJLO PUPIN“ - tfzr.uns.ac.rs Tehnologije distribuiranih... · Distribuirani sistemi se mogu podeliti na: • Distribuirani računarski sistemi (“Distributed

- Univerzalni pristup različitim platformama: HTML, CSS, Java Script za

korisnički interfejs web aplikacije koja se pokreće putem web browsera

- Izvorne (native) mobilne aplikacije koje se direktno izvršavaju na

samom mobilnom uređaju:

o Android operativni sistem – Eclipse IDE (razvojno okruženje) sa

Android Developer Tools (ADT) plugin, programski jezik Java

o Apple iOS razvoj - Xcode IDE sa Objective-C ili Swift

programskim jezikom

o Windows i BlackBerry – imaju svoja razvojna okruženja.

Savremeni razvojni okviri (framework) uključuju alate koji podržavaju različite

platforme i programske jezike -React Native, Flutter,Xamarin.

Testiranje mobilnih aplikacija – prvo se testiraju u okviru emulatora koji su uz

razvojno okruženje, a kasnije se postavljaju na uređaje radi testiranja. Neki

od emulatora su: Google Android Emulator , Android SDK Emulator ,

MobiOne Developer, BlackBerry Simulator, TestiPhone.

8.3.2. Responsive web design

Responsive web design (RWD) je pristup koji omogućava da se web stranice

prikazuju kvalitetno na različitim uređajima i veličinama ekrana. Web sajt koji

je dizajniran u skladu sa RWD adaptira svoj izgled u odnosu na okruženje u

kom se prikazuje, koristeći razne tehnike, kao što su:

- fluidni grid - podešavanja dimenzija elemenata stranice u procentima,

umesto u fiksnim jedinicama kao što su pikseli

- fleksibilne slike - dimenzije slika se takođe skalira u skladu sa relativnim

jedinicama mere

- CSS medija upiti - medija upiti omogućavaju da se primenjuju različiti CSS

stilovi bazirano na karakteristikama uređaja na kom se prikazuju.

Page 52: TEHNIČKI FAKULTET „MIHAJLO PUPIN“ - tfzr.uns.ac.rs Tehnologije distribuiranih... · Distribuirani sistemi se mogu podeliti na: • Distribuirani računarski sistemi (“Distributed

9.PRIMENE

9.1. Internet of Things

Termin “Internet of Things” prvi je predložio Kevin Ashton 1999. godine.

Internet of things (IoT) predstavlja povezivanje fizičkih uređaja, vozila, zgrada

i drugih elemenata koristeći integrisanu elektroniku, softver, senzore,

aktuatore i mrežne konekcije koje omogućavaju da ovi objekti (uređaji, vozila,

zgrade i drugo) prikupljaju i razmenjuju podatke. Tehnički, IoT se zasniva na

podršci senzorskih mreža koje omogućavaju remote sensing/control i

Interneta.

U 2013. godini Global Standards Initiative on Internet of Things (IoT-GSI)

definisala je IoT kao "a global infrastructure for the information society,

enabling advanced services by interconnecting (physical and virtual) things

based on existing and evolving interoperable information and communication

technologies" and for these purposes a "thing" is "an object of the physical

world (physical things) or the information world (virtual things), which is

capable of being identified and integrated into communication networks". IoT

omogućava da objekti budu udaljeno nadgledani i kontrolisani putem mrežne

infrastructure, koristeći mogućnosti direktnije integracije fizičkog sveta u

računarski-bazirane sisteme, rezultujući unapređivanjem efikasnosti,

preciznosti i uz ekonomske efekte zbog umanjenja potrebe za direktnom

ljudskom intervencijom.

IoT je paradigma koja je usmerena ka decentralizovanom modelu, tako da se

mogu koristiti prednosti smart hardverskih uređaja i novijih generacija

računarskih mreža i podrške, kao što je smart gateway (npr. Raspberry Pi 3,

UDOO board, esp8266) i rešenja mrežne virtualizacije (e.g. Cisco IOx, HP

OpenFlow and Middlebox Technologies). Uspeh primene IoT će zavisiti I od

inteligentnih alata i tehnika koje treba da vrše monitoring i verifikaciju

korektnog rada IoT ekosistema, koji uključuju senzore, big data

programiranje, hardverske resurse i cloud data centre.

9.2. Smart Home i smart city

Automatizacija doma ili pametna kuća (“domotics”) je concept ugrađivanja

automatizacije u kuće. Uključuje integrisane sisteme za kontrolu i

automatizaciju osvetljenja, grejanja, ventilacije, bezbednosnih sistema,

Page 53: TEHNIČKI FAKULTET „MIHAJLO PUPIN“ - tfzr.uns.ac.rs Tehnologije distribuiranih... · Distribuirani sistemi se mogu podeliti na: • Distribuirani računarski sistemi (“Distributed

klimatizacije, kao i automatizaciju kućnih uređaja – mašine za pranje veša,

šporeta, frižidera itd. Kućni uređaji, daljinski upravljani putem Interneta, čine

važnu komponentu Internet of Things. Moderni sistemi zasnivaju se na

bežičnim vezama (WiFi) i sastoje se od switch-eva i senzora koji su povezani

na centralni hub odakle je ceo sistem kontrolisan putem korisničkog interfejsa

koji realizuje upravljanje putem softvera mobilnog telefona, tablet ili web

interfejsa. Neki od najpopularnijih komunikacionih protokola koji se koriste

kod “Smart Home”: X10, Ethernet, RS-485, 6LoWPAN, Bluetooth LE

(BLE), ZigBee and Z-Wave. Postoji tri generacije automatizacije kuće:

1. Prva generacija: wireless tehnologija sa proxy serverima;

2. Druga generacija: veštačka inteligencija koja upravlja uređajima;

3. Treća generacija: Roboti koji interaguju sa ljudima.

Smart city je concept integracije informaciono-komunikacionih tehnologija i

tehnologije Internet of Things kako bi se upravljalo resursima grada. Resursi

grada obuhvataju različite javne institucije, transportne sisteme, energetske

sisteme i druge javne službe i servise. Smart city koristi urbane informacione

tehnologije kako bi se unapredila efikasnost usluga javnih službi. Primena ICT

u okviru smart city koncepta omogućava upravi grada da direktno komunicira

sa zajednicom i gradskom infrastrukturom, uz monitoring događaja u gradu i

kvaliteta života. Uz upotrebu senzora integrisanih sa monitoring sistemima u

realnom vremenu, podaci se prikupljaju od građanstva i uređaja, a zatim

procesiraju i analiziraju. Instrumentacija omogućava prikupljanje i monitoring

podataka, komunikacioni sistemi omogućavaju povezivanje i transport

podataka, data centri zasnovani na cloud tehnologiji omogućavaju smeštanje

podataka, a posebni inteligentni softveri omogućavaju analizu podataka i

predstavljaju su ključni element efikasnosti sistema smart city.

9.3. Geografski informacioni sistemi

Geografski informacioni sistem (GIS) je sistem dizajniran za akviziciju,

skladištenje, obradu, analizu, predstavljanje (vizualizaciju) i upravljanje

prostornim ili geografskim podacima. Posebna naučna disciplina “Geographic

Information Science” bavi se konceptima, aplikacijama i sistemima koji se

odnose na geografske primene informacionih sistema. GIS je širi pojam koji

uključuje širok niz tehnologija, procesa i metoda koje se odnose na

Page 54: TEHNIČKI FAKULTET „MIHAJLO PUPIN“ - tfzr.uns.ac.rs Tehnologije distribuiranih... · Distribuirani sistemi se mogu podeliti na: • Distribuirani računarski sistemi (“Distributed

inženjerstvo, menadžment, telekomunikacije i druge, a osnova predstavlja

mnoštvo lokacijski-vezanih servisa, koji se odnose na analizu i vizualizaciju

podataka. Koncept distribuiranog GIS sistema uključuje implementaciju GIS

gde sve komponente GIS sistema nisu smeštene na jednoj fizičkoj lokaciji,

(npr. u delu prikupljanja, procesiranja, baze podataka ili procesiranja

grafičkog interfejsa). Danas su široko rasprostranjena web GIS i mobilna GIS

rešenja.

Primer GIS web portala predstavlja portal Opštine Zrenjanin

(http://gis.zrenjanin.rs/).

Osnovni principi kreiranja GIS sistema je:

Rasterska grafika mape nekog prostora (npr. Orto foto snimak)

predstavlja jedan sloj, dok drugi slojevi se postavljaju iznad mape

predstavljaju vektorsku grafiku u formi linija, tačaka i poligona.

Za svaki od objekata vektorske grafike vezuju se alfanumerički podaci

koji se povezuju sa bazom podataka, a takođe i dodatne fotografije i

dokumenti.

Svrha GIS sistema je da prikaže određene važne aspekte nekog dela

prostora, uz mogućnost da se na tom prostoru prikaže i integriše više

različitih aspekata. Npr. može se predstaviti infrastruktura, građevine,

delatnosti i slično.

Page 55: TEHNIČKI FAKULTET „MIHAJLO PUPIN“ - tfzr.uns.ac.rs Tehnologije distribuiranih... · Distribuirani sistemi se mogu podeliti na: • Distribuirani računarski sistemi (“Distributed

Jedna od oblasti primene GIS predstavlja poljoprivreda. GIS aplikacije mogu

biti realizovane kao desktop rešenja, web i mobilne aplikacije. Suština primene

GIS aplikacija je u prikazu mapa i povezivanju alfanumeričkih podataka za

određene oblike ucrtane kao vektorske slike iznad mapa – poligoni, tačke,

linije i drugi oblici. U nastavku je dat ekran desktop aplikacije KNJIGA POLJA,

Firme YU team software, koju je moguće pogledati i u web verziji

www.knjigapolja.rs.

U oblasti poljoprivrede, BIOSENSE institut iz Novog Sada razvija rešenje koje

obuhvata niz tehologija: remote sensing and control, big data, artificial

intelligence, vizualizaciju podataka, obradu grafičkih podataka, satelitske

komunikacije, robotiku itd.

Page 56: TEHNIČKI FAKULTET „MIHAJLO PUPIN“ - tfzr.uns.ac.rs Tehnologije distribuiranih... · Distribuirani sistemi se mogu podeliti na: • Distribuirani računarski sistemi (“Distributed
Page 57: TEHNIČKI FAKULTET „MIHAJLO PUPIN“ - tfzr.uns.ac.rs Tehnologije distribuiranih... · Distribuirani sistemi se mogu podeliti na: • Distribuirani računarski sistemi (“Distributed

10. PRIMERI SOFTVERA

U ovom odeljku će biti dat prikaz softverskih rešenja koja se realizuju u okviru

časova vežbi.

10.1. Primer – distribucija podataka

10.2. Primer – distribucija procesiranja

Page 58: TEHNIČKI FAKULTET „MIHAJLO PUPIN“ - tfzr.uns.ac.rs Tehnologije distribuiranih... · Distribuirani sistemi se mogu podeliti na: • Distribuirani računarski sistemi (“Distributed

11. POJMOVNIK I SKRAĆENICE

OSNOVNI POJMOVI

Distribuirani sistem

Paralelno računarstvo

Distribuirano računarstvo

Distribuirani računarski sistem

- Grid

- Klaster

- Cloud

Distribuirani informacioni sistem

Distribuirani integrisani sistem

Arhitektura informacionog sistema

Klijent-server arhitektura

Višeslojna objektno-orjentisana arhitektura

- MVC pristup (Model View Controller)

- Prezentacioni sloj

Sloj poslovne logike (Middleware) – radni tokovi, poslovni entiteti, poslovna

pravila

- Sloj podataka – baze podataka, datoteke

Servisno-orjentisana arhitektura

- Web servisi

- SOAP

- REST

- Uređivanje web servisa za podršku poslovnim procesima (orkestracija)

UML modeli

- Dijagram komponenti

- Dijagram razmeštaja

Uređaji i komunikacije

- Poruka

- Protokol razmene poruka

- Asinhrona komunikacija

- Sinhrona komunikacija

- Wireless tehnologija

- Bluetooth

Page 59: TEHNIČKI FAKULTET „MIHAJLO PUPIN“ - tfzr.uns.ac.rs Tehnologije distribuiranih... · Distribuirani sistemi se mogu podeliti na: • Distribuirani računarski sistemi (“Distributed

- GPS

- Mobilni uređaji

Distribuirani operativni sistemi

- Operativni sistemi za mobilne uređaje

Interoperabilnost aplikacija

- XML

- JSON

Distribuirane baze podataka

- Sistemi za upravljanje distribuiranim bazama podataka

- Katalog distribuirane baze podataka

- Distribuirane transakcije

- Upiti nad distribuiranim bazama podataka

- Replikacija

- Participnisanje

- Oporavak baze podataka

Web aplikacije

Mobilne aplikacije

- Programski jezici

- Razvojni alati

Primene

- Internet of Things

- Smart Home

- Smart City

- Geografski informacioni sistemi

Page 60: TEHNIČKI FAKULTET „MIHAJLO PUPIN“ - tfzr.uns.ac.rs Tehnologije distribuiranih... · Distribuirani sistemi se mogu podeliti na: • Distribuirani računarski sistemi (“Distributed

12. ISPITNA PITANJA

1. Definicija distribuiranog sistema.

2. Karakteristike distribuiranih sistema.

3. Oblici (ne)transparentnosti distribuiranih sistema.

4. Ciljevi i opravdanost distribuiranih sistema.

5. Rizici i problemi razvoja i korišćenja distribuiranih sistema.

6. Razlika paralelnog, konkurentnog i distribuiranog računarstva.

7. Tipovi distribuiranih sistema.

8. Tipovi distribuiranih računarskih sistema.

9. Razlika klaster, grid i cloud sistema.

10. Karakteristike klaster sistema.

11. Karakteristike grid sistema.

12. Karakteristike cloud sistema.

13. Definicija distribuiranog informacionog sistema.

14. Razlika distribuiranog sistema i distribuiranog informacionog sistema.

15. Definicija embedded sistema.

16. Način implementacije integrisanih (embedded) sistema.

17. Princip funkcionisanja distribuiranog sistema kontrole.

18. Definicija informacionog sistema.

19. Struktura informacionog sistema.

20. Osnovne komponente arhitekture računarski-baziranih informacionog

sistema.

21. Pojam distribuiranog programiranja.

22. Tipovi arhitekture softvera u distribuiranim informacionim sistemima.

23. Vrste modela kooperacije u razmeni poruka između čvorova.

24. Karakteristike klijent-server modela kooperacije.

25. Karakteristike producer-consumer modela kooperacije.

26. Karakteristike publish-subscribe modela. kooperacije

27. Opšti pojam poruke.

28. Pojam poruke u objektnom programiranju.

29. Pojam poruke u komunikacionim sistemima.

30. Pojam paketa u komunikacionim sistemima.

31. Objasniti sinhrono i asinhrono slanje poruka.

32. Razlika slanja poruke i poziva procedure.

33. Pojam komunikacionih protokola.

Page 61: TEHNIČKI FAKULTET „MIHAJLO PUPIN“ - tfzr.uns.ac.rs Tehnologije distribuiranih... · Distribuirani sistemi se mogu podeliti na: • Distribuirani računarski sistemi (“Distributed

34. Pojam softverskog servisa.

35. Pojam distribuiranih objekata.

36. Karakteristike udaljenog pozivanja procedura (Remote procedure call).

37. Osnovni slojevi OSI modela.

38. Razlika asinhrone i sinhrone komunikacije.

39. Pojam servera kao serverskog programa.

40. Pojam servisa u deljenju resursa.

41. Ciljevi i prednosti razvoja n-tier aplikacija.

42. Slojevi troslojne softverske arhitekture.

43. Osnovni slojevi i podslojevi višeslojne softverske arhitekture.

44. Objasniti MVC.

45. Osnovne karakteristike servisno-orjentisane arhitekture.

46. Šta znači servisno-orjentisana arhitektura?

47. Osnovne karakteristike servisa u SOA.

48. Osnovni elementi SOA pristupa.

49. Koji su najvažniji UML modeli za predstavljanje distribuiranih sistema?

50. Elementi dijagrama razmeštaja.

51. Nacrtati primer dijagrama razmeštaja za web aplikaciju koja koristi bazu

podataka i web servis.

52. Nacrtati primer dijagrama komponenti za web aplikaciju koja koristi bazu

podataka i web servis.

53. Koji su sve načini implementiranja wireless tehnologija?

54. Tehnologije implementiranja wireless razmene podataka.

55. Karakteristike i namena Bluetooth tehnologije.

56. Koja su ograničenja Bluetooth razmene podataka?

57. Koja je razlika između Bluetooth i GPS uređaja?

58. Kako funkcioniše GPS?

59. Šta znači triangulacija?

60. Koliko minimum GPS satelita je potrebno da bude dostupno da bi GPS

receiver mogao da funkcioniše?

61. Karakteristike mobilnih uređaja.

62. Karakteristike distribuiranog operativnog sistema.

63. Karakteristike operativnog sistema za mobilne uređaje.

64. Navesti primere operativnih sistema za mobilne uređaje.

65. Šta znači interoperabilnost aplikacija?

66. Navesti i objasniti tipove interoperabilnosti.

Page 62: TEHNIČKI FAKULTET „MIHAJLO PUPIN“ - tfzr.uns.ac.rs Tehnologije distribuiranih... · Distribuirani sistemi se mogu podeliti na: • Distribuirani računarski sistemi (“Distributed

67. Razlika između interoperabilnosti i kompatibilnosti.

68. Koji su najčešći formati datoteka za razmenu podataka?

69. Karakteristike XML.

70. Koja je razlika između XML i JSON fajlova.

71. Navesti primer zapisa u formi XML datoteke.

72. Navesti primer zapisa u formi JSON datoteke.

73. Pojam distribuirane baze podataka.

74. Nabrojati i objasniti osnovne tehnike rada sa distribuiranim bazama

podataka.

75. Pojam i karakteristike opštih DBMS.

76. Koji standardi omogućavaju razmenu podataka između raznorodnih

DBMS.

77. Šta je katalog distribuirane baze podataka?

78. Koja je uloga kataloga distribuirane baze podataka?

79. Koja je razlika između transakcija nad jednom bazom podataka i

distribuiranih transakcija?

80. Koje su ACID osobine transakcije?

81. Šta značo dvofazna potvrda kod distribuiranih transakcija?

82. Kako se implementira distribuirana transakcija u Visual Studio NET

okruženju?

83. Kako se mogu postavljati upiti nad MS SQL Server distribuiranim bazama

podataka u Visual Studio NET okruženju?

84. Šta znači particionisanje baze podataka?

85. Koje vrste particionisanja se najčešće koriste?

86. Koja je razlika između vertikalnog i horizontalnog particionisanja?

87. Šta znači replikacija podataka?

88. Šta znači redundansa podataka?

89. Koje su vrste replikacije podataka?

90. Razlika replikacije i bekapa podataka.

91. Šta znači oporavak baze podataka?

92. Šta znači DAL?

93. Iz čega se sastoji DAL?

94. Koje su osnovne funkcije DAL?

95. Šta znači ORM i active record model?

96. Šta znači middleware?

Page 63: TEHNIČKI FAKULTET „MIHAJLO PUPIN“ - tfzr.uns.ac.rs Tehnologije distribuiranih... · Distribuirani sistemi se mogu podeliti na: • Distribuirani računarski sistemi (“Distributed

97. Koja je razlika između middleware I srednjeg aplikativnog sloja troslojne

softverske arhitekture?

98. Karakteristike sistema za upravljanje radnim tokovima.

99. Šta znači WS-BPEL?

100. Šta su poslovni entiteti?

101. Šta su BRMS?

102. Koji su elementi arhitekture BRMS sistema?

103. Definicija web servisa.

104. Koji formati datoteka se koriste za razmenu podataka između web servisa

I aplikacija (ili drugih web servisa) koji koriste njihove usluge?

105. Kako se povezuje web servis na mestu korišćenja u VS.NET okruženju?

106. Karakteristike SOAP.

107. Karakteristike REST.

108. Koja je razlika SOAP i REST web servisa?

109. Koja su 2 načina kompozicije web servisa?

110. Karakteristike koreografije web servisa.

111. Karakteristike orkestracije web servisa.

112. Razlika između koreografije i orkestracije web servisa.

113. Karakteristike prezentacionog sloja višeslojne softverske arhitekture.

114. Karakteristike web aplikacija.

115. Koji su najčešći programski jezici za razvoj mobilnih aplikacija?

116. Koji su najčešći razvojni alati za razvoj mobilnih aplikacija?

117. Pojam responsive web design.

118. Koje su najčešće tehnike koje se koriste kod responsive web dizajna?

119. Objasniti tehniku fluidni grid kod responsive web dizajna.

120. Objasniti tehniku CSS medija upiti kod responsive web dizajna.

121. Šta znači IOT – Internet of Things?

122. Na kojim tehnologijama se zasnivaju IoT sistemi?

123. Koje su osnovne karakteristike i namena Smart home?

124. Koje su osnovne karakteristike Smart City?

125. Šta znači GIS – Geografski informacioni sistem?

126. Šta je svrha GIS sistema?

127. Koji su osnovni principi kreiranja GIS sistema?

128. Šta predstavlja rasterska grafika, a šta vektorska grafika u GIS?

Page 64: TEHNIČKI FAKULTET „MIHAJLO PUPIN“ - tfzr.uns.ac.rs Tehnologije distribuiranih... · Distribuirani sistemi se mogu podeliti na: • Distribuirani računarski sistemi (“Distributed

13. LITERATURA

Udžbenici

1. George Coulouris, Jean Dollimore, Tim Kindberg, Gordon Blair:

"Distributed Systems: Concepts and Design", Addison Wesley, 2012.

2. Tanenbaum A, Van Steen M: “Distributed systems, Principles and

Paradigms”, VrijeUniversiteit, Amsterdam, Pearson Prentice Hall, 2007.

3. Ajay D. Kshemkalyani, Mukesh Singhal: "Distributed Computing,

Principles, Algorithms, and Systems", Cambridge University Press 2008

4. Mogin Pavle, Lukovic Ivan, Govedarica Miro: “Principi projektovanja baza

podataka”, Fakultet tehničkih nauka, Novi Sad, 2000.

5. Julian Proenza, Luis Almeida: Distributed Embedded Systems: An

Introduction, Nov. 2008.

6. Ljubica Kazi, Dragica Radosav: Osnove objektno-orjentisanog

programiranja sa primerima u C#, Tehnički fakultet “Mihajlo Pupin”

Zrenjanin, 2018.

Web izvori

[w1] Microsoft MSDN, trslojna i višeslojna arhitektura softvera,

https://docs.microsoft.com/en-us/previous-versions/msp-n-

p/ee658109(v=pandp.10)

Dodatna literatura

1. Journal of Parallel and Distributed Computing,

http://www.sciencedirect.com/science/journal/07437315/99

2. Distributed Computing Journal, http://link.springer.com/journal/446

3. Active distributed computing projects,

http://www.distributedcomputing.info/projects.html

4. Portal – distributed computing, http://www.distributedcomputing.info/

5. Java Distributed Computing Book, http://docstore.mik.ua/orelly/java-

ent/dist/index.htm

6. Ozsu, Valduries, Principles of Distributed Database Systems, 3.ed,

Springer, 2011. [2.ed, Prentice Hall, 1999.]

7. Helal, Heddaya, Bhargava, Replication Techniques in Distributed

Systems, Springer, 1996.