SlideShare une entreprise Scribd logo
1  sur  150
Télécharger pour lire hors ligne
Dr.SabinBuragawww.purl.org/net/busaco
Dezvoltarea aplicatiilor Web
de la servicii Web la API-uri deschise
Dr.SabinBuragawww.purl.org/net/busaco
“Prima calitate a stilului este claritatea.”
Aristotel
Dr.SabinBuragawww.purl.org/net/busaco
Care sunt scopurile Web-ului?
Dr.SabinBuragawww.purl.org/net/busaco
Constituirea si interactiunea
cu un spatiu de comunicare inter-umana
partajarea cunostintelor
Dr.SabinBuragawww.purl.org/net/busaco
Constituirea si interactiunea
cu un spatiu de comunicare inter-umana
partajarea cunostintelor
Web social (“Web 2.0”), Web-ul datelor (semantic),…
Dr.SabinBuragawww.purl.org/net/busaco
Exploatarea puterii computationale
accesul la Web se poate realiza
via dispozitive avand resurse reduse
Dr.SabinBuragawww.purl.org/net/busaco
Exploatarea puterii computationale
accesul la Web se poate realiza
via dispozitive avand resurse reduse
Web ubicuu (omniprezent), Web mobil, Web 3D,…
performantaasigurarea scalabilitatii
Dr.SabinBuragawww.purl.org/net/busaco
Cum pot fi accesate & procesate resursele
– date, informatii, cunostinte –
disponibile pe Web?
Dr.SabinBuragawww.purl.org/net/busaco
nevoi ale dezvoltatorilor Web
Solutii multi-platforma, slab-conectate
integrare (in timp-real) la nivel de Internet/Web
a aplicatiilor, serviciilor si sistemelor
Dr.SabinBuragawww.purl.org/net/busaco
nevoi ale dezvoltatorilor Web
Solutii multi-platforma, slab-conectate
integrare (in timp-real) la nivel de Internet/Web
a aplicatiilor, serviciilor si sistemelor
exemplificare: gasirea de resurse Web pe baza localizarii
geografice a utilizatorului, privind ofertele de servicii
multiple disponibile la nivel de dispozitiv mobil
Dr.SabinBuragawww.purl.org/net/busaco
nevoi ale dezvoltatorilor Web
Solutii multi-platforma, slab-conectate
datele sa poata fi descrise pentru a fi “intelese”
de calculatoare si pentru a fi interconectate usor
Dr.SabinBuragawww.purl.org/net/busaco
nevoi ale dezvoltatorilor Web
Solutii multi-platforma, slab-conectate
datele sa poata fi descrise pentru a fi “intelese”
de calculatoare si pentru a fi interconectate usor
exemplu: Web “puzzles”inter-conectarea mai multor
servicii informative (e.g., situri de stiri, blog-uri) conform
preferintelor utilizatorului, pe baza intereselor sale
Dr.SabinBuragawww.purl.org/net/busaco
nevoi ale dezvoltatorilor Web
Servicii atasabile (pluggable) & versatile
Software as a Service – SaaS
Application Service Provider – ASP
Dr.SabinBuragawww.purl.org/net/busaco
Exista un model arhitectural de dezvoltare
a serviciilor la nivel de Web?
Dr.SabinBuragawww.purl.org/net/busaco
solutie
Divizarea aplicatiilor in servicii – independente –
care se pot compune,
menite a se conecta si orchestra in mod spontan
in cadrul proceselor de afaceri/tehnice
Dr.SabinBuragawww.purl.org/net/busaco
solutie
Divizarea aplicatiilor in servicii – independente –
care se pot compune,
menite a se conecta si orchestra in mod spontan
in cadrul proceselor de afaceri/tehnice
Web component-based software
Dr.SabinBuragawww.purl.org/net/busaco
solutie
“The Web is the computer”
Dr.SabinBuragawww.purl.org/net/busaco
solutie
“The Web is the computer”
disponibilitatea unei/unor arhitecturi care…
ofera suport pentru paradigme de comunicare
– bazata pe actualele tehnologii Web –
intre aplicatii eterogene
Dr.SabinBuragawww.purl.org/net/busaco
solutie
“The Web is the computer”
disponibilitatea unei/unor arhitecturi care…
permit(e) localizarea transparenta a serviciilor
Dr.SabinBuragawww.purl.org/net/busaco
solutie
“The Web is the computer”
disponibilitatea unei/unor arhitecturi care…
faciliteaza adaugarea, inlocuirea, eliminarea
serviciilor in mod dinamic
Dr.SabinBuragawww.purl.org/net/busaco
solutie
“The Web is the computer”
disponibilitatea unei/unor arhitecturi care…
ascund(e) dezvoltatorului detaliile de sistem
Dr.SabinBuragawww.purl.org/net/busaco
solutie
“The Web is the computer”
disponibilitatea unei/unor arhitecturi care…
asigura calitatea dezvoltarii si exploatarii
aplicatiilor distribuite si/sau paralele:
standardizare, securitate, disponibilitate,
reutilizare, mentenanta facila etc.
Dr.SabinBuragawww.purl.org/net/busaco
servicii web
Dr.SabinBuragawww.purl.org/net/busaco
servicii web
Software oferind o functionalitate specifica
acces la resurse – Delicious, Pinterest, Slideshare, Vimeo
agregare de stiri – Digg, Reddit
cartografiere – Bing Maps, Google Maps, Nokia Maps
mesagerie instantanee – Jabber, Twitter
realizare de statistici – Google Analytics
retele sociale – e.g., Facebook Open Graph Protocol
spelling checking – Spellr.us
stocare de date – Amazon S3, Dropbox, SkyDrive etc.
…
Dr.SabinBuragawww.purl.org/net/busaco
servicii web
Software oferind o functionalitate specifica
acces la resurse – Delicious, Pinterest, Slideshare, Vimeo
agregare de stiri – Digg, Reddit
cartografiere – Bing Maps, Google Maps, Nokia Maps
mesagerie instantanee – Jabber, Twitter
realizare de statistici – Google Analytics
retele sociale – e.g., Facebook Open Graph Protocol
spelling checking – Spellr.us
stocare de date – Amazon S3, Dropbox, SkyDrive etc.
…
utilizare – la distanta – de alte aplicatii/servicii
Dr.SabinBuragawww.purl.org/net/busaco
servicii web
Accesate standardizat via Web
URI
HTTP
XML si/sau alte formate (e.g., JSON)
Dr.SabinBuragawww.purl.org/net/busaco
servicii web
Cum am implementa un serviciu?
Dr.SabinBuragawww.purl.org/net/busaco
servicii web
Implementare standard
script-uri CGI sau utilizarea serverelor de aplicatii Web
ASP.NET, JSP, PHP, RoR,…
Dr.SabinBuragawww.purl.org/net/busaco
servicii web
Arhitectura generica a unei aplicatii Web
(3-tier application)
Internet
(Web)
Client Server de aplicatii Stocare
(interface) (application) (persistence)
Dr.SabinBuragawww.purl.org/net/busaco
Sponge / Database
Jelly / Business Logic
Custard / Page Logic
Cream / Markup
Fruit / Presentation
C. Henderson, “Scalable Web Architectures”,
Web 2.0 Expo, 2007: iamcal.com/talks/
Dr.SabinBuragawww.purl.org/net/busaco
Sponge / Database
Jelly / Business Logic
Custard / Page Logic
Cream / Markup
Fruit / Presentation
C. Henderson, “Scalable Web Architectures”,
Web 2.0 Expo, 2007: iamcal.com/talks/
Dr.SabinBuragawww.purl.org/net/busaco
servicii web
Traditional, aplicatia ofera o interfata-utilizator
disponibilă pe Web
Dr.SabinBuragawww.purl.org/net/busaco
servicii web
Traditional, aplicatia ofera o interfata-utilizator
disponibilă pe Web
cererile sunt capt(ur)ate via formulare
+ legaturi hipertext
Dr.SabinBuragawww.purl.org/net/busaco
servicii web
Traditional, aplicatia ofera o interfata-utilizator
disponibilă pe Web
cererile sunt capt(ur)ate via formulare
+ legaturi hipertext
utilizatorii umani trebuie sa interpreteze etichetele
si campurile de dialog + raspunsul receptionat
Dr.SabinBuragawww.purl.org/net/busaco
servicii web
Cum obtinem raspunsul pentru a fi (re)folosit
in programele noastre?
procesarea datelor din codul HTMLWeb scrapping
<tr><td>valoare</td><td><input name="val" value="0" readonly type="text"></td></tr>
<tr><td>total (cu TVA)</td><td><input name="cutva" value="0" readonly type="text"></td></tr>
Dr.SabinBuragawww.purl.org/net/busaco
servicii web
Cum obtinem raspunsul pentru a fi (re)folosit
in programele noastre?
orice modificare în marcajerescrierea programului
de preluare a datelor din documentul HTML
???!
Dr.SabinBuragawww.purl.org/net/busaco
servicii web
Ce-ar fi să indicăm datele de intrare și
răspunsul oferit de serviciul Web
într-un format standardizat?
Dr.SabinBuragawww.purl.org/net/busaco
servicii web
posibile soluții:
XML-RPC
SOAP
POX (Plain Old XML)
JSON (JavaScript Object Notation)
“dialog”
prin XML
Dr.SabinBuragawww.purl.org/net/busaco
Există un model arhitectural de dezvoltare
a serviciilor la nivel de Web?
Dr.SabinBuragawww.purl.org/net/busaco
soa
Arhitectura orientata spre servicii
SOA – Service Oriented Architecture
Dr.SabinBuragawww.purl.org/net/busaco
soa
Arhitectura orientata spre servicii
SOA – Service Oriented Architecture
stil arhitectural de proiectare & dezvoltare de aplicatii
considerate drept servicii
care pot fi invocate de alte aplicatii
Dr.SabinBuragawww.purl.org/net/busaco
soa
Paradigma de dezvoltare a software-ului
care adopta folosirea de servicii,
oferind functionalitati solicitate de utilizatori
Dr.SabinBuragawww.purl.org/net/busaco
soa
Paradigma de dezvoltare a software-ului
care adopta folosirea de servicii,
oferind functionalitati solicitate de utilizatori
resursele sunt disponibile via o suita de servicii
independente ale caror implementari
nu trebuie sa fie cunoscute (black box)
Dr.SabinBuragawww.purl.org/net/busaco
soa
Componentele sistemului in ansamblu
au un grad mare de independenta (de-coupling)
Dr.SabinBuragawww.purl.org/net/busaco
soa
Componentele sistemului in ansamblu
au un grad mare de independenta (de-coupling)
serviciile pot fi recompuse/orchestrate
conform cerintelor
Dr.SabinBuragawww.purl.org/net/busaco
soa
Serviciile sa nu depinda de starea comunicarii
(statelessness)
Dr.SabinBuragawww.purl.org/net/busaco
soa
Serviciile sa nu depinda de starea comunicarii
(statelessness)
cantitatea de informatie specifica unei activitati
ce trebuie retinuta trebuie sa fie minimala
Dr.SabinBuragawww.purl.org/net/busaco
Exista o modalitate pragmatica
privind dezvoltarea & invocarea serviciilor Web?
Dr.SabinBuragawww.purl.org/net/busaco
rest: representational state transfer
Stil arhitectural de dezvoltare a aplicațiilor Web
cu focalizare asupra reprezentării datelor
teza de doctorat a lui Roy Fielding, 2000
Dr.SabinBuragawww.purl.org/net/busaco
rest
Viziune complementara de implementare si
utilizare a serviciilor Web – fara SOAP
Dr.SabinBuragawww.purl.org/net/busaco
rest
Rezultatul unei procesari conduce la obtinerea
unei reprezentari a unei resurse
Dr.SabinBuragawww.purl.org/net/busaco
rest
Rezultatul unei procesari conduce la obtinerea
unei reprezentari a unei resurse
resursa Web
un utilizator avand cont in cadrul unui sistem,
blog-ul unei persoane, fotografia unui utilizator,
flux de stiri, program etc.
Dr.SabinBuragawww.purl.org/net/busaco
rest
Rezultatul unei procesari conduce la obtinerea
unei reprezentari a unei resurse
reprezentare = (X)HTML, JPEG, PNG, PDF, Atom, JSON,…
Dr.SabinBuragawww.purl.org/net/busaco
rest
Rezultatul unei procesari conduce la obtinerea
unei reprezentari a unei resurse
reprezentare = (X)HTML, JPEG, PNG, PDF, Atom, JSON,…
formatul reprezentarii e desemnat de tipuri MIME
text/html, image/png, application/xhtml+xml etc.
Dr.SabinBuragawww.purl.org/net/busaco
rest
Rezultatul unei procesari conduce la obtinerea
unei reprezentari a unei resurse
reprezentarile aceleasi resurse
– desemnate de un URI unic – pot fi multiple
reprezentare1
(XHTML)
reprezentare2
(Atom)
resursa
URI
Dr.SabinBuragawww.purl.org/net/busaco
rest
Rezultatul unei procesari conduce la obtinerea
unei reprezentari a unei resurse
fiecare reprezentare a unei resurse are asociat un URL
reprezentare1
(XHTML)
reprezentare2
(Atom)
resursa
URI
URLURL
Dr.SabinBuragawww.purl.org/net/busaco
rest
Clientii – e.g., navigatoare Web, roboti, player-e –
interactioneaza cu reprezentarile resurselor via verbe
(“acceseaza”: GET, “modifica”: POST, “sterge”: DELETE,…)
reprezentare1
(XHTML)
reprezentare2
(Atom)
resursa
URI
URLURL
GET POST GET DELETE
Dr.SabinBuragawww.purl.org/net/busaco
rest
Verbele (actiunile) sunt stipulate de protocolul HTTP
GET
scop: accesarea (citirea) unei reprezentari de resursa
nu conduce la modificarea starii serverului (safe)
idempotenta – cereri identice vor conduce la returnarea
aceluiasi raspuns (aceeasi reprezentare)
Dr.SabinBuragawww.purl.org/net/busaco
rest
Verbele (actiunile) sunt stipulate de protocolul HTTP
PUT
actualizeaza o reprezentare de resursa sau
eventual creeaza o resursa la nivel de server Web
uzual, returneaza un identificator (URI) al resursei
nu e considerata safe, dar este idempotenta
Dr.SabinBuragawww.purl.org/net/busaco
rest
Verbele (actiunile) sunt stipulate de protocolul HTTP
POST
creeaza o resursa (uzual, subordonata altei resurse)
nu este nici safe, nici idempotenta
utilizata cand clientul nu cunoaste a-priori
care va fi URI-ul resursei ce va fi create
Dr.SabinBuragawww.purl.org/net/busaco
rest
Verbele (actiunile) sunt stipulate de protocolul HTTP
DELETE
sterge (elimina) o resursa desemnata de un URI
este idempotenta
Dr.SabinBuragawww.purl.org/net/busaco
rest
Orice accesare a unei reprezentari
plaseaza aplicatia – ori clientul Web – intr-o stare
ce va fi schimbata in urma unui transfer de date
(accesarea altei reprezentari)
Dr.SabinBuragawww.purl.org/net/busaco
resursa1
reprezentare1
(XHTML)
http://blog.info/
resursa2
reprezentare2
(XHTML)
http://blog.info/mesaj
resursa3
reprezentare3
(XHTML)
http://blog.info/mesaj/edit
resursa4
reprezentare4
(Atom)
http://blog.info/stiri
GET
GET
POST
Dr.SabinBuragawww.purl.org/net/busaco
resursa1
reprezentare1
(XHTML)
http://blog.info/
resursa2
reprezentare2
(XHTML)
http://blog.info/mesaj
resursa3
reprezentare3
(XHTML)
http://blog.info/mesaj/edit
resursa4
reprezentare4
(Atom)
http://blog.info/stiri
GET
GET
POST
HATEOAS (Hypermedia As The Engine Of Application State)
Dr.SabinBuragawww.purl.org/net/busaco
rest
Transferul se realizeaza prin protocolul HTTP
Reprezentarea este modelata in XML
(sau alt format) si indicata prin tipuri MIME
Adresabilitatea se rezolva via URI
Dr.SabinBuragawww.purl.org/net/busaco
rest
Aplicatiile care invoca functionalitati (servicii)
consuma reprezentari de resurse – in stilul pull
Dr.SabinBuragawww.purl.org/net/busaco
Fiecare cerere este considerata independenta,
fara a se lua in consideratie contextul
stateless server
rest
Dr.SabinBuragawww.purl.org/net/busaco
Reprezentarile de resurse pot fi stocate temporar
caching
rest
Dr.SabinBuragawww.purl.org/net/busaco
statelessserver
client
cache
client
cache
adaptare dupa B. Mulloy (2012)
Dr.SabinBuragawww.purl.org/net/busaco
statelessserver
client
cache
client
cache
fiecare cerere
trebuie sa contina
toate informatiile
necesare procesarii
adaptare dupa B. Mulloy (2012)
Dr.SabinBuragawww.purl.org/net/busaco
statelessserver
client
cache
client
cache
contextul activitatilor
nu-i stocat de server
adaptare dupa B. Mulloy (2012)
Dr.SabinBuragawww.purl.org/net/busaco
statelessserver
client
cache
client
cache
adaptare dupa B. Mulloy (2012)
clientul are dreptul
sa reutilizeze datele
receptionate
Dr.SabinBuragawww.purl.org/net/busaco
Aplicatia Web dezvoltata va fi stratificata
layered system
rest
Dr.SabinBuragawww.purl.org/net/busaco
client
state-
less
server
state-
less
server
state-
less
server
load
balan
cer
gatewayfire-
wall
adaptare dupa B. Mulloy (2012)
Dr.SabinBuragawww.purl.org/net/busaco
client
state-
less
server
state-
less
server
state-
less
server
load
balan
cer
gatewayfire-
wall
adaptare dupa B. Mulloy (2012)
fiecare strat ofera
servicii stratelor
vecine
Dr.SabinBuragawww.purl.org/net/busaco
client
state-
less
server
state-
less
server
state-
less
server
load
balan
cer
gatewayfire-
wall
adaptare dupa B. Mulloy (2012)
un strat nu poate
“vedea” strate
neinvecinate
Dr.SabinBuragawww.purl.org/net/busaco
client
state-
less
server
state-
less
server
state-
less
server
load
balan
cer
gatewayfire-
wall
adaptare dupa B. Mulloy (2012)
stratele pot incapsula
(“ascunde”) sisteme
traditionale – blackbox
Dr.SabinBuragawww.purl.org/net/busaco
client
state-
less
server
state-
less
server
state-
less
server
load
balan
cer
gatewayfire-
wall
adaptare dupa B. Mulloy (2012)
are rol in asigurarea
performantei/
fiabilitatii
Dr.SabinBuragawww.purl.org/net/busaco
rest: exemplu
Serviciile puse la dispozitie de Delicious
managementul adreselor Web favorite (bookmark-uri),
cu posibilitatea atasarii de termeni de continut (tag-uri)
si comentarii
social bookmarking
https://delicious.com/developers
Dr.SabinBuragawww.purl.org/net/busaco
rest: exemplu
Serviciile puse la dispozitie de Delicious
functionalitate de baza:
listarea tuturor bookmark-urilor
(eventual, filtrate dupa diverse criterii)
managementul bookmark-urilor:
adaugare, editare, stergere
Dr.SabinBuragawww.purl.org/net/busaco
rest: exemplu
Resursa URL Metoda Reprezentare
Bookmark /bookmarks/{md5} GET application/bookmark+xml
Bookmark /bookmarks/{md5} PUT application/bookmark+xml
Bookmark /bookmarks/{md5} DELETE
Lista de
bookmark-uri
/bookmarks GET application/atom+xml
Lista de utilizatori /users GET application/atom+xml
Lista de tag-uri
(termeni de
continut)
/tags GET application/atom+xml
Pagina principala / GET application/delicious+xml
Dr.SabinBuragawww.purl.org/net/busaco
GET /bookmarks
200 OK
Content-type: application/atom+xml
<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom">
<title>Bookmarks</title>
<entry>
<title>O resursa interesanta</title>
<link
href="/bookmarks/a211528fb5108cddaa4b0d3aeccdbdcf"/>
<summary>
http://undeva.info/o-resursa-interesanta
</summary>
</entry>
<!-- eventual, alte elemente <entry>… -->
</feed>
raspuns XML (Atom)
oferit de serviciul Delicious
digest MD5
obtinerea
bookmark-urilor
Dr.SabinBuragawww.purl.org/net/busaco
GET /bookmarks/a211528fb5108cddaa4b0d3aeccdbdcf
200 OK
Content-type: application/bookmark+xml
<bookmark>
<title>O resursa interesanta</title>
<url>http://undeva.info/o-resursa-interesanta</url>
<user href="/users/tux">tux</user>
<tags>
<tag href="/tags/interesting">interesting</tag>
<tag href="/tags/penguin">penguin</tag>
</tags>
</bookmark>
preluarea unui bookmark:
răspunsul XML dat de serviciul Delicious
Dr.SabinBuragawww.purl.org/net/busaco
POST /bookmarks
Content-type: application/bookmark+xml
…
201 Created
Location: /bookmarks/a211528fb5108cddaa4b0d3aeccdbdcf
PUT /bookmarks/a211528fb5108cddaa4b0d3aeccdbdcf
Content-type: application/bookmark+xml
…
200 OK
crearea unui
bookmark
actualizarea
unui bookmark
Dr.SabinBuragawww.purl.org/net/busaco
rest
Resursele sunt numite folosind URI-uri (URL-uri)
Reprezentarile sunt interconectate prin URL-uri
Pot exista intermediari (proxy, cache, porti)
intre clienti si resurseperformanta, securitate,...
Transferul de date poate fi si asincron – stil Ajax/Comet
Dr.SabinBuragawww.purl.org/net/busaco
rest
O resursa poate avea asociate reprezentari XML
(XML, JSON, eventual in alte formate de date)
ce pot fi accesate/alterate via operatii HTTP
operatii CRUD – Create, Retrieve, Update, Delete
Dr.SabinBuragawww.purl.org/net/busaco
rest: metodologie
Divizarea in resurse a setului de date
ale problemei
clase tipice de resurse:
Utilizator
Document – alternative: Fotografie, Produs, Software,…
Metadata – e.g., Comentariu, Format, Locatie, Platforma etc.
Dr.SabinBuragawww.purl.org/net/busaco
rest: metodologie
Numirea prin URI a fiecarei resurse
exemplificari:
http://aplicatie.info/Utilizator/tux
http://aplicatie.info/Document/pinguini-cu-mere-albastre
Dr.SabinBuragawww.purl.org/net/busaco
rest: metodologie
Numirea prin URI a fiecarei resurse
cazuri concrete:
insemnarile etichetate cu fii disponibile pe un blog
http://fiistudent.wordpress.com/tag/fii/
accesarea datelor despre o productie cinematografica
http://www.imdb.com/title/tt0401383/
obtinerea listei utilizatorilor ce urmaresc o persoana
http://twitter.com/followers
Dr.SabinBuragawww.purl.org/net/busaco
rest: metodologie
Numirea prin URI a fiecarei resurse
cazuri concrete:
acces la prezentarile Slideshare ale utilizatorului busaco
http://www.slideshare.net/busaco/presentations
bookmark-urile cu tag-ul web ale utilizatorului busaco
http://delicious.com/busaco/web
efectuarea actiunii de editare a unui document XWiki
http://www.info.uaic.ro/bin/edit/Students/Timetable
Dr.SabinBuragawww.purl.org/net/busaco
rest: metodologie
Interactiunea cu un serviciu Web dezvoltat in stilul REST
se face via un API (Application Programming Interface)
pentru exemple de bune practici, a se consulta
http://www.restapitutorial.com/
Dr.SabinBuragawww.purl.org/net/busaco
rest: metodologie
Proiectarea reprezentarii(lor) acceptate
ce pot fi trimise de aplicatia client
si reprezentarii(lor) intoarse spre client
de considerat formatele standard – e.g., HTML, Atom
Dr.SabinBuragawww.purl.org/net/busaco
rest: metodologie
Integrarea resurselor
via legaturi hipertext + formulare
Dr.SabinBuragawww.purl.org/net/busaco
rest: metodologie
Crearea de studii de caz
specificarea conditiilor de eroare si/sau de exceptie,
inclusiv aspecte privind controlul versiunilor API-ului
Dr.SabinBuragawww.purl.org/net/busaco
Cum pot fi accesate reprezentari de resurse Web
prin REST?
Dr.SabinBuragawww.purl.org/net/busaco
rest: implementare
Biblioteci/API-uri implementând HTTP
libcURL (C, cu portări pentru Perl, PHP, Ruby,…)
libwww (C, Perl)
httplib (Python)
Net:HTTP (Ruby)
RestSharp (C#)
etc.
Dr.SabinBuragawww.purl.org/net/busaco
rest: implementare
Studiu de caz: invocarea unui serviciu Web
de prescurtare de URL-uri – http://is.gd/
un nou URL prescurtat va fi creat folosind adresa
http://is.gd/create.php?format=xml&url=adresaWeb
alte formate:
web (HTML), json,
simple (text)
Dr.SabinBuragawww.purl.org/net/busaco
Cererea HTTP ce invoca serviciul Web prin REST:
GET /create.php?format=xml&url=profs.info.uaic.ro/~busaco HTTP/1.1
Host: is.gd
Raspunsul obtinut, transmis de serverul Web:
HTTP/1.1 200 OK
Server: nginx
Date: Tue, 15 May 2012 07:48:18 GMT
Content-Type: text/xml;charset=UTF-8
<?xml version="1.0" encoding="UTF-8" ?>
<output>
<shorturl>http://is.gd/DBmG2L</shorturl>
</output>
reprezentare POX
(Plain Old XML)
Dr.SabinBuragawww.purl.org/net/busaco
// initializam cURL
$c = curl_init ();
// stabilim URL-ul serviciului Web invocat
curl_setopt ($c, CURLOPT_URL,
'http://is.gd/create.php?format=xml&url=profs.info.uaic.ro/~busaco');
// rezultatul cererii va fi disponibil ca sir de caractere
curl_setopt ($c, CURLOPT_RETURNTRANSFER, 1);
// preluam resursa oferita de server (aici, un document XML)
$res = curl_exec ($c);
// inchidem conexiunea cURL
curl_close ($c);
// procesam rezultatul via DOM
$doc = new DOMDocument ();
$doc->loadXML ($res);
// preluam continutul elementului <shorturl>
$urls = $doc->getElementsByTagName ('shorturl');
foreach ($urls as $url) {
echo '<p>Adresa prescurtata este: ' . $url->nodeValue . '</p>';
}
apelarea serviciului
Web REST via PHP
Dr.SabinBuragawww.purl.org/net/busaco
rest: implementare
Dr.SabinBuragawww.purl.org/net/busaco
rest: implementare
Studiu de caz: accesarea celor mai recente mesaje
disponibile pe Twitter
se recurge la URL-ul
http://twitter.com/statuses/public_timeline.json
pentru a obtine mesajele publice
in format JSON (JavaScript Object Notation)
detalii la https://dev.twitter.com/docs/api
Dr.SabinBuragawww.purl.org/net/busaco
HTTP/1.1 200 OK
Date: Tue, 15 May 2012 07:03:27 GMT
Content-Type: application/json; charset=utf-8
Content-Length: 40860
[ {
...
"created_at": "Tue May 15 07:03:23 +0000 2012",
"truncated": false,
"retweet_count": 0,
"retweeted": false,
"in_reply_to_user_id": null,
"user": {
"name": "Tuxy Pinguinescu",
"location": "South Pole",
"created_at": "Wed Oct 21 06:33:14 +0000 2010",
"lang": "en",
"followers_count": 133374,
...
},
"in_reply_to_status_id": null
} ]
raspuns in
format JSON
Dr.SabinBuragawww.purl.org/net/busaco
rest: implementare
Biblioteci/API-uri implementând HTTP
permit dezvoltarea de aplicații desktop, mobile etc.
suport pentru crearea de mash-up-uri la nivel de server
nu funcționează în navigatorul Web
Dr.SabinBuragawww.purl.org/net/busaco
rest: implementare
Biblioteci/API-uri implementând HTTP
permit dezvoltarea de aplicații desktop, mobile etc.
suport pentru crearea de mash-up-uri la nivel de server
nu funcționează în navigatorul Web
atentie la problemele de securitate ce pot aparea!
Dr.SabinBuragawww.purl.org/net/busaco
rest: implementare
Navigatoarele Web actuale
nu necesită o interfață de programare (API) specifică
disponibilitate pe orice platforma
suport pentru REST via obiectul XMLHttpRequest (Ajax)
dependența de implementarea la nivel de browser
Dr.SabinBuragawww.purl.org/net/busaco
rest: implementare
Exemplificare recurgand la biblioteca jQuery (JavaScript):
jQuery.ajax ({ // executa o cerere POST pentru invocarea serviciului Web
type: "POST",
contentType: "application/json; charset=utf-8",
url: "http://undeva.info/ServiciuWeb/Resursa",
data: "{…}", // datele de intrare trimise serviciului
dataType: "json", // asteptam raspunsul in format JSON
success: function(data) { // functie apelata la transfer cu succes
$('.rezultat').html(data); // preluam datele, convertindu-le in HTML
}
});
Dr.SabinBuragawww.purl.org/net/busaco
rest: dezvoltare
ASP.NET MVC (C#)
JAX-RS – Java Architecture for RESTful web Services
Jifty (Perl)
neon (C)
Restlet (Java)
RIP – REST in Python
Ruby on Rails (Ruby)
Recess, Symfony, Tonic, Zend Framework (PHP)
etc.
Dr.SabinBuragawww.purl.org/net/busaco
rest: dezvoltare
Servicii publice ce pot fi consumate via REST – exemple:
500px, Amazon, Basecamp, Blip.tv, eBay, Ericsson,
Facebook, GitHub, Google, Klout, LinkedIn, Muselius,
Netflix, OpenSocial, Scribd, SlideShare, TripIt, Yahoo! etc.
4892 API-uri specifice (9 octombrie 2012)
vezi si http://tinyurl.com/2ssfc2
disponibile pentru C++, C#, JavaScript, Java,
PHP, Python, Objective-C, Ruby,…
Dr.SabinBuragawww.purl.org/net/busaco
testarea de API-uri Web cu hurl.it
accesarea
serviciului Web
oferit de GitHub
JSON
Dr.SabinBuragawww.purl.org/net/busaco
rest: dezvoltare
Pasi uzuali de urmat pentru implementarea unei aplicatii
ce va invoca un serviciu Web pe baza unui API public:
(1) inregistrarea aplicatiei concepute
via situl entitatii furnizoare a serviciului
cheie de acces – API key, consumer key
Dr.SabinBuragawww.purl.org/net/busaco
rest: dezvoltare
Pasi uzuali de urmat pentru implementarea unei aplicatii
ce va invoca un serviciu Web pe baza unui API public:
(2) pe baza acestei chei, aplicatia se va putea autentifica
pentru a putea fi autorizata sa acceseze serviciul
Dr.SabinBuragawww.purl.org/net/busaco
rest: dezvoltare
Pasi uzuali de urmat pentru implementarea unei aplicatii
ce va invoca un serviciu Web pe baza unui API public:
(2) pe baza acestei chei, aplicatia se va putea autentifica
pentru a putea fi autorizata sa acceseze serviciul
pot fi impuse diverse politici de acces (permissions):
doar consultare (read), posibilitatea editarii etc.
Dr.SabinBuragawww.purl.org/net/busaco
rest: dezvoltare
Pasi uzuali de urmat pentru implementarea unei aplicatii
ce va invoca un serviciu Web pe baza unui API public:
(3) autentificarea si autorizarea aplicatiei
au loc cu acordul utilizatorului
Dr.SabinBuragawww.purl.org/net/busaco
rest: dezvoltare
Pasi uzuali de urmat pentru implementarea unei aplicatii
ce va invoca un serviciu Web pe baza unui API public:
(3) autentificarea si autorizarea aplicatiei
au loc cu acordul utilizatorului
daca utilizatorul nu este autentificat, i se vor solicita
informatiile de autentificare (e.g., nume + parola),
apoi va putea autoriza aplicatia sa aiba acces la date
via serviciul Web furnizat
Dr.SabinBuragawww.purl.org/net/busaco
rest: dezvoltare
Pasi uzuali de urmat pentru implementarea unei aplicatii
ce va invoca un serviciu Web pe baza unui API public:
(4) aplicatia apeleaza metodele oferite de serviciu
pentru preluarea/modificarea datelor de interes,
conform politicilor de acces
Dr.SabinBuragawww.purl.org/net/busaco
rest: dezvoltare
Pasi uzuali de urmat pentru implementarea unei aplicatii
ce va invoca un serviciu Web pe baza unui API public:
(4) aplicatia apeleaza metodele oferite de serviciu
sesiunea curenta va fi stabilita si mentinuta
pe baza unor informatii de autentificare (auth tokens)
Dr.SabinBuragawww.purl.org/net/busaco
rest: dezvoltare – oauth
Autorizarea securizata a unei aplicatii sa acceseze
date private intr-un mod standardizat
se poate realiza via OAuth
Dr.SabinBuragawww.purl.org/net/busaco
rest: dezvoltare – oauth
Autorizarea securizata a unei aplicatii sa acceseze
date private intr-un mod standardizat
se poate realiza via OAuth
protocol deschis
OAuth 1.0 – RFC 5849 (2010), OAuth 2.0 (in lucru)
http://oauth.net/
http://hueniverse.com/oauth/
Dr.SabinBuragawww.purl.org/net/busaco
rest: dezvoltare – oauth
Exemplificari concrete:
Evernote, Facebook, Google, Ohloh, OpenSocial,
Photobucket, TripIt, Twitter, Vimeo, Windows Live,
Yahoo!, Yammer,...
Dr.SabinBuragawww.purl.org/net/busaco
rest: dezvoltare – openid
OpenID
mecanism descentralizat de autentificare a utilizatorului
la nivel de Web pe baza paradigmei SSO – Single Sign On
via un ofertant (serviciu) de identitate (identity provider),
utilizatorii pot sa-si gestioneze prezente online multiple
http://openid.net/
Dr.SabinBuragawww.purl.org/net/busaco
rest: dezvoltare – openid
OpenID
fiecare identitate e desemnata de un URL (stabilit de
identity provider): me.yahoo.com, nume.wordpress.com,
google.com/profiles/nume, launchpad.net/~nume etc.
pentru a-si confirma identitatea,
utilizatorul va trebui sa se autentifice:
nume de cont + parola, smart card, date biometrice,…
Dr.SabinBuragawww.purl.org/net/busaco
rest: dezvoltare – openid
OpenID
Biblioteci open source disponibile
pentru C#, Java, Perl, PHP, Python, Ruby,…
http://openid.net/developers/libraries/
http://www.janrain.com/openid-enabled
Dr.SabinBuragawww.purl.org/net/busaco
Cum se pot combina date
oferite de mai multe servicii Web?
Dr.SabinBuragawww.purl.org/net/busaco
mash-ups
Combinarea – la nivel de client și/sau server –
a datelor ce provin din surse (situri) multiple,
oferindu-se o funcționalitate/experiență nouă
Dr.SabinBuragawww.purl.org/net/busaco
mash-ups
Se bazează pe fluxuri RSS/Atom,
servicii Web, API-uri publice,…
“curentul” SaaS (Software As A Service)
Dr.SabinBuragawww.purl.org/net/busaco
mash-ups
combinare
utilizarea de surse de date multiple
poate avea caracter multidimensional:
subiect de interes + locație geografică + moment de timp
Yahoo! music search + Google maps + Eventful
Dr.SabinBuragawww.purl.org/net/busaco
mash-ups
vizualizare
pot fi adoptate diverse tehnici de vizualizare (prezentare)
a datelor: cartografică, tag cloud-uri, tridimensională,…
Twitter + Google EarthTwittEarth
Dr.SabinBuragawww.purl.org/net/busaco
mash-ups
agregare
gruparea datelor provenite din mai multe surse
și analizarea lor: statistici, clasificări, predicții,…
e.g., folosind data mining se pot releva
aspecte “ascunse” ale datelor procesate
Dr.SabinBuragawww.purl.org/net/busaco
instrumente
(GUI tools)
biblioteci de dezvoltare
(libraries)
interfete de programare
(API-uri)
surse de date (data feeds)
platforme
Dr.SabinBuragawww.purl.org/net/busaco
instrumente
(GUI tools)
biblioteci de dezvoltare
(libraries)
interfete de programare
(API-uri)
surse de date (data feeds)
platforme
RSS, geoRSS,
microformate,
RDFa,…
Dr.SabinBuragawww.purl.org/net/busaco
instrumente
(GUI tools)
biblioteci de dezvoltare
(libraries)
interfete de programare
(API-uri)
surse de date (data feeds)
platforme
privind
fluxurile
RSS/Atom
specifice
serviciilor
publice
Dr.SabinBuragawww.purl.org/net/busaco
instrumente
(GUI tools)
biblioteci de dezvoltare
(libraries)
interfete de programare
(API-uri)
surse de date (data feeds)
platforme
framework-uri
Web oferite de
organizatii
Dr.SabinBuragawww.purl.org/net/busaco
instrumente
(GUI tools)
biblioteci de dezvoltare
(libraries)
interfete de programare
(API-uri)
surse de date (data feeds)
platforme
medii de
dezvoltare
Web
Dr.SabinBuragawww.purl.org/net/busaco
instrumente
(GUI tools)
biblioteci de dezvoltare
(libraries)
interfete de programare
(API-uri)
surse de date (data feeds)
platforme
Facebook,
Google App Engine,
WordPress,…
Dr.SabinBuragawww.purl.org/net/busaco
mash-ups: aspecte de interes
performanță: scalabilitatea & latența
limite ale API-urilor + existența versiunilor multiple
drepturi de autor asupra datelor & licențiere
securitate: abuz, confidențialitate, încredere etc.
monetizare
lipsa unei interoperabilități reale între platforme
Dr.SabinBuragawww.purl.org/net/busaco
mash-ups: dezvoltare
API-uri publice & exemple disponibile la
ProgrammableWeb.com
Dr.SabinBuragawww.purl.org/net/busaco
privire pragmatica
Ingineria dezvoltarii de servicii Web prin REST
Brian Mulloy, Web API Design, Apigee, 2012
http://offers.apigee.com/web-api-design-ebook/
Dr.SabinBuragawww.purl.org/net/busaco
privire pragmatica
URL-urile desemnand resurse (concepte) de
interes trebuie sa fie simple si intuitive
utilizarea substantivelor pentru fiecare “lucru”
colectii de resurse (uzual, la plural)
/students
identificatori unici pentru membrii unei colectii
/students/tuxy (concret) vs. /students/69 (abstract)
Dr.SabinBuragawww.purl.org/net/busaco
privire pragmatica
Folosirea verbelor (metodelor) HTTP pentru efectuarea
de operatii asupra unor (colectii de) resurse
resursa
(URI)
POST
(creeaza)
GET
(acceseaza)
PUT
(actualizeaza)
DELETE
(sterge)
/students
creează
un student nou
listeaza studentii
existenti
actualizeaza
un set de studenti
sterge toti
studentii
/students/69
(un URL deja
existent)
eroare 
ofera date
despre student
daca exista,
actualizeaza,
altfel eroare
sterge
studentul
respectiv
Dr.SabinBuragawww.purl.org/net/busaco
privire pragmatica
Tratarea erorilor
folosirea codurilor de stare HTTP
(200 – OK, 400 – Bad Request, 500 – Internal Server Error)
mesajele returnate trebuie sa includa informatii utile
exemplu: Twilio – cod de stare intors: 401
{ "status" : "401", "message":"Authenticate", "code": 20003,
"more info": "http://www.twilio.com/docs/errors/20003" }
Dr.SabinBuragawww.purl.org/net/busaco
privire pragmatica
Controlul versiunilor API-ului dezvoltat
“Never release an API without a version
and make the version mandatory.” (Mulloy, 2012)
specificarea versiunii
in antetul HTTP vs. in cadrul URL-ului
salesforce.com – /services/data/v20.0/sobjects/Account
Facebook – ?v=1.0
Dr.SabinBuragawww.purl.org/net/busaco
privire pragmatica
Paginarea & oferirea de raspunsuri partiale
uzual, se folosesc parametri precum limit si offset
/students?limit=33&offset=74
filtrele optionale (e.g., in contextul faceted search)
pot fi delimitate de virgula
/students?fields=name,age,year,email
Dr.SabinBuragawww.purl.org/net/busaco
privire pragmatica
Eterogenitatea formatelor reprezentarilor intoarse
indicarea via un parametru optional in URL
?alt=json (Google Data)
specificarea formatului acceptat in antetul cererii HTTP
Accept: application/json (Digg)
precizarea formatului in numele resursei solicitate
/venue.json (Foursquare)
Dr.SabinBuragawww.purl.org/net/busaco
privire pragmatica
Utilizarea subdomeniilor pentru API-uri diferite
ale aceluiasi ofertant de servicii
exemplificare:
search.twitter.com
stream.twitter.com
api.twitter.com
Dr.SabinBuragawww.purl.org/net/busaco
privire pragmatica
Suplimentar, alaturi de API
poate fi oferit un SDK (Software Development Kit)
incapsuleaza functionalitatile API-ului intr-o biblioteca
(implementata intr-un anumit limbaj de programare,
pentru o platforma software/hardware specifica)
API façade pattern
Dr.SabinBuragawww.purl.org/net/busaco
privire pragmatica
Dr.SabinBuragawww.purl.org/net/busaco
Development as a Service
A.Iqbal,M.Haunsenblas,S.Decker(2012)
Dr.SabinBuragawww.purl.org/net/busaco
Web: CodeRun, Cloud9, eXo Cloud
desktop: Eclipse, <oXygen/>, Visual Studio
Google App Engine, Heroku,
Jelastic, Windows Azure
BitBucket, GitHub,
SourceForge, Unfuddle
Dr.SabinBuragawww.purl.org/net/busaco
Rezumat
Dezvoltarea de aplicatii orientate spre servicii Web
de la REST la mash-up-uri & API-uri
Dr.SabinBuragawww.purl.org/net/busaco
?

Contenu connexe

Tendances

Dezvoltarea aplicațiilor Web (3/12): Arhitectura aplicaţiilor Web orientate s...
Dezvoltarea aplicațiilor Web (3/12): Arhitectura aplicaţiilor Web orientate s...Dezvoltarea aplicațiilor Web (3/12): Arhitectura aplicaţiilor Web orientate s...
Dezvoltarea aplicațiilor Web (3/12): Arhitectura aplicaţiilor Web orientate s...Sabin Buraga
 
Web 2020 03/12: Programare Web – Arhitectura aplicaţiilor Web. Inginerie Web
Web 2020 03/12: Programare Web – Arhitectura aplicaţiilor Web. Inginerie WebWeb 2020 03/12: Programare Web – Arhitectura aplicaţiilor Web. Inginerie Web
Web 2020 03/12: Programare Web – Arhitectura aplicaţiilor Web. Inginerie WebSabin Buraga
 
WADe 2017-2018 (3/12) Web Application Development: Architectural Aspects
WADe 2017-2018 (3/12) Web Application Development: Architectural AspectsWADe 2017-2018 (3/12) Web Application Development: Architectural Aspects
WADe 2017-2018 (3/12) Web Application Development: Architectural AspectsSabin Buraga
 
Design (Web) responsiv
Design (Web) responsivDesign (Web) responsiv
Design (Web) responsivSabin Buraga
 
Dezvoltator Web?! (varianta 2015)
Dezvoltator Web?! (varianta 2015)Dezvoltator Web?! (varianta 2015)
Dezvoltator Web?! (varianta 2015)Sabin Buraga
 
Sabin Buraga – Dezvoltator Web (...în 2017)
Sabin Buraga – Dezvoltator Web (...în 2017)Sabin Buraga – Dezvoltator Web (...în 2017)
Sabin Buraga – Dezvoltator Web (...în 2017)Sabin Buraga
 
Ce înseamnă a fi dezvoltator Web (varianta 2014)
Ce înseamnă a fi dezvoltator Web (varianta 2014)Ce înseamnă a fi dezvoltator Web (varianta 2014)
Ce înseamnă a fi dezvoltator Web (varianta 2014)Sabin Buraga
 
CLIW 2017-2018 (9/12) Programare Web. Suita de tehnologii HTML5
CLIW 2017-2018 (9/12) Programare Web. Suita de tehnologii HTML5CLIW 2017-2018 (9/12) Programare Web. Suita de tehnologii HTML5
CLIW 2017-2018 (9/12) Programare Web. Suita de tehnologii HTML5Sabin Buraga
 
Web 2016 (01/13) Spațiul World Wide Web – aspecte arhitecturale
Web 2016 (01/13) Spațiul World Wide Web – aspecte arhitecturaleWeb 2016 (01/13) Spațiul World Wide Web – aspecte arhitecturale
Web 2016 (01/13) Spațiul World Wide Web – aspecte arhitecturaleSabin Buraga
 
Sabin Buraga: Participând la Web
Sabin Buraga: Participând la WebSabin Buraga: Participând la Web
Sabin Buraga: Participând la WebSabin Buraga
 
Sabin Buraga: Dezvoltator Web?! (2019)
Sabin Buraga: Dezvoltator Web?! (2019)Sabin Buraga: Dezvoltator Web?! (2019)
Sabin Buraga: Dezvoltator Web?! (2019)Sabin Buraga
 
Dezvoltator Web?! – ...în 2016
Dezvoltator Web?! – ...în 2016Dezvoltator Web?! – ...în 2016
Dezvoltator Web?! – ...în 2016Sabin Buraga
 
Ce înseamnă să fii dezvoltator Web
Ce înseamnă să fii dezvoltator WebCe înseamnă să fii dezvoltator Web
Ce înseamnă să fii dezvoltator WebSabin Buraga
 
Dezvoltarea aplicațiilor Web (1/12): Dezvoltarea de aplicaţii Web: Concepte &...
Dezvoltarea aplicațiilor Web (1/12): Dezvoltarea de aplicaţii Web: Concepte &...Dezvoltarea aplicațiilor Web (1/12): Dezvoltarea de aplicaţii Web: Concepte &...
Dezvoltarea aplicațiilor Web (1/12): Dezvoltarea de aplicaţii Web: Concepte &...Sabin Buraga
 
Web 2020 02/12: Programare Web – HTTP. Cookie-uri. Sesiuni Web
Web 2020 02/12: Programare Web – HTTP. Cookie-uri. Sesiuni WebWeb 2020 02/12: Programare Web – HTTP. Cookie-uri. Sesiuni Web
Web 2020 02/12: Programare Web – HTTP. Cookie-uri. Sesiuni WebSabin Buraga
 
Web 2020 04/12: Programare Web – Dezvoltarea aplicaţiilor Web în PHP
Web 2020 04/12: Programare Web – Dezvoltarea aplicaţiilor Web în PHP Web 2020 04/12: Programare Web – Dezvoltarea aplicaţiilor Web în PHP
Web 2020 04/12: Programare Web – Dezvoltarea aplicaţiilor Web în PHP Sabin Buraga
 
Web 2016 (06/13) Modelarea datelor. Familia XML + spații de nume
Web 2016 (06/13) Modelarea datelor. Familia XML + spații de numeWeb 2016 (06/13) Modelarea datelor. Familia XML + spații de nume
Web 2016 (06/13) Modelarea datelor. Familia XML + spații de numeSabin Buraga
 
WADe 2014—2015 (02/12): Dezvoltarea de servicii Web în stilul REST
WADe 2014—2015 (02/12): Dezvoltarea de servicii Web în stilul RESTWADe 2014—2015 (02/12): Dezvoltarea de servicii Web în stilul REST
WADe 2014—2015 (02/12): Dezvoltarea de servicii Web în stilul RESTSabin Buraga
 
Web 2020 01/12: World Wide Web – aspecte arhitecturale
Web 2020 01/12: World Wide Web – aspecte arhitecturaleWeb 2020 01/12: World Wide Web – aspecte arhitecturale
Web 2020 01/12: World Wide Web – aspecte arhitecturaleSabin Buraga
 

Tendances (20)

Dezvoltarea aplicațiilor Web (3/12): Arhitectura aplicaţiilor Web orientate s...
Dezvoltarea aplicațiilor Web (3/12): Arhitectura aplicaţiilor Web orientate s...Dezvoltarea aplicațiilor Web (3/12): Arhitectura aplicaţiilor Web orientate s...
Dezvoltarea aplicațiilor Web (3/12): Arhitectura aplicaţiilor Web orientate s...
 
Web 2020 03/12: Programare Web – Arhitectura aplicaţiilor Web. Inginerie Web
Web 2020 03/12: Programare Web – Arhitectura aplicaţiilor Web. Inginerie WebWeb 2020 03/12: Programare Web – Arhitectura aplicaţiilor Web. Inginerie Web
Web 2020 03/12: Programare Web – Arhitectura aplicaţiilor Web. Inginerie Web
 
WADe 2017-2018 (3/12) Web Application Development: Architectural Aspects
WADe 2017-2018 (3/12) Web Application Development: Architectural AspectsWADe 2017-2018 (3/12) Web Application Development: Architectural Aspects
WADe 2017-2018 (3/12) Web Application Development: Architectural Aspects
 
Design (Web) responsiv
Design (Web) responsivDesign (Web) responsiv
Design (Web) responsiv
 
Dezvoltator Web?! (varianta 2015)
Dezvoltator Web?! (varianta 2015)Dezvoltator Web?! (varianta 2015)
Dezvoltator Web?! (varianta 2015)
 
Sabin Buraga – Dezvoltator Web (...în 2017)
Sabin Buraga – Dezvoltator Web (...în 2017)Sabin Buraga – Dezvoltator Web (...în 2017)
Sabin Buraga – Dezvoltator Web (...în 2017)
 
Ce înseamnă a fi dezvoltator Web (varianta 2014)
Ce înseamnă a fi dezvoltator Web (varianta 2014)Ce înseamnă a fi dezvoltator Web (varianta 2014)
Ce înseamnă a fi dezvoltator Web (varianta 2014)
 
CLIW 2017-2018 (9/12) Programare Web. Suita de tehnologii HTML5
CLIW 2017-2018 (9/12) Programare Web. Suita de tehnologii HTML5CLIW 2017-2018 (9/12) Programare Web. Suita de tehnologii HTML5
CLIW 2017-2018 (9/12) Programare Web. Suita de tehnologii HTML5
 
Web 2016 (01/13) Spațiul World Wide Web – aspecte arhitecturale
Web 2016 (01/13) Spațiul World Wide Web – aspecte arhitecturaleWeb 2016 (01/13) Spațiul World Wide Web – aspecte arhitecturale
Web 2016 (01/13) Spațiul World Wide Web – aspecte arhitecturale
 
Sabin Buraga: Participând la Web
Sabin Buraga: Participând la WebSabin Buraga: Participând la Web
Sabin Buraga: Participând la Web
 
Sabin Buraga: Dezvoltator Web?! (2019)
Sabin Buraga: Dezvoltator Web?! (2019)Sabin Buraga: Dezvoltator Web?! (2019)
Sabin Buraga: Dezvoltator Web?! (2019)
 
Dezvoltator Web?! – ...în 2016
Dezvoltator Web?! – ...în 2016Dezvoltator Web?! – ...în 2016
Dezvoltator Web?! – ...în 2016
 
Ce înseamnă să fii dezvoltator Web
Ce înseamnă să fii dezvoltator WebCe înseamnă să fii dezvoltator Web
Ce înseamnă să fii dezvoltator Web
 
Dezvoltarea aplicațiilor Web (1/12): Dezvoltarea de aplicaţii Web: Concepte &...
Dezvoltarea aplicațiilor Web (1/12): Dezvoltarea de aplicaţii Web: Concepte &...Dezvoltarea aplicațiilor Web (1/12): Dezvoltarea de aplicaţii Web: Concepte &...
Dezvoltarea aplicațiilor Web (1/12): Dezvoltarea de aplicaţii Web: Concepte &...
 
Web 2020 02/12: Programare Web – HTTP. Cookie-uri. Sesiuni Web
Web 2020 02/12: Programare Web – HTTP. Cookie-uri. Sesiuni WebWeb 2020 02/12: Programare Web – HTTP. Cookie-uri. Sesiuni Web
Web 2020 02/12: Programare Web – HTTP. Cookie-uri. Sesiuni Web
 
Web 2020 04/12: Programare Web – Dezvoltarea aplicaţiilor Web în PHP
Web 2020 04/12: Programare Web – Dezvoltarea aplicaţiilor Web în PHP Web 2020 04/12: Programare Web – Dezvoltarea aplicaţiilor Web în PHP
Web 2020 04/12: Programare Web – Dezvoltarea aplicaţiilor Web în PHP
 
Web 2016 (06/13) Modelarea datelor. Familia XML + spații de nume
Web 2016 (06/13) Modelarea datelor. Familia XML + spații de numeWeb 2016 (06/13) Modelarea datelor. Familia XML + spații de nume
Web 2016 (06/13) Modelarea datelor. Familia XML + spații de nume
 
WADe 2014—2015 (02/12): Dezvoltarea de servicii Web în stilul REST
WADe 2014—2015 (02/12): Dezvoltarea de servicii Web în stilul RESTWADe 2014—2015 (02/12): Dezvoltarea de servicii Web în stilul REST
WADe 2014—2015 (02/12): Dezvoltarea de servicii Web în stilul REST
 
Web 2020 01/12: World Wide Web – aspecte arhitecturale
Web 2020 01/12: World Wide Web – aspecte arhitecturaleWeb 2020 01/12: World Wide Web – aspecte arhitecturale
Web 2020 01/12: World Wide Web – aspecte arhitecturale
 
25 de ani de Web
25 de ani de Web 25 de ani de Web
25 de ani de Web
 

Similaire à Dezvoltarea aplicatiilor orientate spre servicii Web. De la REST la mash-up-uri si API-uri

STAW 01/12: Arhitectura aplicaţiilor Web
STAW 01/12: Arhitectura aplicaţiilor WebSTAW 01/12: Arhitectura aplicaţiilor Web
STAW 01/12: Arhitectura aplicaţiilor WebSabin Buraga
 
Web 2020 10/12: Servicii Web. Micro-servicii. Serverless. Specificarea API-ur...
Web 2020 10/12: Servicii Web. Micro-servicii. Serverless. Specificarea API-ur...Web 2020 10/12: Servicii Web. Micro-servicii. Serverless. Specificarea API-ur...
Web 2020 10/12: Servicii Web. Micro-servicii. Serverless. Specificarea API-ur...Sabin Buraga
 
CLIW 2017-2018 (1/12) Interacţiune Web: de la concepte & utilizabilitate la d...
CLIW 2017-2018 (1/12) Interacţiune Web: de la concepte & utilizabilitate la d...CLIW 2017-2018 (1/12) Interacţiune Web: de la concepte & utilizabilitate la d...
CLIW 2017-2018 (1/12) Interacţiune Web: de la concepte & utilizabilitate la d...Sabin Buraga
 
CLIW 2015-2016 (4/13) Design Web. Proiectarea siturilor Web. Design Web respo...
CLIW 2015-2016 (4/13) Design Web. Proiectarea siturilor Web. Design Web respo...CLIW 2015-2016 (4/13) Design Web. Proiectarea siturilor Web. Design Web respo...
CLIW 2015-2016 (4/13) Design Web. Proiectarea siturilor Web. Design Web respo...Sabin Buraga
 
STAW 12/12: (Re)găsirea resurselor Web. De la motoare de căutare şi SEO la da...
STAW 12/12: (Re)găsirea resurselor Web. De la motoare de căutare şi SEO la da...STAW 12/12: (Re)găsirea resurselor Web. De la motoare de căutare şi SEO la da...
STAW 12/12: (Re)găsirea resurselor Web. De la motoare de căutare şi SEO la da...Sabin Buraga
 
WADe 2014—2015 (01/12): Dezvoltarea de aplicaţii Web: Concepte & viziune
WADe 2014—2015 (01/12): Dezvoltarea de aplicaţii Web: Concepte & viziuneWADe 2014—2015 (01/12): Dezvoltarea de aplicaţii Web: Concepte & viziune
WADe 2014—2015 (01/12): Dezvoltarea de aplicaţii Web: Concepte & viziuneSabin Buraga
 
CLIW 2015-2016 (1/13) Interacțiune Web: concepte, context, studii de caz
CLIW 2015-2016 (1/13) Interacțiune Web: concepte, context, studii de cazCLIW 2015-2016 (1/13) Interacțiune Web: concepte, context, studii de caz
CLIW 2015-2016 (1/13) Interacțiune Web: concepte, context, studii de cazSabin Buraga
 
Dezvoltarea aplicaţiilor Web la nivel de client (cursul #3): Design Web. Inte...
Dezvoltarea aplicaţiilor Web la nivel de client (cursul #3): Design Web. Inte...Dezvoltarea aplicaţiilor Web la nivel de client (cursul #3): Design Web. Inte...
Dezvoltarea aplicaţiilor Web la nivel de client (cursul #3): Design Web. Inte...Sabin Buraga
 
CLIW 2014—2015 (3/12): Design Web. Interacţiune, utilizabilitate & metodologi...
CLIW 2014—2015 (3/12): Design Web. Interacţiune, utilizabilitate & metodologi...CLIW 2014—2015 (3/12): Design Web. Interacţiune, utilizabilitate & metodologi...
CLIW 2014—2015 (3/12): Design Web. Interacţiune, utilizabilitate & metodologi...Sabin Buraga
 
CLIW 2017-2018 (3/12) (Re)găsirea resurselor Web. De la motoare de căutare şi...
CLIW 2017-2018 (3/12) (Re)găsirea resurselor Web. De la motoare de căutare şi...CLIW 2017-2018 (3/12) (Re)găsirea resurselor Web. De la motoare de căutare şi...
CLIW 2017-2018 (3/12) (Re)găsirea resurselor Web. De la motoare de căutare şi...Sabin Buraga
 
Suita de tehnologii HTML5
Suita de tehnologii HTML5Suita de tehnologii HTML5
Suita de tehnologii HTML5Sabin Buraga
 
CLIW 2015-2016 (12/13) Performanța aplicaţiilor Web la nivel de client
CLIW 2015-2016 (12/13) Performanța aplicaţiilor Web la nivel de clientCLIW 2015-2016 (12/13) Performanța aplicaţiilor Web la nivel de client
CLIW 2015-2016 (12/13) Performanța aplicaţiilor Web la nivel de clientSabin Buraga
 
Dezvoltarea aplicaţiilor Web la nivel de client (cursul #10): Ingineria dezvo...
Dezvoltarea aplicaţiilor Web la nivel de client (cursul #10): Ingineria dezvo...Dezvoltarea aplicaţiilor Web la nivel de client (cursul #10): Ingineria dezvo...
Dezvoltarea aplicaţiilor Web la nivel de client (cursul #10): Ingineria dezvo...Sabin Buraga
 
CLIW 2015-2016 (3/13) Design Web. Interacțiune, utilizabilitate, metodologii ...
CLIW 2015-2016 (3/13) Design Web. Interacțiune, utilizabilitate, metodologii ...CLIW 2015-2016 (3/13) Design Web. Interacțiune, utilizabilitate, metodologii ...
CLIW 2015-2016 (3/13) Design Web. Interacțiune, utilizabilitate, metodologii ...Sabin Buraga
 
CLIW 2014—2015 (2/12): Arhitectura navigatorului Web
CLIW 2014—2015 (2/12): Arhitectura navigatorului WebCLIW 2014—2015 (2/12): Arhitectura navigatorului Web
CLIW 2014—2015 (2/12): Arhitectura navigatorului WebSabin Buraga
 
Dezvoltarea aplicațiilor Web (11/12): Inginerie ontologică: Management de cun...
Dezvoltarea aplicațiilor Web (11/12): Inginerie ontologică: Management de cun...Dezvoltarea aplicațiilor Web (11/12): Inginerie ontologică: Management de cun...
Dezvoltarea aplicațiilor Web (11/12): Inginerie ontologică: Management de cun...Sabin Buraga
 
Web 2016 (11/13) Servicii Web. Paradigma REST
Web 2016 (11/13) Servicii Web. Paradigma RESTWeb 2016 (11/13) Servicii Web. Paradigma REST
Web 2016 (11/13) Servicii Web. Paradigma RESTSabin Buraga
 

Similaire à Dezvoltarea aplicatiilor orientate spre servicii Web. De la REST la mash-up-uri si API-uri (18)

STAW 01/12: Arhitectura aplicaţiilor Web
STAW 01/12: Arhitectura aplicaţiilor WebSTAW 01/12: Arhitectura aplicaţiilor Web
STAW 01/12: Arhitectura aplicaţiilor Web
 
Web 2020 10/12: Servicii Web. Micro-servicii. Serverless. Specificarea API-ur...
Web 2020 10/12: Servicii Web. Micro-servicii. Serverless. Specificarea API-ur...Web 2020 10/12: Servicii Web. Micro-servicii. Serverless. Specificarea API-ur...
Web 2020 10/12: Servicii Web. Micro-servicii. Serverless. Specificarea API-ur...
 
CLIW 2017-2018 (1/12) Interacţiune Web: de la concepte & utilizabilitate la d...
CLIW 2017-2018 (1/12) Interacţiune Web: de la concepte & utilizabilitate la d...CLIW 2017-2018 (1/12) Interacţiune Web: de la concepte & utilizabilitate la d...
CLIW 2017-2018 (1/12) Interacţiune Web: de la concepte & utilizabilitate la d...
 
CLIW 2015-2016 (4/13) Design Web. Proiectarea siturilor Web. Design Web respo...
CLIW 2015-2016 (4/13) Design Web. Proiectarea siturilor Web. Design Web respo...CLIW 2015-2016 (4/13) Design Web. Proiectarea siturilor Web. Design Web respo...
CLIW 2015-2016 (4/13) Design Web. Proiectarea siturilor Web. Design Web respo...
 
STAW 12/12: (Re)găsirea resurselor Web. De la motoare de căutare şi SEO la da...
STAW 12/12: (Re)găsirea resurselor Web. De la motoare de căutare şi SEO la da...STAW 12/12: (Re)găsirea resurselor Web. De la motoare de căutare şi SEO la da...
STAW 12/12: (Re)găsirea resurselor Web. De la motoare de căutare şi SEO la da...
 
WADe 2014—2015 (01/12): Dezvoltarea de aplicaţii Web: Concepte & viziune
WADe 2014—2015 (01/12): Dezvoltarea de aplicaţii Web: Concepte & viziuneWADe 2014—2015 (01/12): Dezvoltarea de aplicaţii Web: Concepte & viziune
WADe 2014—2015 (01/12): Dezvoltarea de aplicaţii Web: Concepte & viziune
 
Ss1
Ss1Ss1
Ss1
 
CLIW 2015-2016 (1/13) Interacțiune Web: concepte, context, studii de caz
CLIW 2015-2016 (1/13) Interacțiune Web: concepte, context, studii de cazCLIW 2015-2016 (1/13) Interacțiune Web: concepte, context, studii de caz
CLIW 2015-2016 (1/13) Interacțiune Web: concepte, context, studii de caz
 
Dezvoltarea aplicaţiilor Web la nivel de client (cursul #3): Design Web. Inte...
Dezvoltarea aplicaţiilor Web la nivel de client (cursul #3): Design Web. Inte...Dezvoltarea aplicaţiilor Web la nivel de client (cursul #3): Design Web. Inte...
Dezvoltarea aplicaţiilor Web la nivel de client (cursul #3): Design Web. Inte...
 
CLIW 2014—2015 (3/12): Design Web. Interacţiune, utilizabilitate & metodologi...
CLIW 2014—2015 (3/12): Design Web. Interacţiune, utilizabilitate & metodologi...CLIW 2014—2015 (3/12): Design Web. Interacţiune, utilizabilitate & metodologi...
CLIW 2014—2015 (3/12): Design Web. Interacţiune, utilizabilitate & metodologi...
 
CLIW 2017-2018 (3/12) (Re)găsirea resurselor Web. De la motoare de căutare şi...
CLIW 2017-2018 (3/12) (Re)găsirea resurselor Web. De la motoare de căutare şi...CLIW 2017-2018 (3/12) (Re)găsirea resurselor Web. De la motoare de căutare şi...
CLIW 2017-2018 (3/12) (Re)găsirea resurselor Web. De la motoare de căutare şi...
 
Suita de tehnologii HTML5
Suita de tehnologii HTML5Suita de tehnologii HTML5
Suita de tehnologii HTML5
 
CLIW 2015-2016 (12/13) Performanța aplicaţiilor Web la nivel de client
CLIW 2015-2016 (12/13) Performanța aplicaţiilor Web la nivel de clientCLIW 2015-2016 (12/13) Performanța aplicaţiilor Web la nivel de client
CLIW 2015-2016 (12/13) Performanța aplicaţiilor Web la nivel de client
 
Dezvoltarea aplicaţiilor Web la nivel de client (cursul #10): Ingineria dezvo...
Dezvoltarea aplicaţiilor Web la nivel de client (cursul #10): Ingineria dezvo...Dezvoltarea aplicaţiilor Web la nivel de client (cursul #10): Ingineria dezvo...
Dezvoltarea aplicaţiilor Web la nivel de client (cursul #10): Ingineria dezvo...
 
CLIW 2015-2016 (3/13) Design Web. Interacțiune, utilizabilitate, metodologii ...
CLIW 2015-2016 (3/13) Design Web. Interacțiune, utilizabilitate, metodologii ...CLIW 2015-2016 (3/13) Design Web. Interacțiune, utilizabilitate, metodologii ...
CLIW 2015-2016 (3/13) Design Web. Interacțiune, utilizabilitate, metodologii ...
 
CLIW 2014—2015 (2/12): Arhitectura navigatorului Web
CLIW 2014—2015 (2/12): Arhitectura navigatorului WebCLIW 2014—2015 (2/12): Arhitectura navigatorului Web
CLIW 2014—2015 (2/12): Arhitectura navigatorului Web
 
Dezvoltarea aplicațiilor Web (11/12): Inginerie ontologică: Management de cun...
Dezvoltarea aplicațiilor Web (11/12): Inginerie ontologică: Management de cun...Dezvoltarea aplicațiilor Web (11/12): Inginerie ontologică: Management de cun...
Dezvoltarea aplicațiilor Web (11/12): Inginerie ontologică: Management de cun...
 
Web 2016 (11/13) Servicii Web. Paradigma REST
Web 2016 (11/13) Servicii Web. Paradigma RESTWeb 2016 (11/13) Servicii Web. Paradigma REST
Web 2016 (11/13) Servicii Web. Paradigma REST
 

Plus de Sabin Buraga

Web 2020 05/12: Modelarea datelor. Familia XML. Extragerea datelor cu XPath. ...
Web 2020 05/12: Modelarea datelor. Familia XML. Extragerea datelor cu XPath. ...Web 2020 05/12: Modelarea datelor. Familia XML. Extragerea datelor cu XPath. ...
Web 2020 05/12: Modelarea datelor. Familia XML. Extragerea datelor cu XPath. ...Sabin Buraga
 
Web 2020 06/12: Procesarea datelor XML & HTML. Document Object Model
Web 2020 06/12: Procesarea datelor XML & HTML. Document Object ModelWeb 2020 06/12: Procesarea datelor XML & HTML. Document Object Model
Web 2020 06/12: Procesarea datelor XML & HTML. Document Object ModelSabin Buraga
 
Web 2020 07/12: Procesarea datelor XML & HTML – Simple API for XML. Procesări...
Web 2020 07/12: Procesarea datelor XML & HTML – Simple API for XML. Procesări...Web 2020 07/12: Procesarea datelor XML & HTML – Simple API for XML. Procesări...
Web 2020 07/12: Procesarea datelor XML & HTML – Simple API for XML. Procesări...Sabin Buraga
 
Web 2020 09/12: Servicii Web. Paradigma REST
Web 2020 09/12: Servicii Web. Paradigma RESTWeb 2020 09/12: Servicii Web. Paradigma REST
Web 2020 09/12: Servicii Web. Paradigma RESTSabin Buraga
 
Web 2020 11/12: Interacţiune Web asincronă. Aplicaţii Web de tip mash-up. JAM...
Web 2020 11/12: Interacţiune Web asincronă. Aplicaţii Web de tip mash-up. JAM...Web 2020 11/12: Interacţiune Web asincronă. Aplicaţii Web de tip mash-up. JAM...
Web 2020 11/12: Interacţiune Web asincronă. Aplicaţii Web de tip mash-up. JAM...Sabin Buraga
 
Web 2020 12/12: Securitatea aplicaţiilor Web. Aspecte esenţiale
Web 2020 12/12: Securitatea aplicaţiilor Web. Aspecte esenţialeWeb 2020 12/12: Securitatea aplicaţiilor Web. Aspecte esenţiale
Web 2020 12/12: Securitatea aplicaţiilor Web. Aspecte esenţialeSabin Buraga
 
STAW 02/12: Programare Web: Limbajul JavaScript. Aspecte esenţiale
STAW 02/12: Programare Web: Limbajul JavaScript. Aspecte esenţialeSTAW 02/12: Programare Web: Limbajul JavaScript. Aspecte esenţiale
STAW 02/12: Programare Web: Limbajul JavaScript. Aspecte esenţialeSabin Buraga
 
STAW 03/12: Programare Web: Limbajul JavaScript. Aspecte moderne: ES6 et al.
STAW 03/12: Programare Web: Limbajul JavaScript. Aspecte moderne: ES6 et al.STAW 03/12: Programare Web: Limbajul JavaScript. Aspecte moderne: ES6 et al.
STAW 03/12: Programare Web: Limbajul JavaScript. Aspecte moderne: ES6 et al.Sabin Buraga
 
STAW 04/12: Programare Web: Node.js
STAW 04/12: Programare Web: Node.jsSTAW 04/12: Programare Web: Node.js
STAW 04/12: Programare Web: Node.jsSabin Buraga
 
STAW 05/12: Arhitectura navigatorului Web
STAW 05/12: Arhitectura navigatorului WebSTAW 05/12: Arhitectura navigatorului Web
STAW 05/12: Arhitectura navigatorului WebSabin Buraga
 
STAW 06/12: JavaScript în navigatorul Web. De la DOM la Ajax şi mash-up-uri
STAW 06/12: JavaScript în navigatorul Web. De la DOM la Ajax şi mash-up-uriSTAW 06/12: JavaScript în navigatorul Web. De la DOM la Ajax şi mash-up-uri
STAW 06/12: JavaScript în navigatorul Web. De la DOM la Ajax şi mash-up-uriSabin Buraga
 
STAW 07/12: Ingineria dezvoltării aplicaţiilor JavaScript
STAW 07/12: Ingineria dezvoltării aplicaţiilor JavaScriptSTAW 07/12: Ingineria dezvoltării aplicaţiilor JavaScript
STAW 07/12: Ingineria dezvoltării aplicaţiilor JavaScriptSabin Buraga
 
STAW 08/12: Programare Web. Suita de tehnologii HTML5
STAW 08/12: Programare Web. Suita de tehnologii HTML5STAW 08/12: Programare Web. Suita de tehnologii HTML5
STAW 08/12: Programare Web. Suita de tehnologii HTML5Sabin Buraga
 
STAW 09/12: Programare Web. API-uri JavaScript în contextul HTML5 (I)
STAW 09/12: Programare Web. API-uri JavaScript în contextul HTML5 (I)STAW 09/12: Programare Web. API-uri JavaScript în contextul HTML5 (I)
STAW 09/12: Programare Web. API-uri JavaScript în contextul HTML5 (I)Sabin Buraga
 
STAW 10/12: Programare Web. API-uri JavaScript în contextul HTML5 (II)
STAW 10/12: Programare Web. API-uri JavaScript în contextul HTML5 (II)STAW 10/12: Programare Web. API-uri JavaScript în contextul HTML5 (II)
STAW 10/12: Programare Web. API-uri JavaScript în contextul HTML5 (II)Sabin Buraga
 
STAW 11/12: Performanţa aplicaţiilor Web la nivel de client
STAW 11/12: Performanţa aplicaţiilor Web la nivel de clientSTAW 11/12: Performanţa aplicaţiilor Web la nivel de client
STAW 11/12: Performanţa aplicaţiilor Web la nivel de clientSabin Buraga
 
HCI 2018 (2/10) Human Factor. From interaction idioms to human capacities & c...
HCI 2018 (2/10) Human Factor. From interaction idioms to human capacities & c...HCI 2018 (2/10) Human Factor. From interaction idioms to human capacities & c...
HCI 2018 (2/10) Human Factor. From interaction idioms to human capacities & c...Sabin Buraga
 
HCI 2018 (3/10) Design Models, Methodologies and Guidelines
HCI 2018 (3/10) Design Models, Methodologies and GuidelinesHCI 2018 (3/10) Design Models, Methodologies and Guidelines
HCI 2018 (3/10) Design Models, Methodologies and GuidelinesSabin Buraga
 
HCI 2018 (4/10) Information Architecture. From Design Patterns to Visual Design
HCI 2018 (4/10) Information Architecture. From Design Patterns to Visual DesignHCI 2018 (4/10) Information Architecture. From Design Patterns to Visual Design
HCI 2018 (4/10) Information Architecture. From Design Patterns to Visual DesignSabin Buraga
 
HCI 2018 (5/10) Information Architecture. From Design Patterns to Flow
HCI 2018 (5/10) Information Architecture. From Design Patterns to FlowHCI 2018 (5/10) Information Architecture. From Design Patterns to Flow
HCI 2018 (5/10) Information Architecture. From Design Patterns to FlowSabin Buraga
 

Plus de Sabin Buraga (20)

Web 2020 05/12: Modelarea datelor. Familia XML. Extragerea datelor cu XPath. ...
Web 2020 05/12: Modelarea datelor. Familia XML. Extragerea datelor cu XPath. ...Web 2020 05/12: Modelarea datelor. Familia XML. Extragerea datelor cu XPath. ...
Web 2020 05/12: Modelarea datelor. Familia XML. Extragerea datelor cu XPath. ...
 
Web 2020 06/12: Procesarea datelor XML & HTML. Document Object Model
Web 2020 06/12: Procesarea datelor XML & HTML. Document Object ModelWeb 2020 06/12: Procesarea datelor XML & HTML. Document Object Model
Web 2020 06/12: Procesarea datelor XML & HTML. Document Object Model
 
Web 2020 07/12: Procesarea datelor XML & HTML – Simple API for XML. Procesări...
Web 2020 07/12: Procesarea datelor XML & HTML – Simple API for XML. Procesări...Web 2020 07/12: Procesarea datelor XML & HTML – Simple API for XML. Procesări...
Web 2020 07/12: Procesarea datelor XML & HTML – Simple API for XML. Procesări...
 
Web 2020 09/12: Servicii Web. Paradigma REST
Web 2020 09/12: Servicii Web. Paradigma RESTWeb 2020 09/12: Servicii Web. Paradigma REST
Web 2020 09/12: Servicii Web. Paradigma REST
 
Web 2020 11/12: Interacţiune Web asincronă. Aplicaţii Web de tip mash-up. JAM...
Web 2020 11/12: Interacţiune Web asincronă. Aplicaţii Web de tip mash-up. JAM...Web 2020 11/12: Interacţiune Web asincronă. Aplicaţii Web de tip mash-up. JAM...
Web 2020 11/12: Interacţiune Web asincronă. Aplicaţii Web de tip mash-up. JAM...
 
Web 2020 12/12: Securitatea aplicaţiilor Web. Aspecte esenţiale
Web 2020 12/12: Securitatea aplicaţiilor Web. Aspecte esenţialeWeb 2020 12/12: Securitatea aplicaţiilor Web. Aspecte esenţiale
Web 2020 12/12: Securitatea aplicaţiilor Web. Aspecte esenţiale
 
STAW 02/12: Programare Web: Limbajul JavaScript. Aspecte esenţiale
STAW 02/12: Programare Web: Limbajul JavaScript. Aspecte esenţialeSTAW 02/12: Programare Web: Limbajul JavaScript. Aspecte esenţiale
STAW 02/12: Programare Web: Limbajul JavaScript. Aspecte esenţiale
 
STAW 03/12: Programare Web: Limbajul JavaScript. Aspecte moderne: ES6 et al.
STAW 03/12: Programare Web: Limbajul JavaScript. Aspecte moderne: ES6 et al.STAW 03/12: Programare Web: Limbajul JavaScript. Aspecte moderne: ES6 et al.
STAW 03/12: Programare Web: Limbajul JavaScript. Aspecte moderne: ES6 et al.
 
STAW 04/12: Programare Web: Node.js
STAW 04/12: Programare Web: Node.jsSTAW 04/12: Programare Web: Node.js
STAW 04/12: Programare Web: Node.js
 
STAW 05/12: Arhitectura navigatorului Web
STAW 05/12: Arhitectura navigatorului WebSTAW 05/12: Arhitectura navigatorului Web
STAW 05/12: Arhitectura navigatorului Web
 
STAW 06/12: JavaScript în navigatorul Web. De la DOM la Ajax şi mash-up-uri
STAW 06/12: JavaScript în navigatorul Web. De la DOM la Ajax şi mash-up-uriSTAW 06/12: JavaScript în navigatorul Web. De la DOM la Ajax şi mash-up-uri
STAW 06/12: JavaScript în navigatorul Web. De la DOM la Ajax şi mash-up-uri
 
STAW 07/12: Ingineria dezvoltării aplicaţiilor JavaScript
STAW 07/12: Ingineria dezvoltării aplicaţiilor JavaScriptSTAW 07/12: Ingineria dezvoltării aplicaţiilor JavaScript
STAW 07/12: Ingineria dezvoltării aplicaţiilor JavaScript
 
STAW 08/12: Programare Web. Suita de tehnologii HTML5
STAW 08/12: Programare Web. Suita de tehnologii HTML5STAW 08/12: Programare Web. Suita de tehnologii HTML5
STAW 08/12: Programare Web. Suita de tehnologii HTML5
 
STAW 09/12: Programare Web. API-uri JavaScript în contextul HTML5 (I)
STAW 09/12: Programare Web. API-uri JavaScript în contextul HTML5 (I)STAW 09/12: Programare Web. API-uri JavaScript în contextul HTML5 (I)
STAW 09/12: Programare Web. API-uri JavaScript în contextul HTML5 (I)
 
STAW 10/12: Programare Web. API-uri JavaScript în contextul HTML5 (II)
STAW 10/12: Programare Web. API-uri JavaScript în contextul HTML5 (II)STAW 10/12: Programare Web. API-uri JavaScript în contextul HTML5 (II)
STAW 10/12: Programare Web. API-uri JavaScript în contextul HTML5 (II)
 
STAW 11/12: Performanţa aplicaţiilor Web la nivel de client
STAW 11/12: Performanţa aplicaţiilor Web la nivel de clientSTAW 11/12: Performanţa aplicaţiilor Web la nivel de client
STAW 11/12: Performanţa aplicaţiilor Web la nivel de client
 
HCI 2018 (2/10) Human Factor. From interaction idioms to human capacities & c...
HCI 2018 (2/10) Human Factor. From interaction idioms to human capacities & c...HCI 2018 (2/10) Human Factor. From interaction idioms to human capacities & c...
HCI 2018 (2/10) Human Factor. From interaction idioms to human capacities & c...
 
HCI 2018 (3/10) Design Models, Methodologies and Guidelines
HCI 2018 (3/10) Design Models, Methodologies and GuidelinesHCI 2018 (3/10) Design Models, Methodologies and Guidelines
HCI 2018 (3/10) Design Models, Methodologies and Guidelines
 
HCI 2018 (4/10) Information Architecture. From Design Patterns to Visual Design
HCI 2018 (4/10) Information Architecture. From Design Patterns to Visual DesignHCI 2018 (4/10) Information Architecture. From Design Patterns to Visual Design
HCI 2018 (4/10) Information Architecture. From Design Patterns to Visual Design
 
HCI 2018 (5/10) Information Architecture. From Design Patterns to Flow
HCI 2018 (5/10) Information Architecture. From Design Patterns to FlowHCI 2018 (5/10) Information Architecture. From Design Patterns to Flow
HCI 2018 (5/10) Information Architecture. From Design Patterns to Flow
 

Dezvoltarea aplicatiilor orientate spre servicii Web. De la REST la mash-up-uri si API-uri