TEHNOLOGIJE DISTRIBUIRANIH INFORMACIONIH SISTEMA skripta za teorijski test.pdf · TEHNOLOGIJE...

34
UNIVERZITET U NOVOM SADU TEHNIČKI FAKULTET „MIHAJLO PUPIN“ ZRENJANIN TEHNOLOGIJE DISTRIBUIRANIH INFORMACIONIH SISTEMA - Skripta za teorijski deo – (RADNA VERZIJA) Autori: Ljubica Kazi Biljana Radulović Dalibor Dobrilović Dragica Radosav Branko Markoski Zrenjanin, 2017. Recenzenti: Prof. dr Ivana Berković Prof. dr Željko Stojanov Doc. dr Vladimir Šinik

Transcript of TEHNOLOGIJE DISTRIBUIRANIH INFORMACIONIH SISTEMA skripta za teorijski test.pdf · TEHNOLOGIJE...

Page 1: TEHNOLOGIJE DISTRIBUIRANIH INFORMACIONIH SISTEMA skripta za teorijski test.pdf · TEHNOLOGIJE DISTRIBUIRANIH INFORMACIONIH SISTEMA - Skripta za teorijski deo ... Bluetooth 4.4. GPS

UNIVERZITET U NOVOM SADU

TEHNIČKI FAKULTET „MIHAJLO PUPIN“

ZRENJANIN

TEHNOLOGIJE DISTRIBUIRANIH

INFORMACIONIH SISTEMA

- Skripta za teorijski deo –

(RADNA VERZIJA)

Autori:

Ljubica Kazi

Biljana Radulović

Dalibor Dobrilović

Dragica Radosav

Branko Markoski

Zrenjanin, 2017.

Recenzenti:

Prof. dr Ivana Berković

Prof. dr Željko Stojanov

Doc. dr Vladimir Šinik

Page 2: TEHNOLOGIJE DISTRIBUIRANIH INFORMACIONIH SISTEMA skripta za teorijski test.pdf · TEHNOLOGIJE DISTRIBUIRANIH INFORMACIONIH SISTEMA - Skripta za teorijski deo ... Bluetooth 4.4. GPS

PREDGOVOR

Publikacija je nastala kao rezultat višegodišnjeg nastavnog 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".

Posebnu zahvalnost dugujemo recenzentima na kritičkom pregledu materijala i korisnim sugestijama.

U Zrenjaninu, maja 2017. godine

Autori

Page 3: TEHNOLOGIJE DISTRIBUIRANIH INFORMACIONIH SISTEMA skripta za teorijski test.pdf · TEHNOLOGIJE DISTRIBUIRANIH INFORMACIONIH SISTEMA - Skripta za teorijski deo ... Bluetooth 4.4. GPS

SADRŽAJ

1. Definicija i karakteristike distribuiranih sistema

2. Kategorizacija distribuiranih sistema

2.1. Paralelno i distribuirano računarstvo

2.2. Tipovi distribuiranih sistema

2.2.1. Distribuirani računarski sistemi

2.2.2. Distribuirani informacioni sistemi

2.2.3. Distribuirani integrisani ("embedded") sistemi

3. Arhitektura distribuiranog informacionog sistema

3.1. Arhitektura informacionog sistema

3.2. Klijent-server arhitektura

3.3. Višeslojne objektno-orjentisane arhitekture

3.4. Servisno-orjentisane arhitekture

3.4. UML za distribuirane sisteme

4. Sloj računarsko-komunikacione infrastrukture

4.1. Sinhrona i asinhrona komunikacija

4.2. Wireless tehnologija

4.3. Bluetooth

4.4. GPS

4.5. Mobilni uređaji

5. Distribuirani operativni sistemi

5.1. Operativni sistemi za distribuirane sisteme

5.2. Operativni sistemi za mobilne uređaje

6. Sloj podataka

6.1. Interoperabilnost aplikacija i formati datoteka za razmenu podataka – JSON, XML

6.2. Distribuirane baze podataka- distribuirane transakcije, upiti nad distribuiranom bazom podataka, replikacija, particionisanje, oporavak baze

6.3. "Big data" sistemi u distribuiranom okruženju

7. Sloj aplikativne logike

7.1. Srednji sloj - Middleware

7.2. Web servisi – SOAP, REST

7.3. Algoritmi distribuirane obrade podataka

7.4. Analiza podataka u distribuiranom okruženju

8. Prezentacioni sloj

8.1. Web aplikacije

Page 4: TEHNOLOGIJE DISTRIBUIRANIH INFORMACIONIH SISTEMA skripta za teorijski test.pdf · TEHNOLOGIJE DISTRIBUIRANIH INFORMACIONIH SISTEMA - Skripta za teorijski deo ... Bluetooth 4.4. GPS

8.2. Mobilne aplikacije – programski jezici i razvojni alati

8.3. Vizualizacija prostornih podataka

9. Performanse i bezbednost

9.1. Pouzdanost podataka

9.2. Bezbednost podataka

9.3. Kvalitet sistema

10. Primene

10.1. Internet of Things - Senzorske mreže, udaljeno upravljanje uređajima

10.3. Smart home, smart city

10.4. Upravljanje vozilima

10.5. eHealth sistemi

10.6. Dokument menadžment sistemi

10.2. Geografski informacioni sistemi

10.6. Ostale primene

12. Pravci razvoja distribuiranih sistema

12.1. Standardi

12.1. Adaptibilnost distribuiranih sistema

13. Ispitna pitanja

14. Literatura

Page 5: TEHNOLOGIJE DISTRIBUIRANIH INFORMACIONIH SISTEMA skripta za teorijski test.pdf · TEHNOLOGIJE DISTRIBUIRANIH INFORMACIONIH SISTEMA - Skripta za teorijski deo ... Bluetooth 4.4. GPS

POJMOVNIK

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

- GPS

- Mobilni uređaji

Distribuirani operativni sistemi

- Operativni sistemi za mobilne uređaje

Interoperabilnost aplikacija

- XML

- JSON

Page 6: TEHNOLOGIJE DISTRIBUIRANIH INFORMACIONIH SISTEMA skripta za teorijski test.pdf · TEHNOLOGIJE DISTRIBUIRANIH INFORMACIONIH SISTEMA - Skripta za teorijski deo ... Bluetooth 4.4. GPS

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

NAPREDNE TEHNIKE

Big data sistemi

Algoritmi distribuirane obrade podataka

Analiza podataka u distribuiranom okruženju

Vizualizacija prostornih podataka

Performanse i bezbednost

- Pouzdanost podataka

- Bezbednost podataka

- Kvalitet podataka

Primene

- Upravljanje vozilima

- eHealth sistemi

- Dokument menadžment sistemi

Pravci razvoja

- Adaptibilnost distribuiranih sistema

Page 7: TEHNOLOGIJE DISTRIBUIRANIH INFORMACIONIH SISTEMA skripta za teorijski test.pdf · TEHNOLOGIJE DISTRIBUIRANIH INFORMACIONIH SISTEMA - Skripta za teorijski deo ... Bluetooth 4.4. GPS

ISPITNA PITANJA 1. Definicija distribuiranog sistema.

2. Karakteristike distribuiranih sistema.

3. Ciljevi i rizici distribuiranih sistema.

4. Oblici (ne)transparentnosti distribuiranih sistema.

5. Definicija distribuiranog informacionog sistema

6. Razlika paralelnog, konkurentnog i distribuiranog računarstva

7. Definicija distribuiranog računarstva.

8. Razlika distribuiranog sistema i distribuiranog informacionog sistema

9. Tipovi distribuiranih sistema

10. Tipovi distribuiranih računarskih sistema.

11. Razlika klaster, grid i cloud sistema.

12. Način implementacije integrisanih (embedded) sistema.

13. Osnovne komponente arhitekture računarski-baziranih informacionog sistema.

14. Tipovi arhitekture softvera u distribuiranim informacionim sistemima.

15. Pojam poruke.

16. Razmena poruka.

17. Pojam komunikacionih protokola.

18. Pojam servisa.

19. Pojam distribuiranih objekata.

20. Karakteristike klijent-server arhitekture.

21. Osnovni slojevi troslojne softverske arhitekture.

22. Osnovni slojevi višeslojne softverske arhitekture u informacionim sistemima.

23. Prednosti višeslojne softverske arhitekture.

24. Objasniti MVC pristup.

25. Osnovni slojevi OSI modela.

26. Karakteristike udaljenog pozivanja procedura (Remote procedure call).

27. Funkcije prezentacionog sloja troslojne softverske arhitekture.

28. Definicija i komponente srednjeg sloja - Middleware.

29. Osnovne karakteristike servisno-orjentisane arhitekture.

30. Šta znači servisno-orjentisana arhitektura?

31. Čemu služi web servis?

32. Kako se web servis integriše sa web aplikacijom u Visual Studio NET okruženju?

33. Koja je razlika SOAP i REST web servisa?

34. Kako se web servisi koriste za podršku poslovnim procesima?

35. Koji su najvažniji UML modeli za predstavljanje distribuiranih sistema?

36. Koja je razlika između sinhrone i asinhrone komunikacije?

37. Koji su sve načini implementiranja wireless tehnologija?

38. Koja je razlika između Bluetooth i GPS uređaja?

39. Kako funkcioniše GPS?

40. Koja su ograničenja Bluetooth razmene podataka?

Page 8: TEHNOLOGIJE DISTRIBUIRANIH INFORMACIONIH SISTEMA skripta za teorijski test.pdf · TEHNOLOGIJE DISTRIBUIRANIH INFORMACIONIH SISTEMA - Skripta za teorijski deo ... Bluetooth 4.4. GPS

41. Navesti primere operativnih sistema za mobilne uređaje.

42. Šta znači interoperabilnost?

43. Koji su najčešći formati podataka za razmenu?

44. Koja je razlika između XML i JSON fajlova, navesti primer.

45. Šta je katalog distribuirane baze podataka?

46. Koja je razlika između transakcija nad jednom bazom podataka i distribuiranih transakcija?

47. Šta znači ACID u odnosu na transakcije?

48. Kako se implementira distribuirana transakcija u Visual Studio NET okruženju?

49. Kako se mogu postavljati upiti nad distribuiranim bazama podataka?

50. Šta znači replikacija podataka?

51. Šta znači particionisanje baze podataka?

52. Koje vrste particionisanja se najčešće koriste?

53. Šta znači oporavak baze podataka?

54. Koji su najčešćći jezici za razvoj mobilnih aplikacija?

55. Koji su najčešći razvojni alati za razvoj mobilnih aplikacija?

56. Šta znači GIS – Geografski informacioni sistem?

57. Šta znači IOT – Internet of Things?

58. Koje su osnovne karakteristike Smart home?

59. Koje su osnovne karakteristike Smart City?

Page 9: TEHNOLOGIJE DISTRIBUIRANIH INFORMACIONIH SISTEMA skripta za teorijski test.pdf · TEHNOLOGIJE DISTRIBUIRANIH INFORMACIONIH SISTEMA - Skripta za teorijski deo ... Bluetooth 4.4. GPS

OSNOVNI POJMOVI – kratki odgovori

DISTRIBUIRANI SISTEM

Distribuirani sistem se može definisati kao kolekcija nezavisnih računara koji se javlja korisnicima kao jedan jedinstven (koherentan) sistem. Distribuirani

sistem je model u kojem su komponente locirane na umreženim računarima, komuniciraju i koordiniraju svoje akcije razmenom poruka. Komponente

interaguju međusobno kako bi ostvarile zajednički cilj. Tri ključne karakteristike distribuiranih sistema: konkurentnost komponenti, nedostatak globalnog

mehanizma upravljanja (global clock) i nezavisno funkcionisanje-neispravnost komponenti.

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

• “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.

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.

RIZICI I PROBLEMI DISTRIBUIRANIH SISTEMA

• Bezbednost podataka

• Privatnost podataka

OBLICI (ne)TRANSPARENTNOSTI DISTRIBUIRANIH SISTEMA

Page 10: TEHNOLOGIJE DISTRIBUIRANIH INFORMACIONIH SISTEMA skripta za teorijski test.pdf · TEHNOLOGIJE DISTRIBUIRANIH INFORMACIONIH SISTEMA - Skripta za teorijski deo ... Bluetooth 4.4. GPS

PARALELNO I KONKURENTNO 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čunarstvo, 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

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 poruka između

računara: HTTP, RPC (Remote Procedure Call) i redovi poruka (message queues).

Page 11: TEHNOLOGIJE DISTRIBUIRANIH INFORMACIONIH SISTEMA skripta za teorijski test.pdf · TEHNOLOGIJE DISTRIBUIRANIH INFORMACIONIH SISTEMA - Skripta za teorijski deo ... Bluetooth 4.4. GPS

TIPOVI DISTRIBUIRANIH SISTEMA

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

• Distribuirani informacioni sistemi

• Distribuirani integrisani (“embedded”) sistemi

TIPOVI DISTRIBUIRANIH RAČUNARSKIH SISTEMA

klaster

grid

cloud

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

Page 12: TEHNOLOGIJE DISTRIBUIRANIH INFORMACIONIH SISTEMA skripta za teorijski test.pdf · TEHNOLOGIJE DISTRIBUIRANIH INFORMACIONIH SISTEMA - Skripta za teorijski deo ... Bluetooth 4.4. GPS

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.

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.

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

Page 13: TEHNOLOGIJE DISTRIBUIRANIH INFORMACIONIH SISTEMA skripta za teorijski test.pdf · TEHNOLOGIJE DISTRIBUIRANIH INFORMACIONIH SISTEMA - Skripta za teorijski deo ... Bluetooth 4.4. GPS

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” sisteme naplaćuju korišćenje cloud sistema u zavisnosti od mogućnosti koje klijent koristi ("pay as you go").

Page 14: TEHNOLOGIJE DISTRIBUIRANIH INFORMACIONIH SISTEMA skripta za teorijski test.pdf · TEHNOLOGIJE DISTRIBUIRANIH INFORMACIONIH SISTEMA - Skripta za teorijski deo ... Bluetooth 4.4. GPS

DISTRIBUIRANI INFORMACIONI SISTEM

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.

(DISTRIBUIRANI) INTEGRISANI (EMBEDDED) SISTEM

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

ARHITEKTURA RAČUNARSKI-BAZIRANOG INFORMACIONOG SISTEMA

Informacioni sistem (IS) je organizovani sistem za prikupljanje, organizaciju, filtriranje, obradu, čuvanje i razmenu informacija 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, tj. softver koji se izvršava nad

kompjuterizovanom bazom podataka. Kompjuterski-baziran informacioni sistem je IS koji koristi računarsku tehnologiju za izvršavanje ranije planiranih

zadataka. 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 podatak I

informacija.

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

Databases- predstavljaju objedinjavanje podataka u okviru pratećih fajlova I tabela koje sadrže međusobno povezane podatke.

Networks- predstavljaju sistem veza koje omogućavaju da različiti računari I oprema razmenjuju podatke I distribuiraju resurse.

Procedures- komande kojima se kombinuju prethodno navedene komponente kako bi se proizveo željeni izlaz obradom podataka.

Naredna slika prikazuje različite tipove informacionih sistema, u zavisnosti od nivoa upravljanja organizacijom.

Page 15: TEHNOLOGIJE DISTRIBUIRANIH INFORMACIONIH SISTEMA skripta za teorijski test.pdf · TEHNOLOGIJE DISTRIBUIRANIH INFORMACIONIH SISTEMA - Skripta za teorijski deo ... Bluetooth 4.4. GPS

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: klijent-server, troslojna, višeslojna,

peer-to-peer ili kategorije: slabo ili jako povezanih sistema (loose coupling, or tight coupling).

Klijent-server arhitektura: 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.

Troslojna arhitektura: programska logika je izmeštena na srednji sloj tako da se pojednostavljuje razvoj i klijenti rasterećuju. Većina web aplikacija

je troslojna.

Višeslojna arhitektura: uključuje servise, odnosno aplikacione servere, gde se poslovna logika posebno procesira.

Peer-to-peer arhitektura: ne postoje posebni server koji obezbeđuju servise ili upravljaju mrežnim resursima. Umesto toga, odgovornosti su

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

Page 16: TEHNOLOGIJE DISTRIBUIRANIH INFORMACIONIH SISTEMA skripta za teorijski test.pdf · TEHNOLOGIJE DISTRIBUIRANIH INFORMACIONIH SISTEMA - Skripta za teorijski deo ... Bluetooth 4.4. GPS

PORUKE

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

RAZMENA PORUKA (MESSAGE PASSING)

U računarskim naukama, 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

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 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 SERVISI

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

Page 17: TEHNOLOGIJE DISTRIBUIRANIH INFORMACIONIH SISTEMA skripta za teorijski test.pdf · TEHNOLOGIJE DISTRIBUIRANIH INFORMACIONIH SISTEMA - Skripta za teorijski deo ... Bluetooth 4.4. GPS

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

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

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 (presentation tier), sloj domenske logike (domain logic tier) i sloj podataka

(data storage tier).

U objetno-orjentisanom dizajnu višeslojne arhitekture softverske podrške informacionog sistema, najčešći su slojevi:

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)

Page 18: TEHNOLOGIJE DISTRIBUIRANIH INFORMACIONIH SISTEMA skripta za teorijski test.pdf · TEHNOLOGIJE DISTRIBUIRANIH INFORMACIONIH SISTEMA - Skripta za teorijski deo ... Bluetooth 4.4. GPS
Page 19: TEHNOLOGIJE DISTRIBUIRANIH INFORMACIONIH SISTEMA skripta za teorijski test.pdf · TEHNOLOGIJE DISTRIBUIRANIH INFORMACIONIH SISTEMA - Skripta za teorijski deo ... Bluetooth 4.4. GPS

MVC pristup (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). 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. Izražava ponašanje aplikacije u smislu problemskog domena, nezavisno od korisničkog interfejsa.

Upravlja podacima, programskom logikom i pravilima koja su ugrađena u aplikaciju.

VIEW – može biti bilokoji prikaz informacija (output representation). 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.

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 generiše novi izlaz (output) koji je predstavljen korisniku, 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 20: TEHNOLOGIJE DISTRIBUIRANIH INFORMACIONIH SISTEMA skripta za teorijski test.pdf · TEHNOLOGIJE DISTRIBUIRANIH INFORMACIONIH SISTEMA - Skripta za teorijski deo ... Bluetooth 4.4. GPS

OSNOVNI SLOJEVI OSI MODELA

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 21: TEHNOLOGIJE DISTRIBUIRANIH INFORMACIONIH SISTEMA skripta za teorijski test.pdf · TEHNOLOGIJE DISTRIBUIRANIH INFORMACIONIH SISTEMA - Skripta za teorijski deo ... Bluetooth 4.4. GPS

UDALJENO POZIVANJE PROCEDURA (REMOTE PROCEDURE CALL)

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

PREZENTACIONI SLOJ TROSLOJNE SOFTVERSKE ARHITEKTURE

Prezentacioni sloj troslojne 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.

SLOJ POSLOVNE LOGIKE (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 uključuje web servere, aplikacione servere,

content menadžment sisteme I slične alate koji podržavaju razvoj i funkcionisanje aplikacija. Middleware se takođe definiše i kao softverski sloj koji je

između operativnog sistema I aplikacija na svakoj strain 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). Pod pojmom middleware podrazumevaju se i servisi za rad sa bazom podataka, kao što su: ODBC, JDBC I

drugi.

RADNI TOKOVI (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.

POSLOVNI ENTITETI

Poslovni objekat je entitet u okviru višeslojne softverske aplikacije koji razmenjuje podatke sa slojem podataka i slojem poslovne logike. Opisuju entitete

rečnika poslovnog domena I omogućavaju implementaciju poslovne logike.

Page 22: TEHNOLOGIJE DISTRIBUIRANIH INFORMACIONIH SISTEMA skripta za teorijski test.pdf · TEHNOLOGIJE DISTRIBUIRANIH INFORMACIONIH SISTEMA - Skripta za teorijski deo ... Bluetooth 4.4. GPS

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žava logika održavanja

Izvršno okruženje, koje omogućava aplikaciji da pokreće logiku odlučivanja koja se nalazi u BRMS i izvršavanje koristeći Business Rule Engine

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.

SLOJ PODATAKA

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.

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.

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

Funkcionalnost web servisa opisuje se kroz javne metode koje ova klasa daje na korišćenje javnosti. Web 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.

Page 23: TEHNOLOGIJE DISTRIBUIRANIH INFORMACIONIH SISTEMA skripta za teorijski test.pdf · TEHNOLOGIJE DISTRIBUIRANIH INFORMACIONIH SISTEMA - Skripta za teorijski deo ... Bluetooth 4.4. GPS

SOAP

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.

REST

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.

RAZLIKA SOAP I REST WEB SERVISA

SOAP I REST web servisi se razlikuju prema:

Page 24: TEHNOLOGIJE DISTRIBUIRANIH INFORMACIONIH SISTEMA skripta za teorijski test.pdf · TEHNOLOGIJE DISTRIBUIRANIH INFORMACIONIH SISTEMA - Skripta za teorijski deo ... Bluetooth 4.4. GPS

UREĐIVANJE WEB SERVISA ZA PODRŠKU POSLOVNIM PROCESIMA (ORKESTRACIJA I KOREOGRAFIJA)

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

UML MODELI ZA DISTRIBUIRANE SISTEME

Najvažniji UML (Unified modeling language) modeli koji se koriste za prikaz distribuiranih sistema su:

- Dijagram komponenti

- Dijagram razmeštaja

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

Page 25: TEHNOLOGIJE DISTRIBUIRANIH INFORMACIONIH SISTEMA skripta za teorijski test.pdf · TEHNOLOGIJE DISTRIBUIRANIH INFORMACIONIH SISTEMA - Skripta za teorijski deo ... Bluetooth 4.4. GPS

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.

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

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.

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.

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

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

Page 26: TEHNOLOGIJE DISTRIBUIRANIH INFORMACIONIH SISTEMA skripta za teorijski test.pdf · TEHNOLOGIJE DISTRIBUIRANIH INFORMACIONIH SISTEMA - Skripta za teorijski deo ... Bluetooth 4.4. GPS

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.

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.

OPERATIVNI SISTEMI ZA MOBILNE UREĐAJE

Mobilni operativni system 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, 0.1% OSes.

INTEROPERABILNOST

Interoperabilnost je karakteristika proizvoda ili sistema, čiji interfejsi mogu biti potpuno razumljivi kako bi radili zajedno sa drugim proizvodima i

sistemima u smislu interakcije i međusobne interakcije. Interoperabilnost je značajna kod razmene podatak 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 common information

exchange reference model.

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 standadi su rezultat rada konsultativne grupe

koju čine predstavnici proizvođača, istraživača I drugih zainteresovanih strana u razvoju.

XML

Extensible Markup Language (XML) je jezik označavanja (markup language) koji definiše skup pravila za formulisanje dokumenata u forma koji je čitljiv 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 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"?>

Page 27: TEHNOLOGIJE DISTRIBUIRANIH INFORMACIONIH SISTEMA skripta za teorijski test.pdf · TEHNOLOGIJE DISTRIBUIRANIH INFORMACIONIH SISTEMA - Skripta za teorijski deo ... Bluetooth 4.4. GPS

<SpisakProizvodjaca>

<Proizvodjac>

<NazivProizvodjaca>Dijamant</NazivProizvodjaca>

<NazivRobe>Margarin</NazivRobe>

<CenaRobe>100</CenaRobe>

</Proizvodjac>

<Proizvodjac>

<NazivProizvodjaca>ZitoProdukt</NazivProizvodjaca>

<NazivRobe>Suncokret</NazivRobe>

<CenaRobe>50</CenaRobe>

</Proizvodjac>

</SpisakProizvodjaca>

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": [ { "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",

Page 28: TEHNOLOGIJE DISTRIBUIRANIH INFORMACIONIH SISTEMA skripta za teorijski test.pdf · TEHNOLOGIJE DISTRIBUIRANIH INFORMACIONIH SISTEMA - Skripta za teorijski deo ... Bluetooth 4.4. GPS

"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":"" }, ] }

DISTRIBUIRANE BAZE 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. Administratori

sistema mogu da distribuiraju bazu podataka, odnosno kolekcije podataka kroz više fizičkih lokacija. Distribuirana baza podataka može da se nalazi na

organizovanoj mreži server ili decentralizovana na nezavisnim računarima na internetu, na korporativnim intranet sistemima ili računarskim mrežama

drugih organizacija. Distribuirane baze podataka unapređuju performance prema korisniku sistema, omogućujući da se transakcije izvršavaju na više

mašina, umesto da se izvršavaju na jednoj mašini. Dva su osnovna procesa koja održavaju bazu podataka ažurnom su replikacija i dupliciranje podataka.

Replikacija uključuje specijalizovani softver koji prati promene u distribuiranoj bazi podataka. Jednom kada su promene identifikovane, replikacioni process

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. Pored ovih tehnika, koristi se I tehnika fragmentacija baze podataka, kao i tehnike distribuiranih upita (upiti nad više baza podataka).

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 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 različite DBMS sistema, ali različiti DBMS podržavaju interoperabilnost (razmenu podataka) 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.

Danas je razvoj distribuiranih DBMS u velikoj ekspanziji, zasnivajući se I na drugim modelima podataka – nestrukturirani podaci, NoSQL DBMS, XML baze

podataka slično. Neki primeri distribuiranih DBMS: Aerospike, Cassandra, Clusterpoint, ClustrixDB, Couchbase, FoundationDB, NuoDB, Riak ...

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 i lokacijama na koje su podaci razdeljeni i ponovljeni. Sam katalog u distribuiranom sistemu može biti centralizovan (samo na jednoj lokaciji),

potpuno ponovljen (na svim lokacijama po jedna kopija kataloga), particioniran (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).

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

Page 29: TEHNOLOGIJE DISTRIBUIRANIH INFORMACIONIH SISTEMA skripta za teorijski test.pdf · TEHNOLOGIJE DISTRIBUIRANIH INFORMACIONIH SISTEMA - Skripta za teorijski deo ... Bluetooth 4.4. GPS

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

using (TransactionScope scope = new TransactionScope())

{

using (SqlConnection connection1 = new SqlConnection(connectString1))

{

// Opening the connection automatically enlists it in the

// TransactionScope as a lightweight transaction.

connection1.Open();

Page 30: TEHNOLOGIJE DISTRIBUIRANIH INFORMACIONIH SISTEMA skripta za teorijski test.pdf · TEHNOLOGIJE DISTRIBUIRANIH INFORMACIONIH SISTEMA - Skripta za teorijski deo ... Bluetooth 4.4. GPS

int returnValue1 = 0;

// Create the SqlCommand object and execute the first command.

SqlCommand command1 = new SqlCommand(commandText1, connection1);

returnValue1 = command1.ExecuteNonQuery();

// If you get here, this means that command1 succeeded. By nesting

// the using block for connection2 inside that of connection1, you

// conserve server and network resources as connection2 is opened

// only when there is a chance that the transaction can commit.

using (SqlConnection connection2 = new SqlConnection(connectString2))

{

// The transaction is escalated to a full distributed

// transaction when connection2 is opened.

connection2.Open();

// Execute the second command in the second database.

int returnValue2 = 0;

SqlCommand command2 = new SqlCommand(commandText2, connection2);

returnValue2 = command2.ExecuteNonQuery();

}

}

// The Complete method commits the transaction. If an exception has been thrown,

// Complete is not called and the transaction is rolled back.

scope.Complete();

} // using

UPITI NAD DISTRIBUIRANIM BAZAMA PODATAKA

Distribuirani upiti pristupaju podacima iz više izbora 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. 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.

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

Razlikuju se:

Aktivna replikacija – svaka izmena se procesira na sve replike istovremeno.

Pasivna replikacija – svaka izmena se odražava na jednu repliku, a na osnovu nje I na ostale replike.

Treba razlikovati replikaciju i bekap podataka. Kod bekapa podataka čuva se kopija podataka duže vremena neizmenjena, dok repliciranje podrazumeva

frekventne izmene i usklađivanje podataka.

Page 31: TEHNOLOGIJE DISTRIBUIRANIH INFORMACIONIH SISTEMA skripta za teorijski test.pdf · TEHNOLOGIJE DISTRIBUIRANIH INFORMACIONIH SISTEMA - Skripta za teorijski deo ... Bluetooth 4.4. GPS

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) od kojih se

sastoji. Particionisanje baze podataka se realizuje u cilju unapređenja upravljanje podacima, performance, dostupnost podataka i balansiranje učitavanja

(load balancing).

Primena particionisanja je 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 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.

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.

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.

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

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), and SOA infrastructure.

Page 32: TEHNOLOGIJE DISTRIBUIRANIH INFORMACIONIH SISTEMA skripta za teorijski test.pdf · TEHNOLOGIJE DISTRIBUIRANIH INFORMACIONIH SISTEMA - Skripta za teorijski deo ... Bluetooth 4.4. GPS

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:

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

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

SMART HOME

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, 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

Page 33: TEHNOLOGIJE DISTRIBUIRANIH INFORMACIONIH SISTEMA skripta za teorijski test.pdf · TEHNOLOGIJE DISTRIBUIRANIH INFORMACIONIH SISTEMA - Skripta za teorijski deo ... Bluetooth 4.4. GPS

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. Akvizicija podataka I analiza su ključni

elementi efikasnosti sistema.

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 inženjerstvo,

menadžment, telekomunikacije i druge, a osnova predstavlja mnoštvo lokacijski-vezanim servisima koji se odnose na analizu i vizualizaciju podataka.

Koncept distribuiranog GIS sistema uključuje implementaciju GIS gde sve komponente nisu smeštene na jednoj fizičkoj lokaciji, npr. U delu procesiranja,

baze podataka ili procesiranja grafičkog interfejsa. Primeri za distribuirani GIS su web-bazirani GIS, mobilni GIS i slično.

Page 34: TEHNOLOGIJE DISTRIBUIRANIH INFORMACIONIH SISTEMA skripta za teorijski test.pdf · TEHNOLOGIJE DISTRIBUIRANIH INFORMACIONIH SISTEMA - Skripta za teorijski deo ... Bluetooth 4.4. GPS

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.

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.