tehniČki fakultet „mihajlo pupin“ - tfzr.uns.ac.rs tehnologije distribuiranih... ·...
TRANSCRIPT
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.
Recenzenti:
Prof. dr Ivana Berković
Doc. dr Vladimir Šinik
Doc. dr Željko Stojanov
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
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
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
10.2. Primer – distribucija procesiranja ...................................................................................... 57
11. POJMOVNIK I SKRAĆENICE .......................................................................................................... 58
12. ISPITNA PITANJA .............................................................................................................................. 60
13. LITERATURA ....................................................................................................................................... 64
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
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.
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
poruka između računara: HTTP, RPC (Remote Procedure Call) i redovi poruka
(message queues).
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.
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).
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").
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
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.
Prilikom raspodele zadataka na više kontrolera dobijamo distribuirani sistem
kontrole.
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.
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
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,
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
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 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,
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).
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.
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”.
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
(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:
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).
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.
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.
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
Slika. Primer dijagrama razmeštaja za web aplikaciju koja koristi bazu
podataka i web servis ([6])
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
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.
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.
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
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": [
{
"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":""
},
] }
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.
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
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;
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
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.
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.
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.
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
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:
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.
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
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:
- 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.
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,
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
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.
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.
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
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
- 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
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.
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.
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?
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?
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.