OTVORENO RA^UNARSTVO REST
MARIO @AGAR
Otvoreno računarstvo
o Representational State Transfer (REST)o Web aplikacije
Otvoreno računarstvo
Mario Žagar
Representational State Transfer(REST)
Otvoreno računarstvo - REST, Web aplikacije4
RESTo REST ili REpresentational State Transfer
o Roy Fielding, 2000., doktorska disertacija
o Tip programske arhitekture za izgradnju raspodijeljenih sustavao Mogu se koristiti raznolike tehnologije
o Sustavi koji prate REST principe - "RESTful"o Najčešće su otvoreni, skalabilni, nadogradivi i
jednostavni
Otvoreno računarstvo - REST, Web aplikacije5
REST – principio Skup principa mrežne arhitekture:
o Aplikacijska stanja i funkcionalnosti se dijele na resurseo Svaki resurs je jedinstveno adresirljiv uporabom
univerzalne sintakse koja se koristi u hipermedijskim linkovima
o Svi resursi dijele uniformno sučelje za prijenos stanja između klijenta i resursa pomoću:o Dobro definiranih operacijao Definiranih tipova podataka, podržavajući i trenutnu izgradnju
kôda (code in demand)o Protokol koji je klijentsko-poslužiteljski, bez pamćenja
stanja (stateless), koji se može pohraniti u priručnu memoriju (cacheable) i višeslojan
Otvoreno računarstvo - REST, Web aplikacije6
REST – tehnologijeo URI su najčešći odabir za imenice
o Osnova sustava
o HTTP metode su najčešći odabir za glagoleo HTTP je "najuspješniji" RESTful protokolo Ugrađeni caching u protokolo Autentikacija korištenjem HTTP autentikacijskih metodao Sigurni prijenos podataka pomoću HTTPS (HTTP preko SSL)
o XML je najčešći odabir za tipove podataka
o Odabir nekih drugih tehnologija samo s vrlo dobrim razlogom
Otvoreno računarstvo - REST, Web aplikacije7
Web je sustavo Sustav raspodijeljenog hipermedija
o Arhitekturalne komponente: URI, HTTP, HTML, XMLo Ostale Web tehnologije nasljeđuju osnovne
komponente
o Značajke Weba kao sustava:o Otvorenost – otvoren prema novim tehnologijamao Skalabilnost – proširiv, bez uskih grlao Nadogradivost – evoluira i nadograđuje seo Jednostavnost – preživljava na osnovnim postavkama
Otvoreno računarstvo - REST, Web aplikacije8
Web je RESTfulo Resursi se definiraju pomoću URI
o Ne pristupa im se izravno, već preko reprezentacijao Moraju imati naziv – inače kao da ih nemao Najčešći tip resursa je dokument
o Stanja su predstavljena sadržajem koji se prenosio Protokol je bez pamćenja stanja
Web aplikacije
Otvoreno računarstvo - REST, Web aplikacije10
Web kao univerzalna platforma
o Osnovne komponente Web sloja (univerzalne platforme):o platformno ovisne inačice Web klijenta i poslužiteljao komunikacija između komponenata: HTTP
o Podaci razmjenjivani između komponenata: o MIME (Multi-purpose Internet Mail Extensions) objektio poslužitelji sadrže objekte i šalju njihove kopije, preglednici
dobavljaju kopije i prikazuju ih
Otvoreno računarstvo - REST, Web aplikacije11
Aplikacije nad univerz. platformom?
o Univerzalnost = platformna neovisnosto koriste funkcionalnost Web sloja, ne OS-ao komuniciraju razmjenom MIME objekata
Otvoreno računarstvo - REST, Web aplikacije12
Karakteristike komunikacije
o Osnovna arhitektura Weba dvoslojna:o sloj prezentacije, sloj podatakao zahtjev-odgovor transakcije, usluga bez stanjao tok podataka između slojeva asimetričan
o Kako uz dane karakteristike stvoriti interaktivnu aplikaciju unutar platformno neovisnog sloja?
Otvoreno računarstvo - REST, Web aplikacije13
Interaktivnost na strani korisnika
o Osnovni mehanizmi interkativnosti:o korištenje veza – zahtjevi za novom stranicomo obrasci za unos podataka od strane korisnika + prijenos
do poslužitelja - POST i GET metode
Otvoreno računarstvo - REST, Web aplikacije14
Dinamičko stvaranje sadržaja
o Na zahtjev za stranicom (URL) Web poslužitelj može:o dohvatiti traženu stranicu iz datotečnog sustava i vratiti
je pregledniku,o proslijediti zahtjev za stranicom određenom izvršnom
modulu kao proširenju funkcionalnosti Web poslužitelja,o ili nešto treće (Web poslužitelj je autoritet !)
Otvoreno računarstvo - REST, Web aplikacije15
Izvršni modul
o Izvršni modul na strani poslužitelja:o prihvaća podatke o zahtjevu od poslužitelja, obrađuje iho surađuje s drugim programima (OS, baze podataka, ...)o dinamički stvara sadržaj nove HTML stranice (tj. MIME
kodiranog objekta) i prosljeđuje Web poslužiteljuo poslužitelj (uz neke dodatke) vraća sadržaj pregledniku
Otvoreno računarstvo - REST, Web aplikacije16
Izvedba aplikacijeo U izvedbi Web aplikacije izvršni modul:
o obrađuje podatke proslijeđene od strane korisnikao održava i mijenja stanje aplikacije (za aplikacije sa stanjem)o surađuje sa slojem podataka (najčešće baza podataka)o stvara novo stanje korisničkog sučelja (HTML stranice) na
temelju stanja aplikacijeo Web aplikacija sa strane preglednika:
o skup logički povezanih HTML stranica tretiranih kao jedinstveni entitet (GUI aplikacije, mijenja se tijekom rada)
Otvoreno računarstvo - REST, Web aplikacije17
Dvoslojna Web aplikacija
Otvoreno računarstvo - REST, Web aplikacije18
Troslojna Web aplikacija
Otvoreno računarstvo - REST, Web aplikacije19
Sloj podatakao Sustavi za upravljanje podacima
o obični ili specijalizirani datotečni sustavio specijalizirani datotečni sustavi (Google FileSystem)o sustavi upravljanja verzijama (cvs, svn ...)o baze podataka (MySQL, PostgreSQL, Oracle, DB2 ...)o ...
o Prenosivost, skalabilnost, pouzdanost, *ost ...o Procjena opterećenja sloja
o količina podataka, broj istovremenih korisnika sustava, ...
Otvoreno računarstvo - REST, Web aplikacije20
Sloj aplikacijske logikeo Web poslužitelji: IIS, Apache ...o Izvedbe izvršnog modula
o CGI (C, C++, shell scripts), PHP, Java servlets, JSP, Python, Perl, ASP.NET, Ruby on Rails, ColdFusion ...
o Prenosiva ili platformno ovisna izvedba?o prenosivost:
o lakša zamjena poslužiteljske platfomeo platformna ovisnost:
o korištenje platformno- ili aplikacijsko-specifičnih funkcionalnostio bolje performanse
Otvoreno računarstvo - REST, Web aplikacije21
Sloj prezentacijeo Preglednici: IFirefox, Internet Explorer, Opera ...o Statički elementi sučelja:
o HTML, XHTML, XML, CSS, ...o Dinamički elementi sučelja:
o XSLT, DHTML, JavaScript, DOM, Java appleti, Flash, ...o Interakcija s poslužiteljem:
o HTML veze, HTML obrasci, AJAX, ...o Problem preglednika i prenosivosti sloja prezentacije:
o pridržavanje standarda kod implementacije pojedine tehnologije
Otvoreno računarstvo - REST, Web aplikacije22
Prednosti Web aplikacija
o Veći dio infrastrukturnih problema rješen korištenjem Weba kao “distribucijskog kanala”
o Nema lokalne instalacije klijenta, raspoloživost Web klijenta na raznorodnim platformama
o Centralizirano održavanje sustava, jednostavne nadogradnje novih verzija aplikacije
o Dostupan veći broj specijaliziranih jezika, razvojnih alata i okolina, izvršnih okvira
Otvoreno računarstvo - REST, Web aplikacije23
Mane Web aplikacija
o Nužna stalna veza prema poslužiteljuo Akcija na sučelju rezultira kontaktiranjem
poslužitelja, utjecaj latencije mreže na upotrebljivost aplikacije
o Samo jednostavnije izvedbe korisničkog sučeljao Problemi u razvoju zbog nepridržavanja norma
različitih Web preglednikao Problem privatnosti prenošenih podatakao Problem izrade sigurnih i pouzdanih aplikacija
Otvoreno računarstvo - REST, Web aplikacije