tehnologije distribuiranih informacionih … skripta za teorijski test.pdf · tehniČki fakultet...
TRANSCRIPT
UNIVERZITET U NOVOM SADU
TEHNIČKI FAKULTET „MIHAJLO PUPIN“
ZRENJANIN
TEHNOLOGIJE DISTRIBUIRANIH
INFORMACIONIH SISTEMA
- Skripta za teorijski deo –
(RADNA VERZIJA)
Autori:
Ljubica Kazi
Biljana Radulović
Dalibor Dobrilović
Dragica Radosav
Branko Markoski
Zrenjanin, 2017.
Recenzenti:
Prof. dr Ivana Berković
Prof. dr Željko Stojanov
Doc. dr Vladimir Šinik
PREDGOVOR
Publikacija je nastala kao rezultat višegodišnjeg nastavnog i naučnog rada autora u oblasti razvoja informacionih sistema, distribuiranih informacionih
sistema, kao i geografskih informacionih sistema.
Predstavlja osnovni udžbenik za predmet DISTRIBUIRANI INFORMACIONI SISTEMI na master studijama studijskog programa "Informacione tehnologije" i
pomoćni udzbenik za predmet GEOGRAFSKI INFORMACIONI SISTEMI na master studijama studijskog programa "Informacione tehnologije u e-upravi i
poslovnim sistemima".
Posebnu zahvalnost dugujemo recenzentima na kritičkom pregledu materijala i korisnim sugestijama.
U Zrenjaninu, maja 2017. godine
Autori
SADRŽAJ
1. Definicija i karakteristike distribuiranih sistema
2. Kategorizacija distribuiranih sistema
2.1. Paralelno i distribuirano računarstvo
2.2. Tipovi distribuiranih sistema
2.2.1. Distribuirani računarski sistemi
2.2.2. Distribuirani informacioni sistemi
2.2.3. Distribuirani integrisani ("embedded") sistemi
3. Arhitektura distribuiranog informacionog sistema
3.1. Arhitektura informacionog sistema
3.2. Klijent-server arhitektura
3.3. Višeslojne objektno-orjentisane arhitekture
3.4. Servisno-orjentisane arhitekture
3.4. UML za distribuirane sisteme
4. Sloj računarsko-komunikacione infrastrukture
4.1. Sinhrona i asinhrona komunikacija
4.2. Wireless tehnologija
4.3. Bluetooth
4.4. GPS
4.5. Mobilni uređaji
5. Distribuirani operativni sistemi
5.1. Operativni sistemi za distribuirane sisteme
5.2. Operativni sistemi za mobilne uređaje
6. Sloj podataka
6.1. Interoperabilnost aplikacija i formati datoteka za razmenu podataka – JSON, XML
6.2. Distribuirane baze podataka- distribuirane transakcije, upiti nad distribuiranom bazom podataka, replikacija, particionisanje, oporavak baze
6.3. "Big data" sistemi u distribuiranom okruženju
7. Sloj aplikativne logike
7.1. Srednji sloj - Middleware
7.2. Web servisi – SOAP, REST
7.3. Algoritmi distribuirane obrade podataka
7.4. Analiza podataka u distribuiranom okruženju
8. Prezentacioni sloj
8.1. Web aplikacije
8.2. Mobilne aplikacije – programski jezici i razvojni alati
8.3. Vizualizacija prostornih podataka
9. Performanse i bezbednost
9.1. Pouzdanost podataka
9.2. Bezbednost podataka
9.3. Kvalitet sistema
10. Primene
10.1. Internet of Things - Senzorske mreže, udaljeno upravljanje uređajima
10.3. Smart home, smart city
10.4. Upravljanje vozilima
10.5. eHealth sistemi
10.6. Dokument menadžment sistemi
10.2. Geografski informacioni sistemi
10.6. Ostale primene
12. Pravci razvoja distribuiranih sistema
12.1. Standardi
12.1. Adaptibilnost distribuiranih sistema
13. Ispitna pitanja
14. Literatura
POJMOVNIK
OSNOVNI POJMOVI
Distribuirani sistem
Paralelno računarstvo
Distribuirano računarstvo
Distribuirani računarski sistem
- Grid
- Klaster
- Cloud
Distribuirani informacioni sistem
Distribuirani integrisani sistem
Arhitektura informacionog sistema
Klijent-server arhitektura
Višeslojna objektno-orjentisana arhitektura
- MVC pristup (Model View Controller)
- Prezentacioni sloj
Sloj poslovne logike (Middleware) – radni tokovi, poslovni entiteti, poslovna pravila
- Sloj podataka – baze podataka, datoteke
Servisno-orjentisana arhitektura
- Web servisi
- SOAP
- REST
- Uređivanje web servisa za podršku poslovnim procesima (orkestracija)
UML modeli
- Dijagram komponenti
- Dijagram razmeštaja
Uređaji i komunikacije
- Poruka
- Protokol razmene poruka
- Asinhrona komunikacija
- Sinhrona komunikacija
- Wireless tehnologija
- Bluetooth
- GPS
- Mobilni uređaji
Distribuirani operativni sistemi
- Operativni sistemi za mobilne uređaje
Interoperabilnost aplikacija
- XML
- JSON
Distribuirane baze podataka
- Sistemi za upravljanje distribuiranim bazama podataka
- Katalog distribuirane baze podataka
- Distribuirane transakcije
- Upiti nad distribuiranim bazama podataka
- Replikacija
- Participnisanje
- Oporavak baze podataka
Web aplikacije
Mobilne aplikacije
- Programski jezici
- Razvojni alati
Primene
- Internet of Things
- Smart Home
- Smart City
- Geografski informacioni sistemi
NAPREDNE TEHNIKE
Big data sistemi
Algoritmi distribuirane obrade podataka
Analiza podataka u distribuiranom okruženju
Vizualizacija prostornih podataka
Performanse i bezbednost
- Pouzdanost podataka
- Bezbednost podataka
- Kvalitet podataka
Primene
- Upravljanje vozilima
- eHealth sistemi
- Dokument menadžment sistemi
Pravci razvoja
- Adaptibilnost distribuiranih sistema
ISPITNA PITANJA 1. Definicija distribuiranog sistema.
2. Karakteristike distribuiranih sistema.
3. Ciljevi i rizici distribuiranih sistema.
4. Oblici (ne)transparentnosti distribuiranih sistema.
5. Definicija distribuiranog informacionog sistema
6. Razlika paralelnog, konkurentnog i distribuiranog računarstva
7. Definicija distribuiranog računarstva.
8. Razlika distribuiranog sistema i distribuiranog informacionog sistema
9. Tipovi distribuiranih sistema
10. Tipovi distribuiranih računarskih sistema.
11. Razlika klaster, grid i cloud sistema.
12. Način implementacije integrisanih (embedded) sistema.
13. Osnovne komponente arhitekture računarski-baziranih informacionog sistema.
14. Tipovi arhitekture softvera u distribuiranim informacionim sistemima.
15. Pojam poruke.
16. Razmena poruka.
17. Pojam komunikacionih protokola.
18. Pojam servisa.
19. Pojam distribuiranih objekata.
20. Karakteristike klijent-server arhitekture.
21. Osnovni slojevi troslojne softverske arhitekture.
22. Osnovni slojevi višeslojne softverske arhitekture u informacionim sistemima.
23. Prednosti višeslojne softverske arhitekture.
24. Objasniti MVC pristup.
25. Osnovni slojevi OSI modela.
26. Karakteristike udaljenog pozivanja procedura (Remote procedure call).
27. Funkcije prezentacionog sloja troslojne softverske arhitekture.
28. Definicija i komponente srednjeg sloja - Middleware.
29. Osnovne karakteristike servisno-orjentisane arhitekture.
30. Šta znači servisno-orjentisana arhitektura?
31. Čemu služi web servis?
32. Kako se web servis integriše sa web aplikacijom u Visual Studio NET okruženju?
33. Koja je razlika SOAP i REST web servisa?
34. Kako se web servisi koriste za podršku poslovnim procesima?
35. Koji su najvažniji UML modeli za predstavljanje distribuiranih sistema?
36. Koja je razlika između sinhrone i asinhrone komunikacije?
37. Koji su sve načini implementiranja wireless tehnologija?
38. Koja je razlika između Bluetooth i GPS uređaja?
39. Kako funkcioniše GPS?
40. Koja su ograničenja Bluetooth razmene podataka?
41. Navesti primere operativnih sistema za mobilne uređaje.
42. Šta znači interoperabilnost?
43. Koji su najčešći formati podataka za razmenu?
44. Koja je razlika između XML i JSON fajlova, navesti primer.
45. Šta je katalog distribuirane baze podataka?
46. Koja je razlika između transakcija nad jednom bazom podataka i distribuiranih transakcija?
47. Šta znači ACID u odnosu na transakcije?
48. Kako se implementira distribuirana transakcija u Visual Studio NET okruženju?
49. Kako se mogu postavljati upiti nad distribuiranim bazama podataka?
50. Šta znači replikacija podataka?
51. Šta znači particionisanje baze podataka?
52. Koje vrste particionisanja se najčešće koriste?
53. Šta znači oporavak baze podataka?
54. Koji su najčešćći jezici za razvoj mobilnih aplikacija?
55. Koji su najčešći razvojni alati za razvoj mobilnih aplikacija?
56. Šta znači GIS – Geografski informacioni sistem?
57. Šta znači IOT – Internet of Things?
58. Koje su osnovne karakteristike Smart home?
59. Koje su osnovne karakteristike Smart City?
OSNOVNI POJMOVI – kratki odgovori
DISTRIBUIRANI SISTEM
Distribuirani sistem se može definisati kao kolekcija nezavisnih računara koji se javlja korisnicima kao jedan jedinstven (koherentan) sistem. Distribuirani
sistem je model u kojem su komponente locirane na umreženim računarima, komuniciraju i koordiniraju svoje akcije razmenom poruka. Komponente
interaguju međusobno kako bi ostvarile zajednički cilj. Tri ključne karakteristike distribuiranih sistema: konkurentnost komponenti, nedostatak globalnog
mehanizma upravljanja (global clock) i nezavisno funkcionisanje-neispravnost komponenti.
KARAKTERISTIKE DISTRIBUIRANIH SISTEMA
• „Skup autonomnih računarskih elemenata“ - Sastoji se od komponenti koje su autonomne. Autonomne komponente moraju da „sarađuju“, ali tako
da je to sakriveno od korisnika.
• „Višeslojna arhitektura“ - Da bi se obezbedilo povezivanje heterogenih računarskih komponenti i mreža, distribuirani sistem je organizovan kroz
slojeve, čime se odvaja niži fizički nivo operativnih sistema i osnovnih komunikacionih funkcija od višeg nivoa aplikacija i korisnika. Između ta dva nivoa je
srednji sloj – middleware. Aplikativni sloj dobija isti interfejs, koji se implementira na različite načine putem komponenti.
• (Ne) „Transparentnost“ - Korisnici (ljudi ili programi) imaju „utisak“ da rade sa jednim sistemom. Implementacija sistema je sakrivena od korisnika
- ne daje detalje o tipovima računara kao komponenti (mogu biti heterogeni) niti o načinu kako su povezani i kako sarađuju. Prema [Tanenbaum&Steen,
2007] i standardu ISO iz 1995, postoje različite
• “Skalabilnost“ - Distribuirani sistemi se lako mogu proširiti novim komponentama.
• „Pouzdanost“ - Očekuje se da distribuirani sistem uvek bude raspoloživ i funkcionalan, ialo pojedini elementi privremeno mogu biti van funkcije.
Korisnici i aplikacije ne bi trebali da primete delove koji su u procesu zamene ili popravke ili dodavanja novih elemenata koji se dodaju da bi obezbedili
podršku za više korisnika ili aplikacija.
• „Otvorenost“ – sistem nudi servise u skladu sa standardnim pravilima koje opisuju sintaksu i semantiku tih servisa. Pravila se odnose na format,
sadržaj i značenje poruka koje se šalju ili primaju. Takva pravila formalizovana su u protokolima. U distribuiranim sistemima, servisi su definisani kroz
interfejse, opisane najčešće kroz Interface Definition Language (IDL).
• „Fleksibilnost“ –sistem se lako konfiguriše od različitih komponenti (čak i od različitih proizvođača). Sistem treba da omogući laku zamenu
komponenti ili dodavanje novih komponenti bez uticaja na postojeće komponente koje već funkcionišu. Kako bi se postigla fleksibilnost, sistem treba da
predstavlja kolekciju malih i lako zamenjivih i adaptibilnih komponenti. Odvajanje funkcionalnosti, ciljeva („policy“) i mehanizma implementacije.
CILJEVI I OPRAVDANOST KREIRANJA DISTRIBUIRANOG SISTEMA
• Obezbeđuju lakšu dostupnost i deljenje udaljenih resursa – uređaja, datoteka, skladišta podataka.
• Dostupnost i deljenje resursa je ekonomski opravdano – smanjuje opšte troškove
• Povezivanje korisnika i resursa olakšava kolaboraciju i razmenu informacija.
RIZICI I PROBLEMI DISTRIBUIRANIH SISTEMA
• Bezbednost podataka
• Privatnost podataka
OBLICI (ne)TRANSPARENTNOSTI DISTRIBUIRANIH SISTEMA
PARALELNO I KONKURENTNO RAČUNARSTVO
Paralelno računarstvo je tip obrade podataka gde se mnoga izračunavanja izvršavaju na procesima koji se izvršavaju simultano (istovremeno). Veliki
problemi se dele na manje, koji se mogu rešavati u isto vreme. Ima nekoliko formi paralelnog računarstva: nivo bita, nivo instrukcije, nivo podataka i
paralelizam zadataka. S obzirom na potrebu da se smanji zagrevanje I potrošnja energije računara, paralelno računarstvo je postalo danas dominantno u
računarskoj arhitekturi, najčešće u formi procesora sa više jezgra.
Paralelno računarstvo je blisko sa konkurentnim računarstvom. Moguće je imati paralelizam bez konkurentnosti (npr. Bit-nivo paralelizma) ili
konkurentnost bez paralelizma (npr. Kod multitaskinga sa deljenjem vremena na procesoru sa jednim jezgrom). Kod paralelnog računarstva, zadatak
obrade se podeli na nekoliko, čak i više sličnih podzadataka koji se mogu procesirati nezavisno i čiji rezultati se kombinuju kasnije, nakon njihovog
završetka. Kod konkurentnog računarstvo, raznovrsni procesi često se ne odnose na međusobno povezane zadatke, već kada izvršavaju (slično kao I kod
distribuiranog računarstva) svoje aktivnosti, potrebno je da postoji proces koji će ih povezati u toku izvršavanja.
DISTRIBUIRANO RAČUNARSTVO
Distribuirano računarstvo se odnosi na primenu distribuiranih sistema za rešavanje računarski rešivih problema. U ovom načinu procesiranja, problem je
podeljen između više zadataka, gde se svaki rešava na jednom ili više računara povezanih računarskom mrežom, koji međusobno komuniciraju razmenom
poruka. Računarski program koji se izvršava u distribuiranom sistemu naziva se distribuirani program. Postoji više načina za razmenu poruka između
računara: HTTP, RPC (Remote Procedure Call) i redovi poruka (message queues).
TIPOVI DISTRIBUIRANIH SISTEMA
• Distribuirani računarski sistemi (“Distributed Computing Systems”):
• Distribuirani informacioni sistemi
• Distribuirani integrisani (“embedded”) sistemi
TIPOVI DISTRIBUIRANIH RAČUNARSKIH SISTEMA
klaster
grid
cloud
CLUSTER
KLASTERSKI SISTEMI su homogeni sistemi, više istih ili sličnih PC računara sa istim operativnim sistemom, povezanih homogenom računarskom mrežom,
uz najčešće jedan master računar koji upravlja zadacima. Koristi se kod paralelnog programiranja, gde se jedan program izvršava na paralelnim
računarima. Računarski klaster se sastoji od više povezanih (povezani brzom lokalnom računarskom mrežom) računara koji rade zajedno (na bliskoj
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").
DISTRIBUIRANI INFORMACIONI SISTEM
Pоd pојmоm distribuirani infоrmaciоni sistem pоdrazumеva se infоrmaciоni sistem kојi pоdržava distribuiranu obradu pоdataka, nad distribuiranоm bazоm
pоdataka.
(DISTRIBUIRANI) INTEGRISANI (EMBEDDED) SISTEM
Integrisani sistem je računarski sistem posebne namene koji je povezan sa širim mehaničkim ili električnim sistemom, najčešće zasnovan na procesiranju
podataka u realnom vremenu. Integrisan sistem je INTEGRISAN zato što predstalja deo kompletnog uređaja koji obično sadrži hardverske i mehaničke
komponente. Integrisani sistemi kontrolišu mnoge uređaje u svakodnevnoj upotrebi. 98% svih proizvedenih mikroprocesora danas su zapravo realizovani
da bi bili komponente integrisanih sistema.
Osnovne karakteristike integrisanih računara, poredeći sa računarima opšte namene, su manji nivo potrošnje energije, manje dimenzije, manji troškovi,
grublji skup operacija, zbog ograničenja procesnih resursa. Zbog ovoga je teže programirati i raditi sa tim resursima. Radi unapređenja rada integrisanih
sistema, uključuju se inteligentni mehanizmi uz postojeći hardver, senzore i umrežavanje integrisanih elemenata. Takođe, posebno se unapređuju
integrisani sistemi tako da imaju manje dimenzije i troškove proizvodnje, ali veću pouzdanost i bolje performanse. Na ovaj način unapređuje se npr.
Potrošnja energije integrisanih sistema.
Savremeni integrisani sistemi su najčešće bazirani na mikrokontrolerima (procesor s integrisanom memorijom i perifernim interfejsima) ili običnim
mikroprocesorima sa eksternim čipovima za memoriju i periferne interfejse, koji se koriste u kompleksnijim sistemima. Procesori mogu biti opšte namene
ili specijalizovani za određene vrste procesiranja. Standardna klasa namenskih procesora su „digital signal processor (DSP)”.
Integrisani sistemi se nalaze u malim portabilnim uređajima (npr. Digitalni satovi, MP3 player), ali i u velikim stacionarnim instalacijama kao što su
saobraćajna signalizacija, kontroleri u fabrikama, složena hibridna vozila I slično. Kompleksnost ide od jednog mikrokontrolerskog čipa do veoma velikih i
višestrukih jedinica.
ARHITEKTURA RAČUNARSKI-BAZIRANOG INFORMACIONOG SISTEMA
Informacioni sistem (IS) je organizovani sistem za prikupljanje, organizaciju, filtriranje, obradu, čuvanje i razmenu informacija koji koriste ljudi i
organizacije. To je skup komponenti koje međusobno sarađuju u cilju proizvodnje informacija. Računarski podržan informacioni sistem je sistem koji se
sastoji od ljudi i računarske opreme koja procesira ili interpretira informacije. U užem smislu obuhvata računarski sistem, tj. softver koji se izvršava nad
kompjuterizovanom bazom podataka. Kompjuterski-baziran informacioni sistem je IS koji koristi računarsku tehnologiju za izvršavanje ranije planiranih
zadataka. Osnovne komponente računarski-zasnovanog informacionog sistema su:
Hardware- različiti uređaji: monitor, procesor, štampač, tastatura itd. Koji se koriste za akviziciju, procesiranje I prezentovanje podatak I
informacija.
Software- računarski programi koji omogućavaju da hardver procesira podatke.
Databases- predstavljaju objedinjavanje podataka u okviru pratećih fajlova I tabela koje sadrže međusobno povezane podatke.
Networks- predstavljaju sistem veza koje omogućavaju da različiti računari I oprema razmenjuju podatke I distribuiraju resurse.
Procedures- komande kojima se kombinuju prethodno navedene komponente kako bi se proizveo željeni izlaz obradom podataka.
Naredna slika prikazuje različite tipove informacionih sistema, u zavisnosti od nivoa upravljanja organizacijom.
ARHITEKTURA DISTRIBUIRANIH INFORMACIONIH SISTEMA
Različite hardverske i softverske arhitekture se koriste kod distribuiranog računarstva. Na nižem nivou, potrebno je povezati veći broj procesora
određenom vrstom mreže. Na višem nivou, potrebno je povezati procese da se izvršavaju na tim procesorima sa određenim komunikacionim sistemom.
Distribuirano programiranje (programiranje distribuiranih aplikacija) obuhvata najčešće sledeće osnovne arhitekture: klijent-server, troslojna, višeslojna,
peer-to-peer ili kategorije: slabo ili jako povezanih sistema (loose coupling, or tight coupling).
Klijent-server arhitektura: klijent razmenjuje podatke sa serverom upućujući zahteve korisnika za podacima ili prosleđujući serveru podatke koje
treba da ažurira. Klijent može biti “fat” ili “smart” tako da je programska logika u okviru klijentskog računara ili “thin” kada je programska logika u
okviru serverskog računara.
Troslojna arhitektura: programska logika je izmeštena na srednji sloj tako da se pojednostavljuje razvoj i klijenti rasterećuju. Većina web aplikacija
je troslojna.
Višeslojna arhitektura: uključuje servise, odnosno aplikacione servere, gde se poslovna logika posebno procesira.
Peer-to-peer arhitektura: ne postoje posebni server koji obezbeđuju servise ili upravljaju mrežnim resursima. Umesto toga, odgovornosti su
uniformno razdeljene između svih računara, nazvanih peer. Peer računari (ravnopravni računari) mogu da imaju ravnopravno ulogu i kao klijenti i
kao serveri.
PORUKE
Poruka je diskretna jedinica komunikacije formulisana od strane izvora poruke radi korišćenja od strane primaoca poruke. Poruke su forma komunikacije
korišćena u konkurentnom i paralelnom računarstrvu, objektno-orjentisanom programiranju ili interprocesnoj komunikaciji. U objektno-orjentisanom
programiranju, poruka se šalje objektu klase, čime se specificira zahtev za izvršavanje konkretne akcije od strane metode te klase, uz konkretne vrednosti
parametara poziva. Postoje različiti standardi-protokoli razmene poruka.
RAZMENA PORUKA (MESSAGE PASSING)
U računarskim naukama, slanje poruke je obraćanje procesu-metodi objekta, koji treba da izvrši neki programski kod, odnosno izvrši neku akciju. U
objektno-orjentisanom programiranju, na ovaj način se razlikuje funkcija od implementacije, koja je enkapsulirana. Enkaspulacijom softverski objekti
pozivaju servise drugih objekata bez poznavanja ili uticaja na to kako su ti servisi implementirani. Distribuirana razmena poruka omogućuje developerima
sloj arhitekture (nazvan “messaging layer”) sa mogućnošću izgradnje sistema sastavljenog od podsistema koji se izvršavaju na različitim računarima sa
različitim lokacijama i u različito vreme. Messaging layer omogućava slanje poruka distribuiranih objekata drugim objektima kroz:
- Pronalaženje adekvatnog objekta, pri čemu se objekti mogu nalaziti na različitim računarima, operativnim sistemima I biti implementirani na
različitim programskim jezicima
- Snimanje poruke u red (queue) ukoliko odgovarajući objekat nije trenutno aktivan i pokretanje poruke kada se odgovarajući objekat aktivira
- Kontrolisanje distribuiranih transakcija, obezbeđujući ACID osobine nad podacima.
Razlikujemo sinhrono i asinhrono slanje poruka. Sinhrono slanje poruka se javlja između objekata koji su aktivni u isto vreme. Asinhrono slanje poruka je
moguće kada je objekat koji treba da primi poruku i izvrši akciju zauzet ili nije aktivan u trenutku kada objekat koji šalje poruku pošalje tu poruku. Ta
obradu asinhrone razmene poruka koristi se poseban middleware, npr. Message-oriented middleware, gde se zahtevi šalju, čuvaju u “message bus”, a
obrađuju kada je ciljni objekat aktivan. Sinhrona razmena poruka takođe može da koristi poseban middleware (npr. Synchonizer), gde sender ne šalje
novu poruku dok ne dobije odgovor od prijemnika da je primio poruku.
Potrebno je razlikovati slanje poruka i poziv procedure. U tradicionalnom pozivu procedure, argumenti (vrednosti parametara poziva procedure) se šalju
korišćenjem registara opšte namene koji pamte samo adresu vrednosti argumenta, dok se kod slanja poruke šalje ceo argument-parametar sa svim
svojim osobinama (tip podatka) kao i vrednost argumenta.
KOMUNIKACIONI PROTOKOL
U telekomunikacijama, komunikacioni protocol je sistem pravila koja omogućavaju da dva entiteta komunikacionog sistema razmenjuju podatke pomoću varijacija fizičkih veličina. Ta pravila ili standardi opisuju sintaksu, semantiku I sinhronizaciju komunikacija I metode za oporavak od mogućih grešaka. Protokoli mogu biti implementirani u okviru hardvera i softvera. Komunikacioni sistemi koriste dobro definisane formate (protokole) za razmenu različitih poruka. Svaka poruka ima precizno značenje kojim se pokreće I očekuje odgovor iz skupa svih mogućih odgovora koji su unapred definisani za takvu situaciju.Očekivano ponašanje kao odgovor na poruku je nezavisno od načina implementacije. Komunikacioni protokoli treba da su rezultat dogovora-usaglašavanja između svih strana, a obično se oblikuju kao tehnički standardi. Protokoli definišu pravila koja se odnose na transmisiju poruka. Protokol mora da definiše: formate podataka za razmenu, adresne formate (pošiljaoca I primaoca) za razmenu podataka, adresno mapiranje (u druge oblike adresa), rutiranje (definisanje posrednika u komunikaciji), detekcija grešaka transmisije, odgovor o uspehu prijema paketa podataka, gubitak podataka (timeout i retry), usmerenje toka informacija, kontrola sekvenci, kontrola toka.
SOFTVERSKI SERVISI
Servis je diskretna jedinica funkcionalnosti kojoj se može pristupiti udaljeno (remotely) i koristiti i menjati nezavisno.
Software as a service (SaaS) je model za softversko licenciranje i isporuku gde se softver licencira na bazi pretplate I centralno je smešten (hostovan).
SaaS se pristupa od strane korisnika koristeći tanki (“thin”) klijent koristeći web browser. SaaS je postao uobičajen model za isporuku poslovnih aplikacija. Pojam Saas se koristi kao deo nomenclature u okviru Cloud računarstva, zajedno sa infrastructure as a service (IaaS), platform as a service (PaaS), desktop as a service (DaaS), managed software as a service (MSaaS), mobile backend as a service (MBaaS), and information technology management as a service (ITMaaS). S
obzirom da SaaS aplikacije ne mogu da pristupaju internim sistemima neke kompanije (npr. Bazama podataka ili internim servisima), integracija je omogućena koristeći protokole i API (application programming interfaces). Ovi protokoli su bazirani na HTTP, SOAP i REST.
DISTRIBUIRANI OBJEKTI
U distribuiranom računarstvu, distribuirani objekti su objekti (u smislu objektno-orjentisanog programiranja) koji su distribuirani na različitim adresnim prostorima u okviru različitih procesa jednog računara ili na više računara u računarskoj mreži, ali funkcionišu zajedno deljenjem i razmenom podataka i pokretanjem metoda. To uključuje lokacijsku (ne)transparentnost, gde udaljeni objekti „izgledaju“ isto kao i lokalni objekti. Osnovni način komunikacije distribuiranih objekata je putem udaljenog poziva metoda putem slanja poruka: jedan objekat šalje poruku drugom objektu na udaljenoj mašini ili procesu da izvrši neki zadatak. Rezultati se šalju nazad objektu koji je pozvao taj objekat.
Primeri podrške za distribuirane objekte: Java RMI, CORBA, DCOM (Microsoft platform), DDObjects(Delphi), JavaSpaces, Pyro (Python), DRb (DistributedRuby).
KLIJENT-SERVER ARHITEKTURA
Klijent-server je model distribuirane strukture aplikacije, tako da se dele zadaci i aktivnosti između “obezbeđivača resursa ili servisa” (server) i “zahtevača
servisa” (klijenti). Najčešće klijenti i server funkcionišu na različitom hardveru i povezani su računarskom mrežom, iako mogu biti i na fizički istom
sistemu. Server izvršava jedan ili više serverskih programa kojima deli svoje resurse sa klijentima, dok klijent ne deli svoje resurse, već zahteva od server
određene sadržaje ili servisne funkcije. Klijent-server predstavlja relaciju saradnje programa u aplikaciji. Serverska komponenta aplikacije obezbeđuje
funkcije ili servise za jednog ili više klijenata, koji zahtevaju te servise. Serveri se mogu klasifikovati u odnosu na usluge-servise koje obezbeđuju. Npr.
Web server obezbeđuje web stranice, file server služi za obradu računarskih fajlova, server baze podataka procesira rad sa bazama podataka. Deljeni
resursi servera mogu biti računarski softver (program, podaci) ili hardverske komponente (npr. Uređaji za skladištenje podataka – storage devices).
Deljenje resursa servera čini servis. Jedan računar može izvršavati više serverskih programa i pružati više servisa (npr. Može istovremeno biti i web
server, server baze podataka, file server).
VIŠESLOJNA OBJEKTNO-ORJENTISANA ARHITEKTURA
U softverskom inženjerstvu, višeslojna arhitektura (često nazvana i n-tier arhitektura) je klijent-server arhitektura gde su prezentacija, procesiranje
aplikacije i funkcije upravljanja podacima fizički odvojene. Najčešće korišćena višeslojna arhitektura je troslojna arhitektura. N-tier aplikaciona arhitektura
obezbeđuje model softvera gde developeri mogu da kreiraju fleksibilne aplikacije pogodne za održavanje i ponovno korišćenje komponenti (reusable).
Razdvajanjem aplikacije na slojeve, dobija se mogućnost izmene ili dodavanja specifičnih slojeva, umesto da se celokupna aplikacija ponovo implementira
zbog promena. U troslojnoj arhitekturi najčešće razlikjemo prezentacioni sloj (presentation tier), sloj domenske logike (domain logic tier) i sloj podataka
(data storage tier).
U objetno-orjentisanom dizajnu višeslojne arhitekture softverske podrške informacionog sistema, najčešći su slojevi:
Prezentacioni sloj (Presentation layer) – korisnički interfejs(UI layer), sloj pogleda(view layer)
Aplikacioni sloj (Application layer) – Sloj servisa (service layer), Controller Layer
Poslovni sloj (Business layer) - Sloj poslovne logike(business logic layer - BLL), domenski sloj (domain layer)
Sloj pristupa podacima (Data access layer) (persistence layer, logging, networking i ostali servisi potrebni za poslovni sloj)
MVC pristup (Model View Controller)
Model–view–controller (MVC) je softverski arhitekturni (dizajn) patern. Deli aplikaciju na tri međusobno povezane komponente kao bi se razdvojile interne
prezentacije informacija od načina kako je informacija prezentovana i prihvaćena od strane korisnika. Na ovaj način, MVC dizajn patern omogućava
paralelni razvoj komponenti i ponovnu iskoristivost koda (code reuse). Inicijano korišćena za desktop aplikacije, ova arhitektura je postala popularna za
dizajn web i mobilnih aplikacija. Najčešće korišćeni programski jezici Java, C#, PHP i Ruby imaju svoje popularne MVC framework-e koji se koriste u
razvoju aplikacija.
Komponente su:
MODEL – centralna komponenta MVC paterna. Izražava ponašanje aplikacije u smislu problemskog domena, nezavisno od korisničkog interfejsa.
Upravlja podacima, programskom logikom i pravilima koja su ugrađena u aplikaciju.
VIEW – može biti bilokoji prikaz informacija (output representation). Za iste informacije može biti više različitih prikaza – grafikoni, tabelarni prikazi
I slično.
KONTROLER – preuzima ulaze i konvertuje ih u komande koje su upućene MODELU ili VIEW.
Podela na 3 komponente definiše i njihovu međusobnu povezanost:
MODEL čuva podatke, KONTROLER zadaje komande modelu za preuzimanje podataka, kontroler zadaje komande kojima se podaci prikazuju u
VIEW.
VIEW generiše novi izlaz (output) koji je predstavljen korisniku, na osnovu promena koje su se desile u modelu.
KONTROLER može da šalje komande MODELU da promeni stanje modela. Kontroler može da šalje komande na VIEW da se izmeni prikaz podataka
na osnovu izmena modela ili da se prikaže druga vrsta ili način ponašanja VIEW.
OSNOVNI SLOJEVI OSI MODELA
OSI model (Open Systems Interconnection Model) je konceptualni model koji standardizuje komunikacione funkcije telekomunikacionih i računarskih
sistema bez obzira na internu strukturu i tehnologiju. Cilj je obezbediti interoperabilnost (mogućnost razmene podataka i integracije sistema i softvera)
različitih sistema pomoću standardnih komunikacionih pravila (protokola). OSI model je rezultat projekta „Open Systems Interconnection project”
kod International Organization for Standardization (ISO) i opisan u okviru standard ISO/IEC 7498-1. OSI model deli komunikacioni sistem u apstraktne
slojeve. Koncept OSI modela sa sedam slojeva rezultat je rada Charles Bachmana (Honeywell Information Services). Osnovna verzija standard opisana je
1983 godine kao “Basic Reference Model for Open Systems Interconnection”. Publikovan je 1984. Godine kao standard ISO 7498 od strane ISO
organizacije i kao standard X.200 od strane organizacije Telecommunications Standardization Sector of the International Telecommunication Union (ITU-
T).
Originalna verzija OSI modela definiše 7 slojeva. OSI model definiše komunikaciju između slojeva jednog sistema ili komunikaciju između entiteta različitih
sistema i istih slojeva. Servisne definicije apstraktno opisuju funkcionalnost obezbeženu za N sloj od strane N-1 sloja. Određeni sloj „služi“ sloju iznad, a
„biva poslužen“ od strane sloja ispod, odnosno dobija rezultate usluga sloja ispod. Dva entiteta-instance istog sloja (različitih host-ova, tj. uređaja), tj. N-
sloj peer-ovi (ravnopravni slojevi u komunikaciji dva različita uređaja), komuniciraju putem standardnih protokola, razmenjujući protokolom definisane
jedinice razmene podataka (PDU – protocol data units) za taj N sloj. Svaki PDU sadrži jedinicu servisnih podataka (Service data unit – SDU) zajedno sa
protokolom definisanim hederima i futerima za poziv servisa.
Proces komunikacije između dve OSI-kompatibilna uređaja: Podaci se šalju od najvišeg sloja uređaja koji šalje podatke u obliku PDU, koji se prosleđuje N-
1 sloju gde se prepoznaje kao SDU i dodaje mu se heder i futer, a zatim se prosleđuje N-2 sloju koji to sve tumači kao PDU od N-1 sloja. Proces se
nastavlja do najnižeg sloja. Tek u tom obliku se šalju uređaju koji prima podatke. Uređaj koji prima podatke zatim transformiše od najnižeg sloja do
najvišeg, kako bi se na najvišem nivou podaci koristili.
UDALJENO POZIVANJE PROCEDURA (REMOTE PROCEDURE CALL)
U distribuiranom računarstvu, Remote Procedure Call (RPC) je proces pozivanja, od strane računarskog programa, procedure koja se izvršava u drugom adresnom prostoru, najčešće na drugom računaru deljene računarske mreže. Prilikom tog udaljenog pozivanja, u programu se pišu naredbe kao da se poziva lokalna procedura, bez potrebe za dodatnim programiranjem detalja u vezi udaljene interakcije. Implementacija odgovara request-response sistemu razmene poruka, slično kao kod klijent-server modela. Istorijat: Počev od objektno-orjentisanog programiranja I modela “Remote Method Invocation”, zatim CORBA (Common Object Request Broker Architecture), zatim Java RMI (Java Remote Method Invocation).
PREZENTACIONI SLOJ TROSLOJNE SOFTVERSKE ARHITEKTURE
Prezentacioni sloj troslojne softverske arhitekture zadužen je predstavljanje podataka korisniku, kao i za neposredni prijem komandi korisnika u toku
korišćenja aplikacije. Osnovne funkcije obuhvataju formatiranje i predstavljanje podataka, kao i organizaciju dostupnosti funkcija kroz personalizaciju
funkcija različitim tipovima korisnika. Strukture podataka služe za prijem i predstavljanje podataka i mogu se značajno razlikovati u odnosu na strukture
podataka koje se nalaze u poslovnom sloju i sloju podataka. Posebne klase objektno-orjentisane implementacije obezbeđuju odgovarajuće strukture
podataka, kao i funkcije prikaza i organizacije funkcija, odnosno prijema komandi sa korisničkog interfejsa. Te klase mogu biti univerzalne, pa se mogu
koristiti u implementaciji različitih tipova korisničkih interfejsa (desktop, web, mobilne aplikacije). Takođe, ovom sloju pripadaju I standardne klase za
grafičko uređenje korisničkog interfejsa.
SLOJ POSLOVNE LOGIKE (MIDDLEWARE)
Middleware je računarski softver koji obezbeđuje servise softverskim aplikacijama van onih koje su na raspolaganju od strane operativnog sistema.
Middleware olakšava softverskim developerima da implementiraju komunikaciju i ulaz-izlaz, kako bi se mogli fokusirati na specifične namene njihovih
aplikacija. Termin je najčešće korišćen u značenju softvera koji omogućuje komunikaciju i upravljanje podacima u distribuiranim aplikacijama. Middleware
je definisan i kao “servisi koji su iznad transportnog sloja OSI modela, ali ispod aplikacionog okruženja, odnosno aplikacionog API nivoa). U ovom
specifičnom smislu, middleware povezuje klijent i server, odnosno dva peer-a u peer-to-peer vezi. Middleware uključuje web servere, aplikacione servere,
content menadžment sisteme I slične alate koji podržavaju razvoj i funkcionisanje aplikacija. Middleware se takođe definiše i kao softverski sloj koji je
između operativnog sistema I aplikacija na svakoj strain distribuiranog sistema u mreži. Servisi koji pripadaju middleware uključuju integraciju poslovnih
aplikacija (Enterprise application integration), integraciju podataka, middleware orjentisan na poruke (Message oriented middleware), object request
brokers (ORBs) i enterprise service bus (ESB). Pod pojmom middleware podrazumevaju se i servisi za rad sa bazom podataka, kao što su: ODBC, JDBC I
drugi.
RADNI TOKOVI (WORKFLOW MANAGEMENT SYSTEMS)
Sistem za upravljanje radnim tokovima obezbeđuje infrastrukturu za definisanje, funkcionisanje i monitoring definisanog niza zadataka, uređenih u
aplikaciju koja prati i podržava radne tokove. Sistem za upravljanje radnim tokovima je zasnovan na modelu kojim se definišu zadaci kao čvorovi i njihova
međusobna povezanost. Zadaci se aktiviraju ukoliko su uslovi njihove međusobne povezanosti sa drugim zadacima ispunjeni. Teorijska osnova upravljanja
radnim tokovima je teorija grafova i petrijeve mreže. Upravljanje radnim tokovima implementira se kroz softversku podršku koja najčešće uključuje
primenu web servisa. Aktuelni su standardi za definisanje načina povezivanja web servisa za primenu u podršci radnim tokovima. Posebno definisan jezik Web Services Business Process Execution Language (WS-BPEL) predstavlja standardni jezik za specifikaciju akcija u okviru poslovnih procesa koji se
realizuju putem web servisa.
POSLOVNI ENTITETI
Poslovni objekat je entitet u okviru višeslojne softverske aplikacije koji razmenjuje podatke sa slojem podataka i slojem poslovne logike. Opisuju entitete
rečnika poslovnog domena I omogućavaju implementaciju poslovne logike.
SISTEM ZA UPRAVLJANJE POSLOVNIM PRAVILIMA
Sistemi za upravljanje poslovnim pravilima (BRMS – business rule management system) je softverski sistem koji se koristi za definisanje, postavljanje,
izvršavanje, monitoring i održavanje različitih elemenata logike odlučivanja koje se koriste u softverskim sistemima podrške organizacijama ili
preduzećima. Logika odlučivanja uključuje poslovna pravila, politike, zahteve, uslovne rečenice koje se koriste kako bi se utvrdile taktičke akcije koje bi se
primenile u aplikacijama i sistemima. Osnovna arhitektura BRMS sistema minimalno mora sadržavati:
Skladište (repozitorijum) gde će biti smešteni elementi logike odlučivanja, izdvojeni iz programskog koda jezgra softverske aplikacije
Alati kojima se definiše i održava logika održavanja
Izvršno okruženje, koje omogućava aplikaciji da pokreće logiku odlučivanja koja se nalazi u BRMS i izvršavanje koristeći Business Rule Engine
Prednosti korišćenja BRMS sistema odnose se na smanjivanje zavisnosti organizacionih jedinica od IT odeljenja kada su u pitanju promene pravila
poslovanja, povećan nivo kontrole nad logikom odlučivanja, unapređenje preciznosti odlučivanja i efikasnosti zbog automatizacije odlučivanja.
SLOJ PODATAKA
Sloj za pristup podacima (Data Access Layer - DAL) je sloj računarskog programa koji obezbeđuje jednostavniji pristup podacima koji su smešteni u okviru
nekog trajnog skladišta podataka (persistent storage), npr. u okviru relacione baze podataka ili fajl sistema. DAL čine klase koje obezbeđuju podatke iz
npr. baze podataka, a koje mogu pristupati podacima pozivom stored procedura iz baze podataka. DAL sakriva kompleksnost skladištenja podataka, a
može da sadrži upite i nad više različitih izvora podataka i više baza podataka. DAL može biti zavisan od konkretnog DBMS (sistema za upravljanje bazom
podataka), odnosno servera baze podataka ili nezavisan. DAL koji podržava više različitih tipova DBMS (ili je univerzalan u tom smislu) je lakši za
održavanje, jer se lako izvrši izmena podrške konkretnom DBMS, dok ostali elementi ostaju nepromenjeni. Alati ORM (Object-Relational Mapping) tipa
omogućavaju active record model.
SERVISNO-ORJENTISANA ARHITEKTURA
Servisno-orjentisana arhitektura (SOA) je stil softverskog dizajna gde su servisi obezbeđeni softverskim komponentama kojima se pristupa putem mrežnih
komunikacionih protokola. Servis ima opšte karakteristike, nezavisne od tehnologije ili dobavljača: predstavlja logičku jedinicu posla, samostalan,
implementacija je sakrivena za korisnike, može da se u svojoj implementaciji zasniva na primeni drugih servisa. Različiti servisi se mogu udružiti kako bi
obezbedili funkcionalnost složenije softverske aplikacije. U okviru servisno-orjentisane arhitekture, aplikacija se kreira integracijom distribuiranih,
nezavisno-održavanih i postavljenih softverskih komponenti. Servis predstavlja jednostavni interfejs koji je pozvan od strane korisnika usluge servisa I koji
sakriva implementaciju samog servisa. U okviru SOA, servisi koriste protokole kojima se opisuje kako se prosleđuju I tumače poruke, koristeći
metapodatke – opisuju funkcionalne karakteristike I karakteristike kvaliteta usluge-servisa. Osnovni elementi I učesnici SOA pristupa su:
- Service Provider (Kreira web servis I registruje ga u okviru registra servisa)
- Service Broker (registar servisa, skladište servisa)
- Service Requester (pronalazi web servis u okviru servisnog brokera i povezuje se sa service provider-om kako bi koristio usluge web servisa.
U razvoju SOA aplikacija razvijaju se web servisi i koriste se standardi za web servise, npr. SOAP, CORBA; REST.
WEB SERVISI
Prema W3C (WWW consortium), web servis je definisan kao softverski sistem koji je dizajniran da podrži interoperabilnu interakciju mašine sa mašinom
posredstvom računarske mreže. Prilikom komunikacije koriste se standardi World Wide Web-a, kao što je HTTP. Za razmenu podataka koriste se formati
datoteka kao što su XML i JSON.
U okviru Visual studio .NET okruženja, web servis je poseban tip projekta. Kreiranjem ovog projekta, automatski se web servis kreira kao klasa.
Funkcionalnost web servisa opisuje se kroz javne metode koje ova klasa daje na korišćenje javnosti. Web servis se može dodati u okviru projekta ASPX
web aplikacije u Visual Studio .NET okruženju tako što se najpre mora pokrenuti. Aktivan URL web servisa dodaje se kao „Service Reference“ u okviru
projekta ASPX web aplikacije.
SOAP
SOAP (Simple Object Access Protocol) je protocol kojim se specificira razmena strukturiranih informacija u implementaciji web servisa u računarskim
mrežama. Ovaj protocol promoviše proširivost, neutralnost I nezavisnost od konkretnih tehnologija. Koristi XML kao format za razmenu poruka izasniva se
na protokolima aplikacionog sloja OSI modela, kao što je HTTP. SOAP omogućava izvršavanje web servisa na različitim operativnim sistemima, s obzirom
da je zasnovan na HTTP koji je podržan na svim operativnim sistemima.
REST
Representational state transfer (REST) ili RESTful Web servisi su jedan od načina obezbeđivanja interoperabilnosti između računarskih sistema I interneta.
Termin representational state transfer je prvi put definisan 2000. Godine u doktorskoj disertaciji Roy Fieldinga. Rest-bazirani web servisi omogućavaju
“stateless” operacije za tekstualnu reprezentaciju web resursa. Na ovaj način, REST omogućava bolje performance izvršavanja (brži rad), pouzdanost i
ponovnu iskoristivost komponenti.
RAZLIKA SOAP I REST WEB SERVISA
SOAP I REST web servisi se razlikuju prema:
UREĐIVANJE WEB SERVISA ZA PODRŠKU POSLOVNIM PROCESIMA (ORKESTRACIJA I KOREOGRAFIJA)
Web servisi se koriste u okviru određenog sistema putem kompozicije web servisa. Kompozicija može biti:
- Koreografija – opisuje uređenje web servisa u određeni redosled i uslove pod kojim se razmenjuju podaci između web servisa. Koordinacija web
servisa iz globalne perspektive sa vie učesnika, bez centralnog kontrolera).
- Orkestracija – automatsko uređivanje, koordinacija i upravljanje računarskim sistemima, middleware i servisima, koje treba da bude u skladu sa
zahtevima poslovanja. Definiše pogled pojedinačnog učesnika na celinu. U okviru „cloud computing“ koristi se orkestrator koji upravlja celinom.
UML MODELI ZA DISTRIBUIRANE SISTEME
Najvažniji UML (Unified modeling language) modeli koji se koriste za prikaz distribuiranih sistema su:
- Dijagram komponenti
- Dijagram razmeštaja
The Unified Modeling Language (UML) je jezik opšte namene u oblasti softverskog inženjerstva, čiji je cilj da obezbedi standardni način vizualizacije dizajna
sistema. Nastao je integracijom različitih pristupa I tipova modela od strane Grady Booch, Ivar Jacobson i James Rumbaugh u okviru firme Rational
Software u 1994–1995. godini. Prihvaćen je kao standard u okviru Object Management Group (OMG) i International Organization for Standardization (ISO)
kao ISO standard. Inicijalna verzija UML sadrži 9 vrsta dijagrama. Novije verzije UML 2.0 dobijaju još 3 nova dijagrama.
ASINHRONA KOMUNIKACIJA
U telekomunikacijama, asinhrona komunikacija je razmena podataka bez primene eksternog satnog signala, gde se podaci razmenjuju povremeno, bez
konstantnog protoka. Transmiter i receiver satni generatori nisu sinhronizovani.
SINHRONA KOMUNIKACIJA
Sinhronizacija je koordinacija događaja u sistemu. Sistemi čiji svi elementi funkcionišu sinhrono, nazivaju se sinhroni sistemi. Sinhroni uređaji zahtevaju
postojanje satnog signala (clock signal), čija je osnovna namena da signaliziraju početak i kraj nekog vremenskog perioda. Na ovaj način se događaji nad
različitim elektronskim sistemima mogu sinhronizovati, tj. da se ponašaju tako da se izvršavaju simultano. Primer sinhronizacije je u GPS sistemima, gde
rad satelita treba da se uskladi sa radom GPS uređaja na Zemlji, koristeći Network Time Protocol (NTP) kojima se obezbeđuje pristup u realnom vremenu I
bliska aproksimacija za “UTC timescale”.
WIRELESS TEHNOLOGIJA
Wireless komunikacija je transfer informacija između dve tačke koje nisu povezane električnim provodnikom. Najčešće korišćene wireless tehnologije
koriste radio talase. Sa radio talasima udaljenost tačaka u komunikaciji može biti različita (manje udaljenosti u okviru zgrada ili veće udaljenosti za
svemirske radio-komunikacije). Druge wireless tehnologije su implementirane na rasprostiranju svetlosti, magnetnog polja, električnog polja ili zvuka.
Različiti uređaji koriste wireless komunikaciju: mobilni uređaji – telefoni, tableti, GPS uređaji, wireless tastature I miševi, bežični telefoni, kao I wireless
uređaj za otvaranje vrata i drugo.
BLUETOOTH
Bluetooth je wireless tehnološki standard za razmenu podataka na kratkim udaljenostima (koristeći kratke radio talase). Uveden je prvi put u okviru
Ericsson-a 1994. godine, kao alternativa RS-232 data kablovima. Bluetooth tehnologija se razvija u okviru organizacije Bluetooth Special Interest
Group (SIG), koja udružuje više od 30,000 kompanija u oblasti telekomunikacija, računarstva, mreža I elektronike. Organizacija IEEE standardizovala je
Bluetooth kao standard IEEE 802.15.1. Današnji proizvođači opreme koji žele da realizuju Bluetooth podršku, treba da usklade karakteristike sa Bluetooth
SIG standardima.
GPS
Global Positioning System (GPS) predstavlja globalni navigacioni satelit-bazirani system (NAVigation with Satellite Timing And Ranging = NAVSTAR sistem,
u vlasništvu vlade Sjedinjenih Američkih Država, ali je besplatno dostupan svima) koji obezbeđuje geolokaciju i informacije o vremenu GPS receiver-u
bilogde na Zemlji ili blizu Zemljine površine. Uslov da GPS uređaj na Zemlji radi je da je u svakom trenutku na takvoj lokaciji da ima mogućnost „pogleda“
na barem 4 ili više GPS satelita. Princip rada GPS uređaja je triangulacija (presek tri „sfere koje se formiraju“ između uređaja GPS i satelita, pri čemu se
četvrta sfera koristi zbog preciznosti).
GPS projekat je započet 1973, kako bi prevazišao probleme postojećih navigacionih sistema, a postao je 1995 potpuno funkcionalan sa 24 satelita. U nizu
godina menjane su tehnologije i broj satelita. Razvijeni su i alternativni GPS sistemi, kako ne bi postojala zavisnost od Sjedinjenih Američkih Država. Ruski
GPS system je razvijen (The Russian Global Navigation Satellite System - GLONASS), ali nije imao dobru pokrivenost satelitima do 2000. godine. Danas se
GLONASS može povezati sa GPS uređajima, kako bi se postigla veća dostupnost satelita i preciznije izračunavanje pozicija. Razvijeni su i drugi navigacioni
sistemi:European Union Galileo positioning system, China's BeiDou Navigation Satellite System, Indijski NAVIC.
MOBILNI UREĐAJI
Mobilni uređaj je računarski uređaj koji je toliko malih dimenzija da može da se nalazi u ruci. Najčešće uređaj ima ravan ekranski displej sa malom
alfanumeričkom tastaturom ili touchscreen sa virtualnom tastaturom na ekranu. Mnogi mobilni uređaji imaju mogućnost povezivanja na internet ili
povezivanja sa drugim uređajima putem WiFi ili Bluetooth veze, kao i mogućnost koriščćenja GPS. Mobilni uređaji su podržani mobilnim operativnim
sistemima koji omogućavaju instaliranje drugih korisnih aplikacija. Dodatne funkcije mogu biti omogućene kroz čitače bar koda ili kartica i senzore kojima
se detektuje orjentacija ili pokreti. Biometrijska autentikacija je moguća u oblasti prepoznavanja lica ili otiska prsta. Proizvođači mobilnih uređaja su:
Apple, Samsung, Sony, HTC, LG, Motorola.
DISTRIBUIRANI OPERATIVNI SISTEMI
Distribuirani operativni system je softver koji je instaliran na kolekciji nezavisnih, umreženih i fizički odvojenih čvorova. Svaki pojedinačni čvor sadrži
specifični podskup softverskih elemenata globalnog agregatnog operativnog Sistema. Svaki čvor sadrži dva skupa softverskih funkcija. Prvi je microkernel
(jezgro) koje kontroliše direktno hardver čvora. Drugi je kolekcija softverskih komponenti višeg nivoa za upravljanje čvorom, tj. njegovim individualnim I
kolaborativnim aktivnostima. Komponente druge grupe omogućavaju podršku aplikativnog softvera. Primer distribuiranog operativnog Sistema je Amoeba,
razvijena od strane Andrew S. Tanenbaum i drugih sa Vrije Universiteit Amsterdam. Cilj Amoeba projekta je da se napravi timesharing system koji
omogućava da cela mreža i svi računari “izgledaju” korisniku kao jedna mašina.
OPERATIVNI SISTEMI ZA MOBILNE UREĐAJE
Mobilni operativni system je operativni system namenjen za mobilne uređaje – smart telephone, tablete i druge mobilne uređaje. Mobilni operativni sistemi
kombinuju mogućnosti operativnih Sistema personalnih računara sa drugim korisnim funkcijama za mobilnu upotrebu, npr. a touchscreen, cellular (mobilni
telefon), Bluetooth, Wi-Fi Protected Access, Wi-Fi, Global Positioning System (GPS) mobile navigation, camera, video camera, speech recognition, voice
recorder, music player… Do kraja 2016 godine, preko 430 milliona smart telefona je prodato, pri čemu su mobilni operativni sistemi zastupljeni: 81.7%
Android, 17.9% iOS, 0.3% Windows Mobile, 0.1% OSes.
INTEROPERABILNOST
Interoperabilnost je karakteristika proizvoda ili sistema, čiji interfejsi mogu biti potpuno razumljivi kako bi radili zajedno sa drugim proizvodima i
sistemima u smislu interakcije i međusobne interakcije. Interoperabilnost je značajna kod razmene podatak između različitih proizvoda ili sličnih proizvoda
različitih proizvođača ili čak između prošle I aktuelne verzije istog proizvoda istog proizvođača.
Razlikujemo 2 tipa interoperabilnosti:
Sintaksnu interoperabilnost – dva sistema mogu da komuniciraju i izražavaju sintaksnu interoperabilnost kada koriste specifične formate podataka I
komunikacione protokole. Primeri standarda koji podržavaju sintaksnu interoperabilnost: XML, SQL, formati datoteka (ASCII, Unicode).
Semantičku interoperabilnost – odnosi se na sposobnost da se automatski interpretira značenje informacija koje se razmenjuju, što rezultuje
korisnim rezultatima. Da bi se postigla semantička interoperabilnost, obe strane komunikacije moraju referencirati zajednički common information
exchange reference model.
Razlikujemo interoperabilnost i kompatibilnost. Interoperabilnost proizvoda je zasnovana na podešavanju karakteristika proizvoda da je u skladu sa opšte
usvojenim otvorenim standardima, a kompatibilnost je usklađivanje proizvoda sa drugim proizvodom koji ne mora biti implementiran u skladu sa opštim
otvorenim standardima. U tom slučaju, proizvod je samo kompatibilan sa tim drugim proizvodom. Otvoreni standadi su rezultat rada konsultativne grupe
koju čine predstavnici proizvođača, istraživača I drugih zainteresovanih strana u razvoju.
XML
Extensible Markup Language (XML) je jezik označavanja (markup language) koji definiše skup pravila za formulisanje dokumenata u forma koji je čitljiv za
ljude i mašine. XML specifikacija je otvoreni standard koji definisala W3C. Glavni ciljevi XML su: jednostavnost, opštost, primenljivost na Internetu. To je
tekstualni format podataka sa dobrom podrškom za Unicode format, koji je potreban različitim govornim jezicima. XML se široko koristi za strukture
podataka koje se koriste kod web servisa. Razvijeni su brojni API (Application programming interfaces) koji omogućavaju procesiranja XML podataka.
Primer XML dokumenta:
<?xml version="1.0" standalone="yes"?>
<SpisakProizvodjaca>
<Proizvodjac>
<NazivProizvodjaca>Dijamant</NazivProizvodjaca>
<NazivRobe>Margarin</NazivRobe>
<CenaRobe>100</CenaRobe>
</Proizvodjac>
<Proizvodjac>
<NazivProizvodjaca>ZitoProdukt</NazivProizvodjaca>
<NazivRobe>Suncokret</NazivRobe>
<CenaRobe>50</CenaRobe>
</Proizvodjac>
</SpisakProizvodjaca>
JSON
Java Script Object Notation ili JSON je format otvorenog standardnog formata koji koristi čoveku-čitljiv tekst kako bi slao objekte podataka. Sastoji se od
atribut-vrednost parova i tipa podatka - nizovi. Predstavlja uobičajeni format podatka za asinhronu komunikaciju (web browser-server). Predstavlja
zamenu za XML. JSON je format podataka nezavisan od programskog jezika. Mnogi programski jezici uključuju naredbe za generisanje I parsiranje
(izdvajanje elemenata) JSON formatiranih podataka. Ekstenzija fajla je “*.json”. Douglas Crockford je osmislio JSON format ranih 2000tih.
Primer JSON fajla (Google Maps): {"markers": [ { "point":new GLatLng(40.266044,-74.718479), "homeTeam":"Lawrence Library", "awayTeam":"LUGip", "markerImage":"images/red.png", "information": "Linux users group meets second Wednesday of each month.", "fixture":"Wednesday 7pm", "capacity":"", "previousScore":"" }, { "point":new GLatLng(40.211600,-74.695702), "homeTeam":"Hamilton Library", "awayTeam":"LUGip HW SIG", "markerImage":"images/white.png", "information": "Linux users can meet the first Tuesday of the month to work out harward and configuration issues.", "fixture":"Tuesday 7pm", "capacity":"", "tv":"" }, { "point":new GLatLng(40.294535,-74.682012), "homeTeam":"Applebees",
"awayTeam":"After LUPip Mtg Spot", "markerImage":"images/newcastle.png", "information": "Some of us go there after the main LUGip meeting, drink brews, and talk.", "fixture":"Wednesday whenever", "capacity":"2 to 4 pints", "tv":"" }, ] }
DISTRIBUIRANE BAZE PODATAKA
Distribuirane baze podataka su baze podataka gde uređaji na kojima su uskladištene nisu povezani na zajednički procesor. Mogu biti čuvane na više
računara, smeštenih na jednoj fizičkoj lokaciji ili mogu biti smeštene na računarima na širem prostoru I povezane računarskom mrežom. Administratori
sistema mogu da distribuiraju bazu podataka, odnosno kolekcije podataka kroz više fizičkih lokacija. Distribuirana baza podataka može da se nalazi na
organizovanoj mreži server ili decentralizovana na nezavisnim računarima na internetu, na korporativnim intranet sistemima ili računarskim mrežama
drugih organizacija. Distribuirane baze podataka unapređuju performance prema korisniku sistema, omogućujući da se transakcije izvršavaju na više
mašina, umesto da se izvršavaju na jednoj mašini. Dva su osnovna procesa koja održavaju bazu podataka ažurnom su replikacija i dupliciranje podataka.
Replikacija uključuje specijalizovani softver koji prati promene u distribuiranoj bazi podataka. Jednom kada su promene identifikovane, replikacioni process
usaglašava podatke u svim distribuiranim bazama podataka. Dupliciranjem podataka identifikuje se glavna (master) baza podataka i kopiraju se svi podaci
u drugu bazu podataka (duplicira se baza podataka). Korisnici menjaju samo podatke u master bazi podataka, a dupliciranjem se pravi rezervna kopija
podataka. Pored ovih tehnika, koristi se I tehnika fragmentacija baze podataka, kao i tehnike distribuiranih upita (upiti nad više baza podataka).
SISTEMI ZA UPRAVLJANJE DISTRIBUIRANIM BAZAMA PODATAKA
Sistem za upravljanje bazom podataka (Database management system DBMS) je softverska aplikacija koja razmenjuje podatke sa korisnicima I drugim
aplikacijama kako bi se omogućila specifikacija, smeštanje, ažuriranje i analiziranje podataka. DBMS opšte namene omogućava definiciju, kreiranje,
postavljanje upita, izmene I administraciju baza podataka. Najpoznatiji DBMS su MySQL, PostreSQL, MongoDB, Microsoft SQL Server, Oracle, IBM DB2.
Baza podataka generalno nije portabilna kroz različite DBMS sistema, ali različiti DBMS podržavaju interoperabilnost (razmenu podataka) korišćenjem
standarda – SQL, ODBC, JDBC. Standardi ODBC I JDBC omogućavaju da jedna aplikacija radi sa različitim DBMS. DBMS sistemi se najčešće klasifikuju u
odnosu na model podataka koji podržavaju. Najšire rasprostranjen model podataka kod većeg broja DBMS je relacioni model.
Danas je razvoj distribuiranih DBMS u velikoj ekspanziji, zasnivajući se I na drugim modelima podataka – nestrukturirani podaci, NoSQL DBMS, XML baze
podataka slično. Neki primeri distribuiranih DBMS: Aerospike, Cassandra, Clusterpoint, ClustrixDB, Couchbase, FoundationDB, NuoDB, Riak ...
KATALOG DISTRIBUIRANE BAZE PODATAKA
Katalog je sistemska baza podataka koja sadrži podatke o baznim relacijama, pogledima, indeksima, korisnicima itd, a u slučaju distribuiranog sistema, i o
načinu i lokacijama na koje su podaci razdeljeni i ponovljeni. Sam katalog u distribuiranom sistemu može biti centralizovan (samo na jednoj lokaciji),
potpuno ponovljen (na svim lokacijama po jedna kopija kataloga), particioniran (na svakoj lokaciji je deo kataloga koji se odnosi na objekte sa te lokacije)
ili kombinovan (katalog je particioniran, ali na jednoj lokaciji postoji i centralna kopija kompletnog kataloga).
DISTRIBUIRANE TRANSAKCIJE
Distribuirana transakcija je transakcija nad distribuiranim bazama podataka, koje se nalaze na više različitih čvorova (host mašina) u računarskoj mreži.
Najčešće host za pojedinačni segment distribuirane baze podataka obezbeđuje transakcione resurse, ali postoji transakcioni menadžer koji je odgovoran za
kreiranje i upravljanje globalnom transakcijom koja uključuje sve operacije nad pojedinačnim bazama podataka svih pripadajućih hostova. Distribuirane
transakcije, kao I sve transakcije, moraju imati sve četiri ACID (Atomarnost, Konzistentnost- Consistency, Izolacija, Trajnost – Durability) osobine. Pod
distribuiranom transakcijom se može smatrati transakcija nad bazom podataka koja mora biti sinhronizovana (obezbeđujući ACID) između više baza
podataka koje učestvuju I koje su distribuirane na različitim fizičkim lokacijama. Karakteristika Atomarnosti govori o procesu transakcije kao “sve ili ništa”.
Izolacija se odnosi na potrebu serijalnost bude očuvana, pa se primenjuje dvofazno zaključavanje zbog kontrole konkuretnosti. Uobičajeni algoritam koji
omogućava korektno izvršavanje distribuiranih transakcija je dvofazna potvrda (commit). Distribuirane transakcije se mogu izvršavati i u sistemima koje
koriste web servise. Distribuirane transakcije mogu biti “brze” i “long-lived” (situacija kod uključivanja web servisa). Neke od savremenih tehnologija
(Enterprise Java Beans - EJBs) , Microsoft Transaction Server (MTS)) u potpunosti podržavaju standard distribuiranih transakcija.
Distribuirana transakcija u Visual studio NET okruženju podržana je u okviru standardne biblioteke System.Transactions. Nakon uključivanja ove biblioteke,
moguće je koristiti klasu TransactionScope, koja upravlja svim drugim transakcijama nad pojedinačnim bazama podataka koje pripadaju skupu
distribuiranih baza podataka.
using (TransactionScope scope = new TransactionScope())
{
using (SqlConnection connection1 = new SqlConnection(connectString1))
{
// Opening the connection automatically enlists it in the
// TransactionScope as a lightweight transaction.
connection1.Open();
int returnValue1 = 0;
// Create the SqlCommand object and execute the first command.
SqlCommand command1 = new SqlCommand(commandText1, connection1);
returnValue1 = command1.ExecuteNonQuery();
// If you get here, this means that command1 succeeded. By nesting
// the using block for connection2 inside that of connection1, you
// conserve server and network resources as connection2 is opened
// only when there is a chance that the transaction can commit.
using (SqlConnection connection2 = new SqlConnection(connectString2))
{
// The transaction is escalated to a full distributed
// transaction when connection2 is opened.
connection2.Open();
// Execute the second command in the second database.
int returnValue2 = 0;
SqlCommand command2 = new SqlCommand(commandText2, connection2);
returnValue2 = command2.ExecuteNonQuery();
}
}
// The Complete method commits the transaction. If an exception has been thrown,
// Complete is not called and the transaction is rolled back.
scope.Complete();
} // using
UPITI NAD DISTRIBUIRANIM BAZAMA PODATAKA
Distribuirani upiti pristupaju podacima iz više izbora podataka, koji čak mogu biti i heterogeni. Izvori podataka mogu biti na istom ili na različitim
računarima. Microsoft SQL Server podržava distribuirane upite koristeći OLE DB. Korisnici SQL Servera mogu da koriste distribuirane upite da bi pristupili:
Distribuiranim podacima koji su smešteni na više instanci SQL Servera.
Heterogenim podacima koji su smešteni na različitim relacionim I nerelacionim izvorima podataka, kojima se pristupa koristeći OLE DB provajder.
OLEDB provajderi daju mogućnost korišćenja podataka u tabelarnoj formi memorijskih kolekcija redova (“rowsets”), kojima se može pristupati
putem Transact-SQL naredbi, kao da su SQL Server naredbe.
REPLIKACIJA PODATAKA
Replikacija podrazumeva deljenje informacija koje obezbeđuje konzistentnost između redundantnih resursa (hardverskih ili softverskih komponenti), kako
bi se unapredila pouzdanost, tolerancija na greške i mogućnost pristupa. Razlikujemo:
Replikaciju podataka – ako su isti podaci smešteni na više različitih skladišnih uređaja,
Replikaciju procesiranja – kada se isti zadatak procesiranja izvršava više puta.
Razlikuju se:
Aktivna replikacija – svaka izmena se procesira na sve replike istovremeno.
Pasivna replikacija – svaka izmena se odražava na jednu repliku, a na osnovu nje I na ostale replike.
Treba razlikovati replikaciju i bekap podataka. Kod bekapa podataka čuva se kopija podataka duže vremena neizmenjena, dok repliciranje podrazumeva
frekventne izmene i usklađivanje podataka.
PARTICIONISANJE BAZE PODATAKA
Particionisanje je podela logičke celine baze podataka na različite nezavisne elemente (koji mogu biti smešteni na fizički različitim lokacijama) od kojih se
sastoji. Particionisanje baze podataka se realizuje u cilju unapređenja upravljanje podacima, performance, dostupnost podataka i balansiranje učitavanja
(load balancing).
Primena particionisanja je u okviru distribuiranih DBMS. Svaka particija može biti postavljena na jednu ili više čvorova, a korisnici pojedinačnog čvora
mogu da izvršavaju lokalne transakcije nad jednom particijom, čime se povećava dostupnost i bezbednost podataka.
Razlikujemo dve najčešće korišćene metode particionisanja:
1. horizontalno particionisanje, gde se određeni zapisi čuvaju u bazi podataka koja se odnosi na podskup svih zapisa, a razvrstavanje se vrši prema nekom
kriterijumu (npr. Ukoliko određeni podatak pripada nekoj listi ili opsegu podataka onda se snima u jednu bazu podataka, a ako pripada drugom opsegu ili
listi, snima se u drugu bazu podataka).
2. verikalno particionisanje, gde se struktura tabele deli vertikalno, tj. jedan deo kolona strukture relacione tabele se čuva u jednoj bazi podataka, a druga
baza podataka sadrži drugi deo kolona celovite strukture tabele. Kriterijum za vertikalnu podelu može biti frekvencija pristupa I izmene podataka, pa bi se
mogli odvojiti frekventno korišćeni od manje frekventno korišćenih podataka.
OPORAVAK DISTRIBUIRANE BAZE PODATAKA Oporavak podataka je process spasavanja (vraćanja) izgubljenih ili oštećenih podataka na osnovu sekundarnog medija na kom su podaci snimljeni. Podaci
mogu biti oštećeni ili obrisani zbog softverskih ili hardverskih razloga, a takođe mogu biti i nedostupni zbog kriptovanja.
Kada su u pitanju distribuirane baze podataka, zbog replikacije podataka moguće je kasnije nadoknaditi podatke u nekoj od particionisanih baza podataka
koja je u nekom trenutku nedostupna. Nadoknađivanje podataka se vrši upisom nedostajućih podataka ili ažuriranjem postojećih podataka novim
vrednostima koje su prisutne na ostalim fragmentima.
WEB APLIKACIJE
Web aplikacija je softverska aplikacija realizovana po klijent-server modelu, gde se klijentska aplikacija izvršava u okviru web browsera, na osnovu
procesiranja koje se realizuje na serveru. Web aplikacija se postavlja (hostuje) na serverski računar koji mora imati instaliran program koji će da procesira
naredbe same aplikacije i priprema prikaz koji se prezentuje klijentu. Takvi programi su web serveri.
Mobilne web aplikacije - Web aplikacije se mogu koristiti i u okviru web browsera koji su instalirani na mobilnom uređaju. Pri tome se mora voditi računa
da sama web aplikacija koja se postavlja na web server bude prilagodljiva (“responsive web design”) za prikaz na malim ekranima I da može da se koristi
na “touch” ekranima.
MOBILNE APLIKACIJE
Mobilna aplikacija je softver koji je dizajniran da se izvršava na mobilnim uređajima, kao što su smart telefoni i tablet računari. Mobilne aplikacije mogu
biti instalirane u okviru pripreme za korišćenje kod proizvodnje, naknadno instalirane ili se mogu koristiti web aplikacije koje u okviru web browsera
mobilnog uređaja imaju procesiranje klijentske strane(npr. putem Java skripta). Razvoj aplikacija za mobilne uređaje zahteva uzimanje u obzir ograničenja
i karakteristika ovih uređaja. Mobilni uređaji se napajaju sa baterije i zato imaju manje moćne procesore nego personalni računari, ali zato imaju i dodatne
karakteristike, kao što je detekcija lokacije. Developeri treba da uzmu u obzir širok spektar veličina ekrana, hardverskih specifikacija i konfiguracija, kao i
intenzivnu konkurenciju mobilnog softvera i promena koje se odnose na različite platforme. Razvoj mobilnih aplikacija zahteva korišćenje specijalizovanih
razvojnih okruženja. Mobilne aplikacije se prvo testiraju korišćenjem emulatora, a tek onda se testiraju na samom uređaju. Kod razvoja mobilnih
aplikacija, dizajn korisničkog interfejsa je takođe važan, pri čemu je bitno da bude olakšana manipulacija sistemom. Korisnički interfejs (front-end) zavisi
od programske logike (back-end) kako bi se podržao udaljeni pristup informacionom sistemu organizacije. Mobilni back-end uključuje: data routing,
security, authentication, authorization, working off-line i orkestraciju servisa. Ova funkcionalnost je podržana kombinovanjem komponenti srednjeg sloja
koje obuhvataju: mobile app servers, Mobile Backend as a service (MBaaS), and SOA infrastructure.
PROGRAMSKI JEZICI I RAZVOJNI ALATI ZA RAZVOJ MOBILNIH APLIKACIJA
Razvoj mobilnih aplikacija uključuje više slojeva:
1. Front-end (dizajn korisničkog interfejsa, servisi za pristup uređaju i prilagođavanje različitim platformama:
- Programski jezici: C, C++, C#, Java, HTML, Java Script, CSS, Objective-C, Ruby, Action Script
- Razvojni alati: Eclipse, Intelli J, Android Studio, BlackBerry JDE, Visual Studio, Xcode, Xamarin Studio
2. Back-end (autorizacija korisnika, servisi sa podacima, poslovna logika)
- Programski jezici: C#, Java, Java Script, VB.NET, Objective-C, ActionScript, XML, HTML, Ruby on Rails
- Razvojni alati: Eclipse, GO!AppZone Studio, Visual Studio, IntelliJ
3. Bezbednosni sloj (uključivanje aplikacija u sigurnosni sistem, enkripcija podataka, izveštavanje i statistika)
Kriterijum za izbor razvojne platforme uključuje ciljnu mobilnu platformu:
- Univerzalni pristup različitim platformama: HTML, CSS, Java Script za korisnički interfejs web aplikacije koja se pokreće putem web browsera
- Izvorne (native) mobilne aplikacije koje se direktno izvršavaju na samom mobilnom uređaju:
o Android operativni sistem – Eclipse IDE (razvojno okruženje) sa Android Developer Tools (ADT) plugin, programski jezik Java
o Apple iOS razvoj - Xcode IDE sa Objective-C ili Swift programskim jezikom
o Windows i BlackBerry – imaju svoja razvojna okruženja.
Savremeni razvojni okviri (framework) uključuju alate koji podržavaju različite platforme i programske jezike -React Native, Flutter,Xamarin.
Testiranje mobilnih aplikacija – prvo se testiraju u okviru emulatora koji su uz razvojno okruženje, a kasnije se postavljaju na uređaje radi testiranja. Neki
od emulatora su: Google Android Emulator , Android SDK Emulator , MobiOne Developer, BlackBerry Simulator, TestiPhone.
INTERNET OF THINGS
Termin “Internet of Things” prvi je predložio Kevin Ashton 1999 godine. Internet of things (IoT) predstavlja povezivanje fizičkih uređaja, vozila, zgrada I
drugih elemenata koristeći integrisanu elektroniku, softver, senzore, aktuatore I mrežne konekcije koje omogućavaju da ovi objekti (uređaji, vozila, zgrade
I drugo) prikupljaju i razmenjuju podatke. U 2013 godini Global Standards Initiative on Internet of Things (IoT-GSI) definisala je IoT kao "a global
infrastructure for the information society, enabling advanced services by interconnecting (physical and virtual) things based on existing and evolving
interoperable information and communication technologies" and for these purposes a "thing" is "an object of the physical world (physical things) or the
information world (virtual things), which is capable of being identified and integrated into communication networks". IoT omogućava da objekti budu
udaljeno nadgledani I kontrolisani putem mrežne infrastructure, koristeći mogućnosti direktnije integracije fizičkog sveta u računarski-bazirane sisteme,
rezultujući unapređivanjem efikasnosti, preciznosti I uz ekonomske efekte zbog umanjenja potrebe za direktnom ljudskom intervencijom.
SMART HOME
Automatizacija doma ili pametna kuća (“domotics”) je concept ugrađivanja automatizacije u kuće. Uključuje integrisane sisteme za kontrolu I
automatizaciju osvetljenja, grejanja, ventilacije, bezbednosnih sistema, klimatizacije, kao I automatizaciju kućnih uređaja – mašine za pranje veša,
šporeta, frižidera itd. Kućni uređaji, daljinski upravljani putem Interneta, čine važnu komponentu Internet of Things. Moderni sistemi zasnivaju se na
bežičnim vezama(WiFi) i sastoje se od switch-eva i senzora koji su povezani na centralni hub odakle je ceo sistem kontrolisan putem korisničkog interfejsa
koji realizuje upravljanje putem softvera mobilnog telefona, tablet ili web interfejsa. Neki od najpopularnijih komunikacionih protokola koji se koriste kod
“Smart Home”: X10, Ethernet, RS-485, 6LoWPAN, Bluetooth LE (BLE), ZigBee and Z-Wave. Postoji tri generacije automatizacije kuće:
1. Prva generacija: wireless tehnologija sa proxy serverima;
2. Druga generacija: veštačka inteligencija koja upravlja uređajima;
3. Treća generacija: Roboti koji interaguju sa ljudima.
SMART CITY
Smart city je concept integracije informaciono-komunikacionih tehnologija i tehnologije Internet of Things kako bi se upravljalo resursima grada. Resursi
grada obuhvataju različite javne institucije, transportne sisteme, energetske sisteme I druge javne službe I servise. Smart city koristi urbane informacione
tehnologije kako bi se unapredila efikasnost usluga javnih službi. Primena ICT u okviru smart city koncepta omogućava upravi grada da direktno
komunicira sa zajednicom I gradskom infrastrukturom, uz monitoring događaja u gradu I kvaliteta života. Uz upotrebu senzora integrisanih sa monitoring
sistemima u realnom vremenu, podaci se prikupljaju od građanstva I uređaja, a zatim procesiraju I analiziraju. Akvizicija podataka I analiza su ključni
elementi efikasnosti sistema.
GEOGRAFSKI INFORMACIONI SISTEMI
Geografski informacioni sistem (GIS) je sistem dizajniran za akviziciju, skladištenje, obradu, analizu, predstavljanje (vizualizaciju) i upravljanje prostornim
ili geografskim podacima. Posebna naučna disciplina “Geographic Information Science” bavi se konceptima, aplikacijama i sistemima koji se odnose na
geografske primene informacionih sistema. GIS je širi pojam koji uključuje širok niz tehnologija, procesa i metoda koje se odnose na inženjerstvo,
menadžment, telekomunikacije i druge, a osnova predstavlja mnoštvo lokacijski-vezanim servisima koji se odnose na analizu i vizualizaciju podataka.
Koncept distribuiranog GIS sistema uključuje implementaciju GIS gde sve komponente nisu smeštene na jednoj fizičkoj lokaciji, npr. U delu procesiranja,
baze podataka ili procesiranja grafičkog interfejsa. Primeri za distribuirani GIS su web-bazirani GIS, mobilni GIS i slično.
LITERATURA
Udžbenici
1. George Coulouris, Jean Dollimore, Tim Kindberg, Gordon Blair: "Distributed Systems: Concepts and Design", Addison Wesley, 2012.
2. Tanenbaum A, Van Steen M: “Distributed systems, Principles and Paradigms”, VrijeUniversiteit, Amsterdam, Pearson Prentice Hall, 2007.
3. Ajay D. Kshemkalyani, Mukesh Singhal: "Distributed Computing, Principles, Algorithms, and Systems", Cambridge University Press 2008
4. Mogin Pavle, Lukovic Ivan, Govedarica Miro: “Principi projektovanja baza podataka”, Fakultet tehničkih nauka, Novi Sad, 2000.
Dodatna literatura
1. Journal of Parallel and Distributed Computing, http://www.sciencedirect.com/science/journal/07437315/99
2. Distributed Computing Journal, http://link.springer.com/journal/446
3. Active distributed computing projects, http://www.distributedcomputing.info/projects.html
4. Portal – distributed computing, http://www.distributedcomputing.info/
5. Java Distributed Computing Book, http://docstore.mik.ua/orelly/java-ent/dist/index.htm
6. Ozsu, Valduries, Principles of Distributed Database Systems, 3.ed, Springer, 2011. [2.ed, Prentice Hall, 1999.]
7. Helal, Heddaya, Bhargava, Replication Techniques in Distributed Systems, Springer, 1996.