Professional Documents
Culture Documents
Nemanja Vlahović
Generacija: 2016
SADRŽAJ
1.UVOD...................................................................................................................................................... 2
2. MVC ARHITEKTURA......................................................................................................................... 3
2.1. Istorija.......................................................................................................................................................... 3
2.2. Primena........................................................................................................................................................ 5
3. KLIJENT-SERVER ARHITEKTURA................................................................................................ 6
3.3. Primena........................................................................................................................................................ 8
4. ZAKLJUCAK......................................................................................................................................... 9
5. LITERATURA.................................................................................................................................... 11
1
Arhitektualni stilovi Nemanja Vlahović
1.Uvod
Arhitektura web aplikacija definiše interakcije između aplikacija, sistema srednjeg softvera i
baze podataka da bi se osiguralo da više aplikacija može raditi zajedno. Kada korisnik otkuca URL
i dodirne „Idi“, pregledač će pronaći računar okrenut prema Internetu na kome živi web lokacija
i zahteva tu određenu stranicu.
Server zatim reaguje slanjem datoteka u pretraživač. Nakon te akcije, pregledač izvršava te
datoteke kako bi korisniku prikazao traženu stranicu. Sada korisnik stupa u interakciju sa web
stranicom. Naravno, sve ove akcije se izvode u roku od nekoliko sekundi. U suprotnom, korisnici
se ne bi mučili sa web lokacijama.
Ono što je ovde važno je kod koji je pregledao pregledač. Ovaj sam kod može ili ne mora imati
specifična uputstva koja govore pretraživaču kako da reaguje na širok spektar unosa. Kao
rezultat toga, arhitektura web aplikacija uključuje sve podkomponente i razmene spoljnih
aplikacija za celu softversku aplikaciju.
Kod web aplikacija imate server naspram klijenta. U suštini, postoje dva programa koja se
istovremeno pokreću:
2
Arhitektualni stilovi Nemanja Vlahović
2. MVC arhitektura
MVC (енгл. Model-view-controller) arhitektura je projektni uzorak (engl. patern) koji se obično
koristi za razvoj korisiničkih interfejsa. Počiva na ideji o ponovnoj upotrebi već postojećeg
softverskog koda, olakšavanju razvoja i kasnijem održavanju aplikacionog softvera metodom
razdvajanja na posebne komponente: model, prikaz podataka (pogled) i kontrolor (upravljač),
pri čemu je komponenta za prikaz informacija odvojena od interakcije korisnika sa tim
informacijama.
2.1. Istorija
MVC arhitektura se sastoji od određenih komponenti u kojima je svaka zadužena za obavljanje
specifičnih funkcija. Takvo rešenje je mnogo bolje u odnosu na ranije rešenja u kojima se sve
nalazilo na jednom mestu, što je dovodilo do otežanog čitanja izvornog koda, otežanog
pronalaženja i ispravljanja grešaka, kao i do znatno manje funkcionalnosti i fleksibilnosti. MVC je
kao okvir softverske arhitekture nastao pre nego što je izmišljen web-pregledač, i u početku je
korišćen samo za kreiranje grafičkog korisničkog okruženja.
Norveški informatičar Trigvi Riensku (norv. Trygve Reenskaug) je tokom posete Ziroksu
sedamdesetih godina prvi put predstavio MVC arhitekturu primenjenu na Smalltalk-76. On je
MVC kao apstraktni prikaz arhitekture softvera definisao na sledeći način:
Model predstavlja podatke. Podaci mogu biti samo jedan objekat ili struktura objekata.
Veza između modela i onoga što vidi korisnik trebala bi da bude 1 na 1. Komunikacija
između modela i spoljašnjeg sveta bi trebao da se obavlja uz pomoć kontrolora.
Pogled ili vizualna prezentacija modela, je povezana sa modelom ili jednim njegovim
delom. Ponaša se kao filter, koji iz modela naglašava određene vrednosti koji opisuju
podatke (atributi), dok neke druge potiskuje i tako filtrirane podatke prikazuje korisniku.
Takođe, ima mogućnost ažuriranja modela, slanjem odgovarajućih zahteva korisnika.
Zatim su osamdesetih godina Džejms Altof (нем. James Althoff) i drugi upotrebili verziju MVC-a
za Smalltalk-80 biblioteku klasa. Tek u članku iz 1988-e MVC je predstavljen kao poseban pojam.
3
Arhitektualni stilovi Nemanja Vlahović
U početku MVC šablon nije funkcionisao kao danas, već je izgledao ovako:
prikaz podataka iz modela, pri čemu jedan podatak može više načina prikazivanja. Na primer,
očitanje temperature se može prikazati visinom stupca ili oznakom za temperaturu
kontrolor prikuplja akcije koje korisnik napravi i na osnovu njih menja model. Tako na primer,
kontrolor može da prikuplja akcije koje korisnik napravi mišem, a zatim, na osnovu njih može da
izmeni model. U tom smislu, kontrolor je predstavljen kao program koji radi s ulaznim
podacima, slično kao što se u korisničkom okruženju radi sa izlaznim podacima.
Na taj način, prikaz podataka se ažurira direktno, na osnovu izmena u modelu. Kada se model
izmeni, on pokrene akciju koja menja prikaz podataka, pri čemu kontrolor ne upravlja prikazom
podataka, već samo menja model, a prikaz podataka se ažurira tek nakon promena realizovanih
u modelu.
2.2. Primena
Osnovna prednost MVC arhitekture je što se razdvajanjem u posebne celine, kod velikih
projekata, na kome može da radi više osoba, omogućava laka izmena nekog elementa, bez
velike intervencije u drugim elementima, kao i ponovno korišćenje već napravljenih elemenata.
previše kompleksna za primenu kod razvoja manjih aplikacija, što dovodi do pogoršanja kako
njenog dizajna, tako i njenih karakteristika
usled čestih izmena modela prikaz podataka može ostati preplavljen zahtevima za izmenu,
što može dovesti do kašnjenja u odgovorima na zahteve.
4
Arhitektualni stilovi Nemanja Vlahović
MVC projektni šablon se sastoji od tri zasebne, ali međusobno povezane komponente:
Praktično, u ovakvoj arhitekturi, model predstavlja „telo”, prikaz podataka su „oči”, a konotrolor
„mozak” projekta.
5
Arhitektualni stilovi Nemanja Vlahović
3. Klijent-Server arhitektura
Model klijent—server je struktura distribuiranih aplikacija koja deli zadatke između onih koji
obezbeđuju resurse ili usluge — servera i onih koji traže usluge — klijenta. Najčešće klijenti i
serveri komuniciraju preko kompjuterske mreže na odvojenom hardveru, ali mogu biti smešteni
u istom sistemu. Server host pokreće server programe koji dele svoje resurse sa klijentima.
Klijent ne deli svoje resurse, ali zahteva serverov sadržaj ili uslugu. Klijenti započinju sesiju
komunikacije sa serverima koji čekaju dolazeće zahteve. Primeri kompjuterskih aplikacija koji
koriste klijent—server model su imejl, web.
Da li je kompjuter klijent, server, ili oba određuje vrsta aplikacije koje zahtevaju uslugu. Na
primer, jedan računar može istovremeno pokretati softver i za veb server i za fajl server da bi
obezbedio različite podatke klijentima koji imaju različite zahteve. Softver klijenta može
komunicirati sa softverom servera unutar istog računara. Komunikacija između servera, na
primer sinhronizacija podataka, se naziva inter-server ili server-to-server komunikacija.
6
Arhitektualni stilovi Nemanja Vlahović
Server može primiti zahteve od velikog broja različitih klijenata u kratkom vremenskom
intervalu. Kompjuter može ispuniti ograničeni broj zadataka u datom trenutku i oslanja se na
sistem rasporedjivanja da bi prioritizovao dolazeće zahteve od klijenata i da bi ih ispunio. Da bi
se sprečila zloupotreba i povećala dostupnost, softver servera može da ograniči dostupnost
klijentima. DoS napadi su dizajnirani da iskoriste obavezu servera da obradi dolazeće zahteve
tako što ga preopterete sa previše zahteva u kratkom vremenskom intervalu.
3.3. Primena
Klijent-server model ne zahteva da server-domaćin mora da ima više resursa nego klijent-
domaćin, već omogućava da bilo koji računar opšte namene proširi svoje mogućnosti koristeći
deljene resurse drugih domaćina. Centralizovano računarstvo, međutim, konkretno dodeljuje
velike količine resursa malom broju računara. Što je više obrade prebačeno od klijenta-
domaćina na centralne računare, toliko klijenti-domaćini mogu biti jednostavniji. Najvećim
delom se oslanja na mrežne resurse (servere i infrastrukture) za obradu i skladištenje. Čvor bez
diska učitava čak i operativni sistem sa mreže, a računarski terminal uopšte nema operativni
sistem; već je samo ulazno/izlazni interfejs prema serveru. Suprotno, debeli (zahtevni) klijent,
poput personalnog računara, ima mnogo resursa, i ne oslanja se na server u izvršavanju
osnovnih funkcija.
7
Arhitektualni stilovi Nemanja Vlahović
8
Arhitektualni stilovi Nemanja Vlahović
4. Zakljucak
Kada pišete aplikaciju, na veb programeru je da odluči šta će kod na serveru raditi u odnosu na
kod u pregledaču. Sa kodom na strani servera jezici uključuju:
Rubi na šine
PHP
C#
Java
Pithon
Javascript
U stvari, svaki kod koji može odgovoriti na HTTP zahteve ima mogućnost pokretanja na serveru.
Evo još nekoliko atributa koda na strani servera:
CSS
Javascript
HTML
Zatim ih pregledava korisnik pregledač. Pored toga, korisnik može videti i uređivati kod na strani
klijenta. Osim toga, mora komunicirati samo preko HTTP zahteva i ne može direktno čitati
datoteke sa servera. Dalje, reaguje na unos korisnika.
9
Arhitektualni stilovi Nemanja Vlahović
Razlog zašto je neophodno imati dobru arhitekturu web aplikacija je taj što je nacrt za podršku
budućem rastu koji može doći iz povećane potražnje, buduće interoperabilnosti i povećanih
zahteva za pouzdanošću. Kroz objektno orijentisano programiranje, organizacioni dizajn
arhitekture web aplikacija precizno definiše kako će aplikacija funkcionisati. Neke funkcije
uključuju:
Dostavljanje trajnih podataka putem HTTP-a, koji se mogu razumjeti kodom na strani
klijenta i obrnuto
Obavezni zahtevi sadrže validne podatke
Nudi autentifikaciju za korisnike
Ograničava ono što korisnici mogu videti na osnovu dozvola
Stvara, ažurira i briše zapise
10
Arhitektualni stilovi Nemanja Vlahović
5. Literatura
https://sr.wikipedia.org/wiki/MVC_arhitektura
https://sr.wikipedia.org/wiki/Model_klijent—server
https://stackify.com/web-application-architecture/
https://google.com
11