SlideShare a Scribd company logo
1 of 90
Download to read offline
infoeducatie 2009 :: servicii web prin rest




Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
infoeducatie 2009 :: servicii web prin rest

                 pasiune                 muzică
                                                                 pictură
                             literatură
       @busaco                                                     fotografie
                                                    arte
 XML                                                               România


  Computer Science                               profesor            A. I. Cuza
                                    cercetare            facultate
 Web       interacțiune
                                         conferințe
semantic       design
                                              cărți
     cursuri          programare
           Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
infoeducatie 2009 :: servicii web prin rest




Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
infoeducatie 2009 :: servicii web prin rest
oferirea unui spațiu de comunicare inter‐umană 


                partajarea cunoștințelor




            Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
infoeducatie 2009 :: servicii web prin rest




exploatarea puterii computaționale

    Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
infoeducatie 2009 :: servicii web prin rest




 resursele sunt identificate prin adresa lor 

      identificator uniform de resurse
     URI – Uniform Resource Identifier


http://infoeducatie.ro/2009/participanti/tux


       Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
infoeducatie 2009 :: servicii web prin rest




accesul la conținutul – reprezentarea – resurselor Web
            se realizează printr‐un protocol


        HTTP – HyperText Transfer Protocol




            Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
infoeducatie 2009 :: servicii web prin rest




                                             pagini Web

resursele – documentele – includ <marcaje />

        Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
infoeducatie 2009 :: servicii web prin rest




marcajele conțin la rândul lor URI‐uri                          hipertext

          Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
infoeducatie 2009 :: servicii web prin rest




Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
infoeducatie 2009 :: servicii web prin rest




soluții multi‐platformă, slab‐conectate

     integrarea facilă la nivel de Web
   a aplicațiilor, serviciilor & sistemelor




      Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
infoeducatie 2009 :: servicii web prin rest




necesitatea recurgerii la standarde

  Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
infoeducatie 2009 :: servicii web prin rest




  soluții multi‐platformă, slab‐conectate

 datele să poată fi descrise pentru a fi “înțelese”
de calculatoare și pentru a fi interconectate ușor




         Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
infoeducatie 2009 :: servicii web prin rest




servicii atașabile (pluggable) & versatile




       SaaS – Software as a Service

   ASP – Application Service Provider


       Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
infoeducatie 2009 :: servicii web prin rest




Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
infoeducatie 2009 :: servicii web prin rest




există un model arhitectural de dezvoltare
        a serviciilor la nivel de web?
        Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
infoeducatie 2009 :: servicii web prin rest




divizarea aplicațiilor în servicii – independente –
              care se pot compune,
menite a se conecta & orchestra în mod spontan
     în cadrul proceselor de afaceri/tehnice



         web component‐based software


           Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
infoeducatie 2009 :: servicii web prin rest




        “the web is the computer”

disponibilitatea unei/unor arhitecturi care…

oferă suport pentru paradigme de comunicare 
   bazată pe Web între aplicații eterogene



         Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
infoeducatie 2009 :: servicii web prin rest




         “the web is the computer”

 disponibilitatea unei/unor arhitecturi care…

permit(e) localizarea transparentă a serviciilor




          Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
infoeducatie 2009 :: servicii web prin rest




        “the web is the computer”

disponibilitatea unei/unor arhitecturi care…

facilitează adăugarea, înlocuirea, eliminarea
          serviciilor în mod dinamic



         Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
infoeducatie 2009 :: servicii web prin rest




        “the web is the computer”

disponibilitatea unei/unor arhitecturi care…

ascund(e) dezvoltatorului detaliile de sistem




         Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
infoeducatie 2009 :: servicii web prin rest




Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
infoeducatie 2009 :: servicii web prin rest




software oferind o funcționalitate specifică


                spelling checking
                 stocare de date
              mesagerie instantanee
                agregare de știri
                   curs valutar
              realizare de statistici
                        …
        Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
infoeducatie 2009 :: servicii web prin rest




utilizate – la distanță – de alte aplicații/servicii




           Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
infoeducatie 2009 :: servicii web prin rest




accesate standardizat via Web



                       URI
                      HTTP
                      XML



  Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
infoeducatie 2009 :: servicii web prin rest




      serviciul unei agenții de turism
oferirea – și vânzarea, eventual – a unor formule 
              de petrecere a vacanței




         Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
infoeducatie 2009 :: servicii web prin rest




         serviciul unei agenții de turism

utilizează alte servicii (software) disponibile pe Web: 
                  tranzacții financiare
                    servicii hoteliere
                  servicii de transport




            Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
infoeducatie 2009 :: servicii web prin rest




        cum am implementa un serviciu?

script‐uri CGI sau utilizarea serverelor de aplicații Web


                                                  ASP.NET, JSP, 
                                                  PHP, RoR,…


             Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
infoeducatie 2009 :: servicii web prin rest




maniera clasică de interacțiune cu utilizatorul

   utilizatorul – nu neapărat uman ☺ – vizitează 
o pagină și formulează o cerere (e.g., via un formular)




            Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
infoeducatie 2009 :: servicii web prin rest




maniera clasică de interacțiune cu utilizatorul

     serviciul implementat oferă un răspuns
         uzual, un document (X)HTML




          Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
infoeducatie 2009 :: servicii web prin rest




  tradițional, aplicația oferă o interfață‐utilizator 
                 disponibilă pe web

cererile sunt capt(ur)ate via formulare + legături hipertext

   utilizatorii umani trebuie să interpreteze etichetele 
     și câmpurile de dialog + răspunsul recepționat



              Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
infoeducatie 2009 :: servicii web prin rest




    cum obținem răspunsul pentru a fi (re)folosit
              în 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. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
infoeducatie 2009 :: servicii web prin rest




cum obținem răspunsul pentru a fi (re)folosit
          în programele noastre?



                                                             ???!

orice modificare în marcaje rescrierea programului 
    de preluare a datelor din documentul HTML

           Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
infoeducatie 2009 :: servicii web prin rest




cum are loc schimbul de date între servicii web
               și alte aplicații?




          Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
infoeducatie 2009 :: servicii web prin rest




ce‐ar fi să indicăm datele de intrare și 
  răspunsul oferit de serviciul web
    într‐un format standardizat?




      Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
infoeducatie 2009 :: servicii web prin rest




             posibile soluții:
                                                          “dialog” 
             XML‐RPC                                     prin XML
               SOAP
        POX (Plain Old XML)

JSON (JavaScript Object Notation)



   Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
infoeducatie 2009 :: servicii web prin rest




                                         REpresenta‐
                                         tional State 
                                           Transfer




Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
infoeducatie 2009 :: servicii web prin rest




stil arhitectural de dezvoltare a aplicațiilor Web
     cu focalizare asupra reprezentării datelor




                    Roy Fielding, 2000
           Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
infoeducatie 2009 :: servicii web prin rest




rezultatul unei procesări conduce la returnarea 
          unei reprezentări de resursă




          Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
infoeducatie 2009 :: servicii web prin rest




rezultatul unei procesări conduce la returnarea 
          unei reprezentări de resursă


       resursă Web = blog‐ul unei persoane, 
 fotografia unui utilizator, flux de știri, program etc.




            Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
infoeducatie 2009 :: servicii web prin rest




 rezultatul unei procesări conduce la returnarea 
           unei reprezentări de resursă


reprezentare = (X)HTML, JPEG, PNG, RSS, Atom, SVG,…

                desemnată de tipuri MIME
      text/html, image/png, application/xhtml+xml etc.


             Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
infoeducatie 2009 :: servicii web prin rest




rezultatul unei procesări conduce la returnarea 
          unei reprezentări de resursă

          reprezentările aceleași resurse 
   – desemnate de un URI unic – pot fi multiple
         reprezentare1                         reprezentare2
           (XHTML)                                (Atom)
                              resursa


                                 URI
           Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
infoeducatie 2009 :: servicii web prin rest




rezultatul unei procesări conduce la returnarea 
          unei reprezentări de resursă

fiecare reprezentare a unei resurse are asociat un URL
              URL                                    URL
          reprezentare1                         reprezentare2
            (XHTML)                                (Atom)
                               resursa


                                  URI
            Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
infoeducatie 2009 :: servicii web prin rest




    clienții – e.g., navigatoare Web, roboti, player‐e –
 interacționează cu reprezentările resurselor via verbe
(“accesează”: GET, “modifică”: POST, “șterge”: DELETE,…)
            GET POST                             GET DELETE
               URL                                    URL
           reprezentare1                         reprezentare2
             (XHTML)                                (Atom)
                                resursa


                                   URI
             Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
infoeducatie 2009 :: servicii web prin rest




        orice accesare a unei reprezentări 
plasează aplicația – ori clientul Web – într‐o stare
    care va fi schimbată în urma unui transfer
      de date (accesarea altei reprezentări)




            Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
infoeducatie 2009 :: servicii web prin rest




                                 http://blog.info/mesaj
http://blog.info/                                               http://blog.info/mesaj/edit
                                     reprezentare2
reprezentare1                                                             reprezentare3
                                       (XHTML)
  (XHTML)                                                                   (XHTML)
                      GET                                 POST
                                       resursa2
  resursa1                                                                 resursa3

                         http://blog.info/stiri
                            reprezentare4
   GET                         (Atom)

                              resursa4

                    Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
infoeducatie 2009 :: servicii web prin rest




transferul se realizează prin protocolul HTTP

    reprezentarea este modelată în XML
        și indicată prin tipuri MIME

      adresabilitatea se rezolvă via URI



         Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
infoeducatie 2009 :: servicii web prin rest




   aplicațiile ce invocă funcționalități (servicii)
vor consuma reprezentări de resurse – în stilul pull




            Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
infoeducatie 2009 :: servicii web prin rest




  fiecare cerere este considerată independentă,
fără a se lua în considerație contextul – stateless




           Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
infoeducatie 2009 :: servicii web prin rest




 implementarea unui magazin on‐line oferind dulciuri


tipuri de resurse (Sortim & Utiliz), identificate unic de URI
             http://www.dulciuri.biz/sortim/rahat

                                             URI intuitiv
                                      așa‐zis user/SEO friendly



              Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
infoeducatie 2009 :: servicii web prin rest




           serviciile oferite de Flickr.com
acces – folosind HTTP (e.g., GET, POST) – via URI‐ul
            http://api.flickr.com/services/rest/

         pentru a invoca un serviciu Flickr, 
  se precizează metoda + parametrii (dacă există)
http://api.flickr.com/services/rest/?method=flickr.photos.getInfo&...

                                              se înlocuiește cu 
                                           funcționalitatea dorită
              Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
infoeducatie 2009 :: servicii web prin rest




         serviciile oferite de Del.icio.us
managementul adreselor Web favorite (bookmark‐uri)

               listarea bookmark‐urilor
   (eventual, filtrate/grupate după diverse criterii)

          managementul bookmark‐urilor:
            adăugare, editare, ștergere

            Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
infoeducatie 2009 :: servicii web prin rest




 interfața web cu utilizatorul

Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
infoeducatie 2009 :: servicii web prin rest




      Resursa                     URL            Metoda                Reprezentare
bookmark                 /bookmarks/{md5}           GET          application/bookmark+xml
bookmark                 /bookmarks/{md5}           PUT          application/bookmark+xml
bokmark                  /bookmarks/{md5}        DELETE
listă de 
                         /bookmarks                 GET             application/atom+xml
bookmark‐uri
listă de utilizatori     /users                     GET             application/atom+xml
listă de tag‐uri 
(termeni de              /tags                      GET             application/atom+xml
conținut)
pagina principală        /                          GET           application/delicious+xml


                       Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
infoeducatie 2009 :: servicii web prin rest

                                           obținerea bookmark‐urilor:
GET /bookmarks                             răspuns XML (Atom) dat de 
200 OK                                             Del.icio.us
Content-type: application/atom+xml

<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom">
<title>Bookmarks</title>
<entry>                                       digest MD5
<title>O resursa interesanta</title>
<link href="/bookmarks/a211528fb5108cddaa4b0d3aeccdbdcf"/>
<summary>http://undeva.info/o-resursa-interesanta</summary>
</entry>
<!-- eventual, alte elemente <entry>… -->
</feed>
               Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
infoeducatie 2009 :: servicii web prin rest


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ăspuns XML dat de serviciul Del.icio.us
                Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
infoeducatie 2009 :: servicii web prin rest




cum accesăm reprezentări de resurse web
       Dr. Sabin‐Corneliu BuragaREST?
                      prin – www.purl.org/net/busaco
infoeducatie 2009 :: servicii web prin rest




   biblioteci/API‐uri implementând HTTP


libcURL (C, cu portări pentru Perl, PHP, Ruby, Tcl,…)
                   libwww (C, Perl)
                   httplib (Python)
                   Net:HTTP (Ruby)
                          etc.


           Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
infoeducatie 2009 :: servicii web prin rest




exemplu: trimiterea unui mesaj la Twitter.com
  curl --basic --user utilizator:parola --data status="rest!"
           http://twitter.com/statuses/update.xml

   <status>
     <created_at>Wed Jul 29 15:25:05 +0000 2009</created_at>
     <text>rest!</text>
     <truncated>false</truncated>
     <user>
         <name>Sabin Buraga</name>
         <description>A computer scientist, an artist, and more!</description>
     …
   </status>
                  Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
infoeducatie 2009 :: servicii web prin rest




    biblioteci/API‐uri implementând HTTP

 permit dezvoltarea de aplicații desktop, mobile etc.

suport pentru implementarea de mash‐up‐uri pe server

         nu funcționează în navigatorul web



            Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
infoeducatie 2009 :: servicii web prin rest




          navigatoarele Web actuale

  nu necesită o interfață de programare specifică 

                 disponibilitate ubicuă

transferuri asincrone via AJAX – direct în JavaScript

            pot apărea incompatibilități

           Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
infoeducatie 2009 :: servicii web prin rest




               ASP.NET MVC (C#)
JAX‐RS – Java Architecture for RESTful web Services
                    Jifty (Perl)
                  Recess (PHP)
              Ruby on Rails (Ruby)
                 Symfony (PHP)
                   Tonic (PHP)
                        etc.

          Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
infoeducatie 2009 :: servicii web prin rest




servicii publice ce pot fi consumate prin REST (exemple): 
 Amazon, Blip.tv, eBay, Facebook, Google, Hi5, Last.fm, 
SlideShare, Talis, TripIt, Upcoming, Yahoo!, YouTube etc.




                    API‐uri specifice
disponibile liber pentru Flex (ActionScript), PHP, Python,
                   Objective‐C, Ruby,…
              Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
infoeducatie 2009 :: servicii web prin rest
 cum combin date oferite
de mai multe servicii web?




       Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
infoeducatie 2009 :: servicii web prin rest




  combinarea – la nivel de client și/sau server –
   a conținutului ce provine din surse (situri)
multiple, oferind o funcționalitate/experiență nouă




          Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
infoeducatie 2009 :: servicii web prin rest




+                                             Ma(y)shupTV
                                            o aplicație hibridă




    Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
infoeducatie 2009 :: servicii web prin rest




se bazează pe fluxuri RSS/Atom, 
     servicii web, API‐uri,…




   Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
infoeducatie 2009 :: servicii web prin rest




aliniate “curentului” SaaS
(Software As A Service)




Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
infoeducatie 2009 :: servicii web prin rest




            caracteristici:
             combinare
             vizualizare
              agregare




Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
infoeducatie 2009 :: servicii web prin rest




                           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. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
infoeducatie 2009 :: servicii web prin rest




Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
infoeducatie 2009 :: servicii web prin rest




                            vizualizare

pot fi adoptate diverse tehnici de vizualizare (prezentare)
                         a datelor:
                        cartografică,
                       tag cloud‐uri,
                     tridimensională,
                             …

              Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
infoeducatie 2009 :: servicii web prin rest




Twitter + Google Earth                    TwittEarth
    Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
infoeducatie 2009 :: servicii web prin rest




                           agregare

gruparea datelor provenite din mai multe surse
și analizarea lor: statistici, clasificări, predicții,…



prin data mining se pot releva aspecte “ascunse”
             ale datelor procesate
          Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
infoeducatie 2009 :: servicii web prin rest




recomandare inteligentă de resurse via Zemanta
        Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
infoeducatie 2009 :: servicii web prin rest




               platforme
             instrumente
              (GUI tools)
    biblioteci de dezvoltare
           (libraries)
    interfețe de programare
            (API‐uri)
   surse de date (data feeds)

Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
infoeducatie 2009 :: servicii web prin rest




                                platforme
                              instrumente
                               (GUI tools)
                     biblioteci de dezvoltare
RSS, geoRSS,                (libraries)
microformate,        interfețe de programare
   RDFa,…
                             (API‐uri)
                    surse de date (data feeds)

                 Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
infoeducatie 2009 :: servicii web prin rest




                            platforme
                          instrumente
                           (GUI tools)
  privind        biblioteci de dezvoltare                           specifice
 fluxurile              (libraries)                                serviciilor
RSS/Atom                                                             publice
                 interfețe de programare
                         (API‐uri)
                surse de date (data feeds)

             Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
infoeducatie 2009 :: servicii web prin rest




                           platforme
                         instrumente
framework‐uri             (GUI tools)                              oferite de 
    web                                                           organizații
                biblioteci de dezvoltare
                       (libraries)
                interfețe de programare
                        (API‐uri)
                surse de date (data feeds)

            Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
infoeducatie 2009 :: servicii web prin rest




Adobe AIR, 
  Boxely, 
SnapLogic, 
                             platforme
widget‐uri                 instrumente
                            (GUI tools)
                  biblioteci de dezvoltare
                         (libraries)
                  interfețe de programare
                          (API‐uri)
                 surse de date (data feeds)

              Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
infoeducatie 2009 :: servicii web prin rest


 Dappr, Facebook, 
Google App Engine, 
   Yahoo! Pipes

                           platforme
                         instrumente
                          (GUI tools)
                biblioteci de dezvoltare
                       (libraries)
                interfețe de programare
                        (API‐uri)
               surse de date (data feeds)

            Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
infoeducatie 2009 :: servicii web prin rest




Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
infoeducatie 2009 :: servicii web prin rest




   “codul‐sursă” al pipe‐ului web
Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
infoeducatie 2009 :: servicii web prin rest


                 cum aflu care sunt 
              mash‐up‐urile existente
               și API‐urile aferente?




Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
infoeducatie 2009 :: servicii web prin rest




ProgrammableWeb.com
Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
infoeducatie 2009 :: servicii web prin rest




        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. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
infoeducatie 2009 :: servicii web prin rest




    Sabin Buraga, Tehnologii XML, Polirom, 2006

   Sabin Buraga (coord.), Programarea în Web 2.0,
                   Polirom, 2007

Leonard Richardson, Sam Ruby, RESTful Web Services, 
                  O’Reilly, 2007

      Raymond Yee, Pro Web 2.0 Mashups:
   Remixing Data and Web Services, Apress, 2008
           Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
infoeducatie 2009 :: servicii web prin rest




Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
infoeducatie 2009 :: servicii web prin rest




   o parte dintre conținuturile grafice au fost preluate 
de pe situl Flickr, fotografiile fiind realizate de utilizatorii:
    42311564, cedric1981, chrispitality, cjc4454, damongarrett, 
      little_lushie, mithril, petergorges, psd, pujan, sharman, 
            sharynmorrow, splatt, stuartpilbrow, that_james

               Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
infoeducatie 2009 :: servicii web prin rest




Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco

More Related Content

What's hot

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
 
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
 
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
 
Design (Web) responsiv
Design (Web) responsivDesign (Web) responsiv
Design (Web) responsivSabin 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
 
Dezvoltator Web?! (varianta 2015)
Dezvoltator Web?! (varianta 2015)Dezvoltator Web?! (varianta 2015)
Dezvoltator Web?! (varianta 2015)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
 
Sabin Buraga: Participând la Web
Sabin Buraga: Participând la WebSabin Buraga: Participând la Web
Sabin Buraga: Participând la WebSabin 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
 
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: 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
 
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 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 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
 
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 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
 

What's hot (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...
 
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
 
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
 
Design (Web) responsiv
Design (Web) responsivDesign (Web) responsiv
Design (Web) responsiv
 
Sabin Buraga – Dezvoltator Web (...în 2017)
Sabin Buraga – Dezvoltator Web (...în 2017)Sabin Buraga – Dezvoltator Web (...în 2017)
Sabin Buraga – Dezvoltator Web (...în 2017)
 
Dezvoltator Web?! (varianta 2015)
Dezvoltator Web?! (varianta 2015)Dezvoltator Web?! (varianta 2015)
Dezvoltator Web?! (varianta 2015)
 
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
 
Sabin Buraga: Participând la Web
Sabin Buraga: Participând la WebSabin Buraga: Participând la Web
Sabin Buraga: Participând la Web
 
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)
 
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: 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 &...
 
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 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 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
 
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 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
 

Similar to Servicii Web prin REST

Incursiune prin... interactiunea om-calculator
Incursiune prin... interactiunea om-calculatorIncursiune prin... interactiunea om-calculator
Incursiune prin... interactiunea om-calculatorSabin Buraga
 
Open Data in contextul Web 3.0
Open Data in contextul Web 3.0Open Data in contextul Web 3.0
Open Data in contextul Web 3.0Sabin Buraga
 
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
 
Sabin Buraga: Date de 5 stele
Sabin Buraga: Date de 5 steleSabin Buraga: Date de 5 stele
Sabin Buraga: Date de 5 steleSabin Buraga
 
Sabin Buraga - Web: To Be Continued
Sabin Buraga - Web: To Be ContinuedSabin Buraga - Web: To Be Continued
Sabin Buraga - Web: To Be ContinuedSabin Buraga
 
Dezvoltarea aplicaţiilor Web la nivel de client (cursul #1): Interacţiune Web...
Dezvoltarea aplicaţiilor Web la nivel de client (cursul #1): Interacţiune Web...Dezvoltarea aplicaţiilor Web la nivel de client (cursul #1): Interacţiune Web...
Dezvoltarea aplicaţiilor Web la nivel de client (cursul #1): Interacţiune Web...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 (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
 
AJAX - back to the future
AJAX - back to the futureAJAX - back to the future
AJAX - back to the futureSabin 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
 
Computer Networks. Retrospective & perspective
Computer Networks. Retrospective & perspectiveComputer Networks. Retrospective & perspective
Computer Networks. Retrospective & perspectiveSabin 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
 
CLIW 2014—2015 (1/12): Interacţiune Web: concepte, context, studii de caz
CLIW 2014—2015 (1/12): Interacţiune Web: concepte, context, studii de cazCLIW 2014—2015 (1/12): Interacţiune Web: concepte, context, studii de caz
CLIW 2014—2015 (1/12): Interacţiune Web: concepte, context, studii de cazSabin Buraga
 
WADe 2017-2018 (1/12) Web Application Development: Concepts & Vision
WADe 2017-2018 (1/12) Web Application Development: Concepts & VisionWADe 2017-2018 (1/12) Web Application Development: Concepts & Vision
WADe 2017-2018 (1/12) Web Application Development: Concepts & VisionSabin Buraga
 
WADe 2017-2018 (7/12) Architecture of RDF-based Applications. Linked Open Dat...
WADe 2017-2018 (7/12) Architecture of RDF-based Applications. Linked Open Dat...WADe 2017-2018 (7/12) Architecture of RDF-based Applications. Linked Open Dat...
WADe 2017-2018 (7/12) Architecture of RDF-based Applications. Linked Open Dat...Sabin Buraga
 

Similar to Servicii Web prin REST (17)

Incursiune prin... interactiunea om-calculator
Incursiune prin... interactiunea om-calculatorIncursiune prin... interactiunea om-calculator
Incursiune prin... interactiunea om-calculator
 
Open Data in contextul Web 3.0
Open Data in contextul Web 3.0Open Data in contextul Web 3.0
Open Data in contextul Web 3.0
 
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...
 
Sabin Buraga: Date de 5 stele
Sabin Buraga: Date de 5 steleSabin Buraga: Date de 5 stele
Sabin Buraga: Date de 5 stele
 
Sabin Buraga - Web: To Be Continued
Sabin Buraga - Web: To Be ContinuedSabin Buraga - Web: To Be Continued
Sabin Buraga - Web: To Be Continued
 
Dezvoltarea aplicaţiilor Web la nivel de client (cursul #1): Interacţiune Web...
Dezvoltarea aplicaţiilor Web la nivel de client (cursul #1): Interacţiune Web...Dezvoltarea aplicaţiilor Web la nivel de client (cursul #1): Interacţiune Web...
Dezvoltarea aplicaţiilor Web la nivel de client (cursul #1): Interacţiune Web...
 
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...
 
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
 
AJAX - back to the future
AJAX - back to the futureAJAX - back to the future
AJAX - back to the future
 
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...
 
Computer Networks. Retrospective & perspective
Computer Networks. Retrospective & perspectiveComputer Networks. Retrospective & perspective
Computer Networks. Retrospective & perspective
 
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...
 
CLIW 2014—2015 (1/12): Interacţiune Web: concepte, context, studii de caz
CLIW 2014—2015 (1/12): Interacţiune Web: concepte, context, studii de cazCLIW 2014—2015 (1/12): Interacţiune Web: concepte, context, studii de caz
CLIW 2014—2015 (1/12): Interacţiune Web: concepte, context, studii de caz
 
WADe 2017-2018 (1/12) Web Application Development: Concepts & Vision
WADe 2017-2018 (1/12) Web Application Development: Concepts & VisionWADe 2017-2018 (1/12) Web Application Development: Concepts & Vision
WADe 2017-2018 (1/12) Web Application Development: Concepts & Vision
 
WADe 2017-2018 (7/12) Architecture of RDF-based Applications. Linked Open Dat...
WADe 2017-2018 (7/12) Architecture of RDF-based Applications. Linked Open Dat...WADe 2017-2018 (7/12) Architecture of RDF-based Applications. Linked Open Dat...
WADe 2017-2018 (7/12) Architecture of RDF-based Applications. Linked Open Dat...
 

More from 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
 

More from 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
 

Servicii Web prin REST

  • 1. infoeducatie 2009 :: servicii web prin rest Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 2. infoeducatie 2009 :: servicii web prin rest pasiune muzică pictură literatură @busaco fotografie arte XML România Computer Science profesor A. I. Cuza cercetare facultate Web interacțiune conferințe semantic design cărți cursuri programare Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 3. infoeducatie 2009 :: servicii web prin rest Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 4. infoeducatie 2009 :: servicii web prin rest oferirea unui spațiu de comunicare inter‐umană  partajarea cunoștințelor Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 5. infoeducatie 2009 :: servicii web prin rest exploatarea puterii computaționale Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 6. infoeducatie 2009 :: servicii web prin rest resursele sunt identificate prin adresa lor  identificator uniform de resurse URI – Uniform Resource Identifier http://infoeducatie.ro/2009/participanti/tux Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 7. infoeducatie 2009 :: servicii web prin rest accesul la conținutul – reprezentarea – resurselor Web se realizează printr‐un protocol HTTP – HyperText Transfer Protocol Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 8. infoeducatie 2009 :: servicii web prin rest pagini Web resursele – documentele – includ <marcaje /> Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 9. infoeducatie 2009 :: servicii web prin rest marcajele conțin la rândul lor URI‐uri hipertext Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 10. infoeducatie 2009 :: servicii web prin rest Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 11. infoeducatie 2009 :: servicii web prin rest soluții multi‐platformă, slab‐conectate integrarea facilă la nivel de Web a aplicațiilor, serviciilor & sistemelor Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 12. infoeducatie 2009 :: servicii web prin rest necesitatea recurgerii la standarde Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 13. infoeducatie 2009 :: servicii web prin rest soluții multi‐platformă, slab‐conectate datele să poată fi descrise pentru a fi “înțelese” de calculatoare și pentru a fi interconectate ușor Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 14. infoeducatie 2009 :: servicii web prin rest servicii atașabile (pluggable) & versatile SaaS – Software as a Service ASP – Application Service Provider Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 15. infoeducatie 2009 :: servicii web prin rest Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 16. infoeducatie 2009 :: servicii web prin rest există un model arhitectural de dezvoltare a serviciilor la nivel de web? Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 17. infoeducatie 2009 :: servicii web prin rest divizarea aplicațiilor în servicii – independente – care se pot compune, menite a se conecta & orchestra în mod spontan în cadrul proceselor de afaceri/tehnice web component‐based software Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 18. infoeducatie 2009 :: servicii web prin rest “the web is the computer” disponibilitatea unei/unor arhitecturi care… oferă suport pentru paradigme de comunicare  bazată pe Web între aplicații eterogene Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 19. infoeducatie 2009 :: servicii web prin rest “the web is the computer” disponibilitatea unei/unor arhitecturi care… permit(e) localizarea transparentă a serviciilor Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 20. infoeducatie 2009 :: servicii web prin rest “the web is the computer” disponibilitatea unei/unor arhitecturi care… facilitează adăugarea, înlocuirea, eliminarea serviciilor în mod dinamic Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 21. infoeducatie 2009 :: servicii web prin rest “the web is the computer” disponibilitatea unei/unor arhitecturi care… ascund(e) dezvoltatorului detaliile de sistem Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 22. infoeducatie 2009 :: servicii web prin rest Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 23. infoeducatie 2009 :: servicii web prin rest software oferind o funcționalitate specifică spelling checking stocare de date mesagerie instantanee agregare de știri curs valutar realizare de statistici … Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 24. infoeducatie 2009 :: servicii web prin rest utilizate – la distanță – de alte aplicații/servicii Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 25. infoeducatie 2009 :: servicii web prin rest accesate standardizat via Web URI HTTP XML Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 26. infoeducatie 2009 :: servicii web prin rest serviciul unei agenții de turism oferirea – și vânzarea, eventual – a unor formule  de petrecere a vacanței Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 27. infoeducatie 2009 :: servicii web prin rest serviciul unei agenții de turism utilizează alte servicii (software) disponibile pe Web:  tranzacții financiare servicii hoteliere servicii de transport Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 28. infoeducatie 2009 :: servicii web prin rest cum am implementa un serviciu? script‐uri CGI sau utilizarea serverelor de aplicații Web ASP.NET, JSP,  PHP, RoR,… Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 29. infoeducatie 2009 :: servicii web prin rest maniera clasică de interacțiune cu utilizatorul utilizatorul – nu neapărat uman ☺ – vizitează  o pagină și formulează o cerere (e.g., via un formular) Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 30. infoeducatie 2009 :: servicii web prin rest maniera clasică de interacțiune cu utilizatorul serviciul implementat oferă un răspuns uzual, un document (X)HTML Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 31. infoeducatie 2009 :: servicii web prin rest tradițional, aplicația oferă o interfață‐utilizator  disponibilă pe web cererile sunt capt(ur)ate via formulare + legături hipertext utilizatorii umani trebuie să interpreteze etichetele  și câmpurile de dialog + răspunsul recepționat Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 32. infoeducatie 2009 :: servicii web prin rest cum obținem răspunsul pentru a fi (re)folosit în 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. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 33. infoeducatie 2009 :: servicii web prin rest cum obținem răspunsul pentru a fi (re)folosit în programele noastre? ???! orice modificare în marcaje rescrierea programului  de preluare a datelor din documentul HTML Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 34. infoeducatie 2009 :: servicii web prin rest cum are loc schimbul de date între servicii web și alte aplicații? Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 35. infoeducatie 2009 :: servicii web prin rest ce‐ar fi să indicăm datele de intrare și  răspunsul oferit de serviciul web într‐un format standardizat? Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 36. infoeducatie 2009 :: servicii web prin rest posibile soluții: “dialog”  XML‐RPC prin XML SOAP POX (Plain Old XML) JSON (JavaScript Object Notation) Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 37. infoeducatie 2009 :: servicii web prin rest REpresenta‐ tional State  Transfer Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 38. infoeducatie 2009 :: servicii web prin rest stil arhitectural de dezvoltare a aplicațiilor Web cu focalizare asupra reprezentării datelor Roy Fielding, 2000 Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 39. infoeducatie 2009 :: servicii web prin rest rezultatul unei procesări conduce la returnarea  unei reprezentări de resursă Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 40. infoeducatie 2009 :: servicii web prin rest rezultatul unei procesări conduce la returnarea  unei reprezentări de resursă resursă Web = blog‐ul unei persoane,  fotografia unui utilizator, flux de știri, program etc. Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 41. infoeducatie 2009 :: servicii web prin rest rezultatul unei procesări conduce la returnarea  unei reprezentări de resursă reprezentare = (X)HTML, JPEG, PNG, RSS, Atom, SVG,… desemnată de tipuri MIME text/html, image/png, application/xhtml+xml etc. Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 42. infoeducatie 2009 :: servicii web prin rest rezultatul unei procesări conduce la returnarea  unei reprezentări de resursă reprezentările aceleași resurse  – desemnate de un URI unic – pot fi multiple reprezentare1 reprezentare2 (XHTML) (Atom) resursa URI Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 43. infoeducatie 2009 :: servicii web prin rest rezultatul unei procesări conduce la returnarea  unei reprezentări de resursă fiecare reprezentare a unei resurse are asociat un URL URL URL reprezentare1 reprezentare2 (XHTML) (Atom) resursa URI Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 44. infoeducatie 2009 :: servicii web prin rest clienții – e.g., navigatoare Web, roboti, player‐e – interacționează cu reprezentările resurselor via verbe (“accesează”: GET, “modifică”: POST, “șterge”: DELETE,…) GET POST GET DELETE URL URL reprezentare1 reprezentare2 (XHTML) (Atom) resursa URI Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 45. infoeducatie 2009 :: servicii web prin rest orice accesare a unei reprezentări  plasează aplicația – ori clientul Web – într‐o stare care va fi schimbată în urma unui transfer de date (accesarea altei reprezentări) Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 46. infoeducatie 2009 :: servicii web prin rest http://blog.info/mesaj http://blog.info/ http://blog.info/mesaj/edit reprezentare2 reprezentare1 reprezentare3 (XHTML) (XHTML) (XHTML) GET POST resursa2 resursa1 resursa3 http://blog.info/stiri reprezentare4 GET (Atom) resursa4 Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 47. infoeducatie 2009 :: servicii web prin rest transferul se realizează prin protocolul HTTP reprezentarea este modelată în XML și indicată prin tipuri MIME adresabilitatea se rezolvă via URI Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 48. infoeducatie 2009 :: servicii web prin rest aplicațiile ce invocă funcționalități (servicii) vor consuma reprezentări de resurse – în stilul pull Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 49. infoeducatie 2009 :: servicii web prin rest fiecare cerere este considerată independentă, fără a se lua în considerație contextul – stateless Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 50. infoeducatie 2009 :: servicii web prin rest implementarea unui magazin on‐line oferind dulciuri tipuri de resurse (Sortim & Utiliz), identificate unic de URI http://www.dulciuri.biz/sortim/rahat URI intuitiv așa‐zis user/SEO friendly Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 51. infoeducatie 2009 :: servicii web prin rest serviciile oferite de Flickr.com acces – folosind HTTP (e.g., GET, POST) – via URI‐ul http://api.flickr.com/services/rest/ pentru a invoca un serviciu Flickr,  se precizează metoda + parametrii (dacă există) http://api.flickr.com/services/rest/?method=flickr.photos.getInfo&... se înlocuiește cu  funcționalitatea dorită Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 52. infoeducatie 2009 :: servicii web prin rest serviciile oferite de Del.icio.us managementul adreselor Web favorite (bookmark‐uri) listarea bookmark‐urilor (eventual, filtrate/grupate după diverse criterii) managementul bookmark‐urilor: adăugare, editare, ștergere Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 53. infoeducatie 2009 :: servicii web prin rest interfața web cu utilizatorul Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 54. infoeducatie 2009 :: servicii web prin rest Resursa URL Metoda Reprezentare bookmark /bookmarks/{md5} GET application/bookmark+xml bookmark /bookmarks/{md5} PUT application/bookmark+xml bokmark /bookmarks/{md5} DELETE listă de  /bookmarks GET application/atom+xml bookmark‐uri listă de utilizatori /users GET application/atom+xml listă de tag‐uri  (termeni de   /tags GET application/atom+xml conținut) pagina principală / GET application/delicious+xml Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 55. infoeducatie 2009 :: servicii web prin rest obținerea bookmark‐urilor: GET /bookmarks răspuns XML (Atom) dat de  200 OK Del.icio.us Content-type: application/atom+xml <?xml version="1.0"?> <feed xmlns="http://www.w3.org/2005/Atom"> <title>Bookmarks</title> <entry> digest MD5 <title>O resursa interesanta</title> <link href="/bookmarks/a211528fb5108cddaa4b0d3aeccdbdcf"/> <summary>http://undeva.info/o-resursa-interesanta</summary> </entry> <!-- eventual, alte elemente <entry>… --> </feed> Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 56. infoeducatie 2009 :: servicii web prin rest 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ăspuns XML dat de serviciul Del.icio.us Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 57. infoeducatie 2009 :: servicii web prin rest cum accesăm reprezentări de resurse web Dr. Sabin‐Corneliu BuragaREST? prin – www.purl.org/net/busaco
  • 58. infoeducatie 2009 :: servicii web prin rest biblioteci/API‐uri implementând HTTP libcURL (C, cu portări pentru Perl, PHP, Ruby, Tcl,…) libwww (C, Perl) httplib (Python) Net:HTTP (Ruby) etc. Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 59. infoeducatie 2009 :: servicii web prin rest exemplu: trimiterea unui mesaj la Twitter.com curl --basic --user utilizator:parola --data status="rest!" http://twitter.com/statuses/update.xml <status> <created_at>Wed Jul 29 15:25:05 +0000 2009</created_at> <text>rest!</text> <truncated>false</truncated> <user> <name>Sabin Buraga</name> <description>A computer scientist, an artist, and more!</description> … </status> Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 60. infoeducatie 2009 :: servicii web prin rest biblioteci/API‐uri implementând HTTP permit dezvoltarea de aplicații desktop, mobile etc. suport pentru implementarea de mash‐up‐uri pe server nu funcționează în navigatorul web Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 61. infoeducatie 2009 :: servicii web prin rest navigatoarele Web actuale nu necesită o interfață de programare specifică  disponibilitate ubicuă transferuri asincrone via AJAX – direct în JavaScript pot apărea incompatibilități Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 62. infoeducatie 2009 :: servicii web prin rest ASP.NET MVC (C#) JAX‐RS – Java Architecture for RESTful web Services Jifty (Perl) Recess (PHP) Ruby on Rails (Ruby) Symfony (PHP) Tonic (PHP) etc. Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 63. infoeducatie 2009 :: servicii web prin rest servicii publice ce pot fi consumate prin REST (exemple):  Amazon, Blip.tv, eBay, Facebook, Google, Hi5, Last.fm,  SlideShare, Talis, TripIt, Upcoming, Yahoo!, YouTube etc. API‐uri specifice disponibile liber pentru Flex (ActionScript), PHP, Python, Objective‐C, Ruby,… Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 64. infoeducatie 2009 :: servicii web prin rest cum combin date oferite de mai multe servicii web? Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 65. infoeducatie 2009 :: servicii web prin rest combinarea – la nivel de client și/sau server – a conținutului ce provine din surse (situri) multiple, oferind o funcționalitate/experiență nouă Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 66. infoeducatie 2009 :: servicii web prin rest + Ma(y)shupTV o aplicație hibridă Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 67. infoeducatie 2009 :: servicii web prin rest se bazează pe fluxuri RSS/Atom,  servicii web, API‐uri,… Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 68. infoeducatie 2009 :: servicii web prin rest aliniate “curentului” SaaS (Software As A Service) Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 69. infoeducatie 2009 :: servicii web prin rest caracteristici: combinare vizualizare agregare Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 70. infoeducatie 2009 :: servicii web prin rest 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. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 71. infoeducatie 2009 :: servicii web prin rest Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 72. infoeducatie 2009 :: servicii web prin rest vizualizare pot fi adoptate diverse tehnici de vizualizare (prezentare) a datelor: cartografică, tag cloud‐uri, tridimensională, … Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 73. infoeducatie 2009 :: servicii web prin rest Twitter + Google Earth TwittEarth Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 74. infoeducatie 2009 :: servicii web prin rest agregare gruparea datelor provenite din mai multe surse și analizarea lor: statistici, clasificări, predicții,… prin data mining se pot releva aspecte “ascunse” ale datelor procesate Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 75. infoeducatie 2009 :: servicii web prin rest recomandare inteligentă de resurse via Zemanta Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 76. infoeducatie 2009 :: servicii web prin rest platforme instrumente (GUI tools) biblioteci de dezvoltare (libraries) interfețe de programare (API‐uri) surse de date (data feeds) Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 77. infoeducatie 2009 :: servicii web prin rest platforme instrumente (GUI tools) biblioteci de dezvoltare RSS, geoRSS,  (libraries) microformate,  interfețe de programare RDFa,… (API‐uri) surse de date (data feeds) Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 78. infoeducatie 2009 :: servicii web prin rest platforme instrumente (GUI tools) privind biblioteci de dezvoltare specifice fluxurile (libraries) serviciilor RSS/Atom publice interfețe de programare (API‐uri) surse de date (data feeds) Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 79. infoeducatie 2009 :: servicii web prin rest platforme instrumente framework‐uri (GUI tools) oferite de  web organizații biblioteci de dezvoltare (libraries) interfețe de programare (API‐uri) surse de date (data feeds) Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 80. infoeducatie 2009 :: servicii web prin rest Adobe AIR,  Boxely,  SnapLogic,  platforme widget‐uri instrumente (GUI tools) biblioteci de dezvoltare (libraries) interfețe de programare (API‐uri) surse de date (data feeds) Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 81. infoeducatie 2009 :: servicii web prin rest Dappr, Facebook,  Google App Engine,  Yahoo! Pipes platforme instrumente (GUI tools) biblioteci de dezvoltare (libraries) interfețe de programare (API‐uri) surse de date (data feeds) Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 82. infoeducatie 2009 :: servicii web prin rest Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 83. infoeducatie 2009 :: servicii web prin rest “codul‐sursă” al pipe‐ului web Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 84. infoeducatie 2009 :: servicii web prin rest cum aflu care sunt  mash‐up‐urile existente și API‐urile aferente? Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 85. infoeducatie 2009 :: servicii web prin rest ProgrammableWeb.com Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 86. infoeducatie 2009 :: servicii web prin rest 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. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 87. infoeducatie 2009 :: servicii web prin rest Sabin Buraga, Tehnologii XML, Polirom, 2006 Sabin Buraga (coord.), Programarea în Web 2.0, Polirom, 2007 Leonard Richardson, Sam Ruby, RESTful Web Services,  O’Reilly, 2007 Raymond Yee, Pro Web 2.0 Mashups: Remixing Data and Web Services, Apress, 2008 Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 88. infoeducatie 2009 :: servicii web prin rest Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 89. infoeducatie 2009 :: servicii web prin rest o parte dintre conținuturile grafice au fost preluate  de pe situl Flickr, fotografiile fiind realizate de utilizatorii: 42311564, cedric1981, chrispitality, cjc4454, damongarrett,  little_lushie, mithril, petergorges, psd, pujan, sharman,  sharynmorrow, splatt, stuartpilbrow, that_james Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 90. infoeducatie 2009 :: servicii web prin rest Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco