otvoreno ra^unarstvo - ieee.hr · pdf file5 otvoreno računarstvo - rest, web aplikacije rest...

24
OTVORENO RA^UNARSTVO REST MARIO @AGAR

Upload: donhu

Post on 06-Feb-2018

220 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: OTVORENO RA^UNARSTVO - ieee.hr · PDF file5 Otvoreno računarstvo - REST, Web aplikacije REST – principi o Skup principa mrežne arhitekture: o Aplikacijska stanja i funkcionalnosti

OTVORENO RA^UNARSTVO REST

MARIO @AGAR

Page 2: OTVORENO RA^UNARSTVO - ieee.hr · PDF file5 Otvoreno računarstvo - REST, Web aplikacije REST – principi o Skup principa mrežne arhitekture: o Aplikacijska stanja i funkcionalnosti

Otvoreno računarstvo

o Representational State Transfer (REST)o Web aplikacije

Otvoreno računarstvo

Mario Žagar

Page 3: OTVORENO RA^UNARSTVO - ieee.hr · PDF file5 Otvoreno računarstvo - REST, Web aplikacije REST – principi o Skup principa mrežne arhitekture: o Aplikacijska stanja i funkcionalnosti

Representational State Transfer(REST)

Page 4: OTVORENO RA^UNARSTVO - ieee.hr · PDF file5 Otvoreno računarstvo - REST, Web aplikacije REST – principi o Skup principa mrežne arhitekture: o Aplikacijska stanja i funkcionalnosti

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

Page 5: OTVORENO RA^UNARSTVO - ieee.hr · PDF file5 Otvoreno računarstvo - REST, Web aplikacije REST – principi o Skup principa mrežne arhitekture: o Aplikacijska stanja i funkcionalnosti

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

Page 6: OTVORENO RA^UNARSTVO - ieee.hr · PDF file5 Otvoreno računarstvo - REST, Web aplikacije REST – principi o Skup principa mrežne arhitekture: o Aplikacijska stanja i funkcionalnosti

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

Page 7: OTVORENO RA^UNARSTVO - ieee.hr · PDF file5 Otvoreno računarstvo - REST, Web aplikacije REST – principi o Skup principa mrežne arhitekture: o Aplikacijska stanja i funkcionalnosti

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

Page 8: OTVORENO RA^UNARSTVO - ieee.hr · PDF file5 Otvoreno računarstvo - REST, Web aplikacije REST – principi o Skup principa mrežne arhitekture: o Aplikacijska stanja i funkcionalnosti

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

Page 9: OTVORENO RA^UNARSTVO - ieee.hr · PDF file5 Otvoreno računarstvo - REST, Web aplikacije REST – principi o Skup principa mrežne arhitekture: o Aplikacijska stanja i funkcionalnosti

Web aplikacije

Page 10: OTVORENO RA^UNARSTVO - ieee.hr · PDF file5 Otvoreno računarstvo - REST, Web aplikacije REST – principi o Skup principa mrežne arhitekture: o Aplikacijska stanja i funkcionalnosti

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

Page 11: OTVORENO RA^UNARSTVO - ieee.hr · PDF file5 Otvoreno računarstvo - REST, Web aplikacije REST – principi o Skup principa mrežne arhitekture: o Aplikacijska stanja i funkcionalnosti

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

Page 12: OTVORENO RA^UNARSTVO - ieee.hr · PDF file5 Otvoreno računarstvo - REST, Web aplikacije REST – principi o Skup principa mrežne arhitekture: o Aplikacijska stanja i funkcionalnosti

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?

Page 13: OTVORENO RA^UNARSTVO - ieee.hr · PDF file5 Otvoreno računarstvo - REST, Web aplikacije REST – principi o Skup principa mrežne arhitekture: o Aplikacijska stanja i funkcionalnosti

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

Page 14: OTVORENO RA^UNARSTVO - ieee.hr · PDF file5 Otvoreno računarstvo - REST, Web aplikacije REST – principi o Skup principa mrežne arhitekture: o Aplikacijska stanja i funkcionalnosti

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

Page 15: OTVORENO RA^UNARSTVO - ieee.hr · PDF file5 Otvoreno računarstvo - REST, Web aplikacije REST – principi o Skup principa mrežne arhitekture: o Aplikacijska stanja i funkcionalnosti

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

Page 16: OTVORENO RA^UNARSTVO - ieee.hr · PDF file5 Otvoreno računarstvo - REST, Web aplikacije REST – principi o Skup principa mrežne arhitekture: o Aplikacijska stanja i funkcionalnosti

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)

Page 17: OTVORENO RA^UNARSTVO - ieee.hr · PDF file5 Otvoreno računarstvo - REST, Web aplikacije REST – principi o Skup principa mrežne arhitekture: o Aplikacijska stanja i funkcionalnosti

Otvoreno računarstvo - REST, Web aplikacije17

Dvoslojna Web aplikacija

Page 18: OTVORENO RA^UNARSTVO - ieee.hr · PDF file5 Otvoreno računarstvo - REST, Web aplikacije REST – principi o Skup principa mrežne arhitekture: o Aplikacijska stanja i funkcionalnosti

Otvoreno računarstvo - REST, Web aplikacije18

Troslojna Web aplikacija

Page 19: OTVORENO RA^UNARSTVO - ieee.hr · PDF file5 Otvoreno računarstvo - REST, Web aplikacije REST – principi o Skup principa mrežne arhitekture: o Aplikacijska stanja i funkcionalnosti

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

Page 20: OTVORENO RA^UNARSTVO - ieee.hr · PDF file5 Otvoreno računarstvo - REST, Web aplikacije REST – principi o Skup principa mrežne arhitekture: o Aplikacijska stanja i funkcionalnosti

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

Page 21: OTVORENO RA^UNARSTVO - ieee.hr · PDF file5 Otvoreno računarstvo - REST, Web aplikacije REST – principi o Skup principa mrežne arhitekture: o Aplikacijska stanja i funkcionalnosti

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

Page 22: OTVORENO RA^UNARSTVO - ieee.hr · PDF file5 Otvoreno računarstvo - REST, Web aplikacije REST – principi o Skup principa mrežne arhitekture: o Aplikacijska stanja i funkcionalnosti

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

Page 23: OTVORENO RA^UNARSTVO - ieee.hr · PDF file5 Otvoreno računarstvo - REST, Web aplikacije REST – principi o Skup principa mrežne arhitekture: o Aplikacijska stanja i funkcionalnosti

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

Page 24: OTVORENO RA^UNARSTVO - ieee.hr · PDF file5 Otvoreno računarstvo - REST, Web aplikacije REST – principi o Skup principa mrežne arhitekture: o Aplikacijska stanja i funkcionalnosti

Otvoreno računarstvo - REST, Web aplikacije