sisteme distribuite – tehnologii 9. rest si web...

30
1 Sisteme distribuite – Tehnologii 9. REST si Web 2.0 Decembrie 4, 2009

Upload: others

Post on 25-Oct-2019

20 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Sisteme distribuite – Tehnologii 9. REST si Web 2staff.fmi.uvt.ro/~dana.petcu/distrib/TDS9-RO.pdf · Servicii Web in stil REST Anumiti vendori, precum Amazon, ofera atat interfete

1

Sisteme distribuite – Tehnologii9. REST si Web 2.0

Decembrie 4, 2009

Page 2: Sisteme distribuite – Tehnologii 9. REST si Web 2staff.fmi.uvt.ro/~dana.petcu/distrib/TDS9-RO.pdf · Servicii Web in stil REST Anumiti vendori, precum Amazon, ofera atat interfete

2

Representational State TransferTermen aparut in 2000Stil arhitecturalO metoda de transport media utilizat in mod primarpeste WWW, dei nu este restrrictionat la acestaEste constrit ca sistem hiper-media—Webul este celamai mareTermenul defineste principiile arhitecturale de transfer peste sisteme, Este orientat in special asupra transferului datelorpeste HTTP fara utilizarea unui nivel de transmitereaditional, precum SOAP.

Page 3: Sisteme distribuite – Tehnologii 9. REST si Web 2staff.fmi.uvt.ro/~dana.petcu/distrib/TDS9-RO.pdf · Servicii Web in stil REST Anumiti vendori, precum Amazon, ofera atat interfete

3

Filozofia care conduce la REST

Modalitatea de design a unui aplicatii Web:Identificarea conceptelor sale de baza, Modelarea lor ca resurse, Asignarea lor de identificatori unice de resurse (URI).

Agenti software, precum navigatoarele Web sau aplicatiile Web,solicitaaceste resurse, specificand formatul preferat de reprezentareServiciul Web raspunde prin reprezentarea resursei catre agent in formatul care este cel mai apropriat de cerere. Selectarea celei mai bune reprezentari este referita ca si negociere de context. Agentul trece atunci la urmatoarea stare bazandu-se pe continutulresursei primite tipic continand hiper-linkuri la alte resurseHiper-linkurile sunt apoi utilizate pentru cererile urmatoare, care cauzeaza tranzitia agentului la o stare noua

Page 4: Sisteme distribuite – Tehnologii 9. REST si Web 2staff.fmi.uvt.ro/~dana.petcu/distrib/TDS9-RO.pdf · Servicii Web in stil REST Anumiti vendori, precum Amazon, ofera atat interfete

4

Prima idee de baza: hiper-link

Reprezentarea unei resurse va contine adesealegaturi la alte resurseUn agent va urmari aceste legaturi pentru a obtineinformatiaIn context WS, aceasta inseamna ca mesajeleschimbate vor contine referinte la alte WSuri. O descriere concreta a serviciului Web trebuie de asemenea sa descrie interfetele acestor referinte la alte servicii Web

Page 5: Sisteme distribuite – Tehnologii 9. REST si Web 2staff.fmi.uvt.ro/~dana.petcu/distrib/TDS9-RO.pdf · Servicii Web in stil REST Anumiti vendori, precum Amazon, ofera atat interfete

5

A doua idee: interfata uniforma

Exista un set standard de verbe sau metodecare sunt utilizate pentru a accesa oriceresursaIn HTTP, metodele cela mai comunesuntPUT, GET, POST, si DELETE, care corsepunde cu operatiunile Create, Retrieve, Update, si Delete (CRUD) pe baze de date In practica, majoritatea aplicatiilor Web utilizeaza doar GET si POST.

Page 6: Sisteme distribuite – Tehnologii 9. REST si Web 2staff.fmi.uvt.ro/~dana.petcu/distrib/TDS9-RO.pdf · Servicii Web in stil REST Anumiti vendori, precum Amazon, ofera atat interfete

6

GET

Trebuie sa fie utilizat pentru operatii care sunt sigure, ceea ceinseamna ca sunt idempotente si nu impune obligatiiIdempotenta inseamna ca rezultatul in urma efectuarii de douaori a operatiei este aceeasi ca si daca este efectuata odata

Exemplu: obtinerea balantei contului este idempotenta, darretragerea banilor nu esteO obligatie poate fi ceva precum taxarea contuli pentru o operatie

Operatiile sigure admit anumite optimizari precum prefetching sicaching.

Exemplu: un navigator Web poate opta pentru prefetching a paginilor legate si aplica caching la rezultatelor pentru a imbunatati timpul de raspuns si reduce traficul de retea

Page 7: Sisteme distribuite – Tehnologii 9. REST si Web 2staff.fmi.uvt.ro/~dana.petcu/distrib/TDS9-RO.pdf · Servicii Web in stil REST Anumiti vendori, precum Amazon, ofera atat interfete

7

Negocierea continutuluiMecanismul prin care agentul poate specifica tipurile de reprezentari ale resursei pecare le prefera sa le receptioneze ca raspuns la o cerereExemplu: pp. un navigator Web care cere o pagina HTML.

Parte cererii este un antet HTTP Accept care listeaza tipurile de imagini care poate firandata de navigatorul Web, cu greutati care indica preferintele sale. Cand aplicatia Web receptioneaza cererea,

Inspecteaza antetul Accept siGenereaza o pagina Web pentru legaturi la tipul de imagine care se protriveste cela mai bine la preferintele navigatorului Web.

Un mecanism similar poate fi utilizat pentru specificarea limbajului natural dorit la raspunsNegocierea contextului se aplica si la servicii Web. De exemplu

Un client AJAX poate prefera un raspuns codat in JSON ca prima alegere, apoi XML, si in final SOAP, deoarece aceasta este ordinea care minimizeaza timpul de parsareClientul include un antet Accept in cererea sa indicand ca accepta aceste tipuri media siapoi asigneaza preferinte adecvateClientul AJAX receptioneaza raspunsul in format care este mai eficient pentru a-l procesadaca serviciul Web il ofera, dar poate totusi functiona daca serviciile Web ofera formateacceptabile. WSul poate fi atualizat la o data ulterioara pentru a imbunati erformanta si clientii vorbeneficia autoat de modificarile respective

Page 8: Sisteme distribuite – Tehnologii 9. REST si Web 2staff.fmi.uvt.ro/~dana.petcu/distrib/TDS9-RO.pdf · Servicii Web in stil REST Anumiti vendori, precum Amazon, ofera atat interfete

8

Componentele cheie ale designului RESTful

1. Starea si functionalitatea unei aplicatii suntseparate in resurse diferite.

2. Fiecare resursa partajeaza o metodaconsistenta pentru transferul starii intreresurse

3. Fiecare resursa este adresabila utilizand o sintaxa hiper-media

4. Este un protocol care este fara stare, cacheable, bazat pe client/server, si pestraturi.

Page 9: Sisteme distribuite – Tehnologii 9. REST si Web 2staff.fmi.uvt.ro/~dana.petcu/distrib/TDS9-RO.pdf · Servicii Web in stil REST Anumiti vendori, precum Amazon, ofera atat interfete

9

World Wide Web

Este exemplul perfect pentru implementare RESTful, pentru ca poate se poate conforma principiilor REST. HTML

Are suport implicit pentru hiper-linkuri in limbajAre metode consistente (GET, POST, PUT, si DELETE) pentruaccesarea resurselor din URIuri, metode, coduri de stare, siantete.

HTTP Este fara stare (daca nu sunt utilizati cookies), Are abilitatea de control a cachingului, Utilizeaza notiunea de client si de serverEste stratificat a.i. nici un nivel nu poate cunoaste nimic desprecelalalt expectand conexiunea imediata prin conversare

Page 10: Sisteme distribuite – Tehnologii 9. REST si Web 2staff.fmi.uvt.ro/~dana.petcu/distrib/TDS9-RO.pdf · Servicii Web in stil REST Anumiti vendori, precum Amazon, ofera atat interfete

10

Tringhiul REST

Interfata = verb,Tipurile de continutIdentificator de resurse= substantiv (noun). REST definestesubstantivele care fiindneconstranse a.i. clientiinu trebuie sa cunoascaintreaga resursa

Page 11: Sisteme distribuite – Tehnologii 9. REST si Web 2staff.fmi.uvt.ro/~dana.petcu/distrib/TDS9-RO.pdf · Servicii Web in stil REST Anumiti vendori, precum Amazon, ofera atat interfete

11

SOA sau REST?Arhitectura care este utilizata in aplicatii depind de WSurile cu care interactioneaza

1. Daca cunoastem ca unica interfata la WS este prinSOAP, este natural ca arhitectura aplicatiei sa fie definita ca urmarind SOA.

2. Daca WS este RESTful, construirea aplicatiei pentru a urmari principiile REST este adecvat. Fiecare componenta a unei aplicatii poate fi construitaintr-o modalitate, iar alta intr-o modalitate diferita

Aplicatia ca intreg orice stil arhitectural care estenecesar pt. proiect (client/server, Model-View-Controller – MVC, etc.), pe cand componenteleurmaresc propriile modele pe cat ai eficient posibil

Page 12: Sisteme distribuite – Tehnologii 9. REST si Web 2staff.fmi.uvt.ro/~dana.petcu/distrib/TDS9-RO.pdf · Servicii Web in stil REST Anumiti vendori, precum Amazon, ofera atat interfete

12

Servicii Web in stil RESTAnumiti vendori, precum Amazon, ofera atat interfete SOAP cat si REST Amazon 2003: 85 % din utilizarile WS s-au realizat prin interfata REST.

Aceasta preferinta este datorata faptului ca utilizarea principala a WS Amazon esteaceea de a oferi legaturi produs pentru pagini Web.Interfertele in stil REST sunt mai usor de utilizat

SOAP 1.1 Majoritatea motoarelor utilizeaza un singur URL care actioneaza ca un router pentrucererile de serviciiMotorul SOAP examineaza cererea de determinare a operatie si invoca implementareaserviciului asociata cu acestaSOAP 1.1 peste HTTP utilizeaza intotdeauna POST, astfel incat toate operatiile sunttratate ca fiind nesigure.

WSDL 1.1 Defineste toate legaturile HTTP, una pentru GET si alta pentru POST.

Aceasta inseamna ca nu se poate descrie un serviciu care are o combinatie de operatii sigure sioperatii nesigureDe asemenea nu se poate utiliza intotdeauna metoda corecta HTTP pentru orice operatie pentruca PUT, DELETE, nu sunt suportate.

Nu ofere nici o modalitate de a descrie mesaje care se refera la alte WSuri, adica n-are suport pentru hiper-linking.

Page 13: Sisteme distribuite – Tehnologii 9. REST si Web 2staff.fmi.uvt.ro/~dana.petcu/distrib/TDS9-RO.pdf · Servicii Web in stil REST Anumiti vendori, precum Amazon, ofera atat interfete

13

SOAP 1.1 si WSDL 1.1

Sunt ostile REST. Aceste specificatii ofera bazele oentru o multimemare si bogata de specificatii aditionale referite ca WS-*.

WS-Security, WS-Reliability, si WS-Addressing sunt catevaexempleModalitatea de a gandi despre WS-* este aceea de a definio modalitate de scurge mesajele WSurilor peste hopurimultiple de transpot implicand o combinatie de protocoaleDe exemplu, un serviciu Web de companie poatereceptiona o cerere peste HTTP si s-o plaseze intr-o coadade mesaje

Page 14: Sisteme distribuite – Tehnologii 9. REST si Web 2staff.fmi.uvt.ro/~dana.petcu/distrib/TDS9-RO.pdf · Servicii Web in stil REST Anumiti vendori, precum Amazon, ofera atat interfete

14

SOAP 1.2 si WSDL 2.0

aduce lumea WSurilor intr-o aliniere mai buna cu principiile arhitecturii REST. SOAP 1.2 suporta utilizarea GET pentru cereri. WSDL 2.0

Permite descrierea operatiilor sigureO legare HTTP imbunatatita siInclude suport pentru descrierea mesajelor care se referala alte WSuri; hiper-linking intre serviciile Web pot fi descrise

La intrarea in era tehnologiilor Web 2.0, putemvedea o unificare a stilurilor WS, WS-* si REST, bazate pe SOAP 1.2 si WSDL 2.0.

Page 15: Sisteme distribuite – Tehnologii 9. REST si Web 2staff.fmi.uvt.ro/~dana.petcu/distrib/TDS9-RO.pdf · Servicii Web in stil REST Anumiti vendori, precum Amazon, ofera atat interfete

15

Web 2.0

Page 16: Sisteme distribuite – Tehnologii 9. REST si Web 2staff.fmi.uvt.ro/~dana.petcu/distrib/TDS9-RO.pdf · Servicii Web in stil REST Anumiti vendori, precum Amazon, ofera atat interfete

16

Syndication-1

Tipul de sindicat in care sectiunile dintr-un site Web sunt facute disponibile pentru altele pentru utilizare, majoritatea utiizand XML ca agent de transport. News, vreme, si site-urile blog sunt intotdeaunasursele comune pentru sindicare,

Dar nu exista o limitare de unde poate veni o alimentareRSS este parte a unei familii de standarde care toate utilizeaza XML pentru structura lor de bazaRDF, baza pentru RSS 1.0, este un standard W3C

Page 17: Sisteme distribuite – Tehnologii 9. REST si Web 2staff.fmi.uvt.ro/~dana.petcu/distrib/TDS9-RO.pdf · Servicii Web in stil REST Anumiti vendori, precum Amazon, ofera atat interfete

17

Syndication-2

Deoarece toate versiunile diferite de RSS si problemele acestora au creat confuzii, un alt grup a inceput sa lucreze la o specificatie nouanumita Atom. In iulie 2005, IETF a acceptat Atom 1.0 ca si propunere de standard. Exsita mai multe diferente majore intre Atom 1.0 si RSS 2.0.

Atom 1.0 esteIntr-un spatiu de nume XML, Are un tip MIME inregistrat, Include o schema XML siS-a supus unui proces de standardizare

RSS 2.0 Nu este intr-un spatiu de numeEste adeasa trimis ca aplicatie/rss+xml dar nu are un tip MIME inregistrat, Nu are o schema XML siNu este standardizat si nu poate fi modificat.

Page 18: Sisteme distribuite – Tehnologii 9. REST si Web 2staff.fmi.uvt.ro/~dana.petcu/distrib/TDS9-RO.pdf · Servicii Web in stil REST Anumiti vendori, precum Amazon, ofera atat interfete

18

XSLT

Limbaj bazat pe XML utilizat pentru a transforma si formatadocumente XML. In 1999, XSLT version 1.0 a devenit recomandare W3C. Din 2007, XSLT version 2.0 este o recomandare care lucreazaimpreuna cu XPath 2.0. XSLT utilizeaza XPath pentru a identifica submultimi ale arboreluidocumentului XML si pentru a efectua calcule la interogareXSLT preia un document XML si creaza un nou document cu toatetransformarile, lasand documentul original XML intact.

In context Ajax, transformarea produce in mod uzual XHTML

Page 19: Sisteme distribuite – Tehnologii 9. REST si Web 2staff.fmi.uvt.ro/~dana.petcu/distrib/TDS9-RO.pdf · Servicii Web in stil REST Anumiti vendori, precum Amazon, ofera atat interfete

19

Alimentatori Web (feeds) – o altamodalitate de acces la dateWeb feeds sunt documente bazate pe XML structurate cu RSS sau Atom.

Alimentatorii sunt generati in diferite modurisi sunt static prin naturaO modalitate de a crea un alimentator este de a scrie un script care viziteazapagini si strange date din acestea

Web scraping (strangere) nu este modalitatea cea mai nobila de colectare date sipoate incalca drepsturile de proprietate

Utilizarea unui alimentator pentru a strange informatie este o modalitate buna decreare a WSurilor

Alimentatoarele pot fi stranse la server si diseminate la clienti cand este cerutainformatiaEste o solutie buna pentru colectarea titlurilor si descrierilor dintr-o sursa care poatenu ofera WSuri pentru a obtine informatiaDezavantajul major este aflarea la dispozitia furmizorului [Ceea ce furnizorul plaseazain alimentator este ceea se obtine].

Feed aggregators (agregatori de alimentatori) strang alimentatorii de la furmizorii de continut si le agregheaza intr-o modalitate mai usoara pentru a obtine date pemtru or aplicatie

Exemplu: Google Reader, de la http://www.google.com/reader. Aplicatia preiaalimentarorii de la surse diferite (in timp real) si permite cele care subscriu sa-sicustomizeze selectiile

Page 20: Sisteme distribuite – Tehnologii 9. REST si Web 2staff.fmi.uvt.ro/~dana.petcu/distrib/TDS9-RO.pdf · Servicii Web in stil REST Anumiti vendori, precum Amazon, ofera atat interfete

20

Exemplu: feed de la Yahoo! Weather (http://weather.yahooapis.com/forecastrss?p=62221)<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>

<rss version="2.0“xmlns:yweather="http://xml.weather.yahoo.com/ns/rss/1.0" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#">

<channel> <title>Yahoo! Weather - Belleville, IL</title> <link>

http://us.rd.yahoo.com/dailynews/rss/weather/Belleville_IL/* http://weather.yahoo.com/forecast/62221_f.html </link> <description>Yahoo! Weather for Belleville, IL</description> <language>en-us</language> <lastBuildDate>Tue, 13 Mar 2007 11:55 am CDT </lastBuildDate> <ttl>60</ttl>

<yweather:location city="Belleville" region="IL" country="US" /> <yweather:units temperature="F" distance="mi" pressure="in"

speed="mph" /> <yweather:wind chill="77" direction="210" speed="14" /> <yweather:atmosphere humidity="50" visibility="1609"

pressure="30.07" rising="2" /> <yweather:astronomy sunrise="7:15 am" sunset="7:05 pm" /> <image> <title>Yahoo! Weather</title> <width>142</width> <height>18</height> <link>http://weather.yahoo.com/</link>

<url>http://l.yimg.com/us.yimg.com/i/us/nws/th/main_142b.gif</url> </image> <item> <title>Conditions for Belleville, IL at 11:55 am CDT</title> <geo:lat>38.5</geo:lat> <geo:long>-90</geo:long>

<link> http://us.rd.yahoo.com/dailynews/rss/weather/Belleville_IL/* http://weather.yahoo.com/forecast/62221_f.html

</link> <pubDate>Tue, 13 Mar 2007 11:55 am CDT</pubDate> <yweather:condition text="Fair" code="34" temp="77" date="Tue, 13 Mar 2007 11:55 am CDT" /> <description> <![CDATA[ <img src="http://l.yimg.com/us.yimg.com/i/us/we/52/34.gif" /><br />

<b>Current Conditions:</b><br /> Fair, 77 F<BR /><BR />

<b>Forecast:</b><BR /> Tue - Partly Cloudy. High: 81 Low: 58<br /> Wed - Partly Cloudy. High: 76 Low: 55<br /> <br />

<a href="http://us.rd.yahoo.com/dailynews/rss/weather/Belleville_IL/* http://weather.yahoo.com/forecast/62221_f.html">

Full Forecast at Yahoo! Weather </a><BR/> (provided by The Weather Channel)<br/> ]]>

</description> <yweather:forecast day="Tue" date="13 Mar 2007" low="58"

high="81" text="Partly Cloudy" code="30" /> <yweather:forecast day="Wed" date="14 Mar 2007" low="55"

high="76" text="Partly Cloudy" code="30" /> <guid isPermaLink="false">62221_2007_03_13_11_55_CDT</guid> </item> </channel></rss>

Page 21: Sisteme distribuite – Tehnologii 9. REST si Web 2staff.fmi.uvt.ro/~dana.petcu/distrib/TDS9-RO.pdf · Servicii Web in stil REST Anumiti vendori, precum Amazon, ofera atat interfete

21

PHP code care transforma acest alimentator intr-un servivciu Web tip REST

<?php/* Using feeds to distribute information with PHP. * This example shows how to take an RSS feed and strip out the information * desired by the application, giving only a minimal amount of data to the client.*//* Get the RSS feed from Yahoo! for my zip code */$results = file_get_contents('http://weather.yahooapis.com/forecastrss?p=62221');$xml = new SimpleXMLElement($results);/* Create the XML for the client */$response = '<response code="200">';$response .= '<weather>';/* Create the prefix context for the XPath query */$xml->registerXPathNamespace('y', 'http://xml.weather.yahoo.com/ns/rss/1.0');/* Gather the temperature data */$temp = $xml->xpath('//y:condition');/* Fill in information for the client */$response .= '<temp>'.$temp[0]['text'].', '.$temp[0]['temp'].' &#176;F</temp>';$response .= '<img>'.$xml->channel->image->url.'</img>';$response .= '<link>'.$xml->channel->image->link.'</link>';$response .= '</weather>';$response .= '</response>';/* Change the header to text/xml so that the client can use the return string as XML*/header('Content-Type: text/xml');/* Give the client the XML */print($response); ?>

Page 22: Sisteme distribuite – Tehnologii 9. REST si Web 2staff.fmi.uvt.ro/~dana.petcu/distrib/TDS9-RO.pdf · Servicii Web in stil REST Anumiti vendori, precum Amazon, ofera atat interfete

22

Validarea alimentatorului

1. Serviciile de validare a alimentatorilor sunt disponibile pentru a verificavaliditatea unui alimentator pentru a fi sigur ca aplicatia va lucra cu acesta

2. Periodic verifica validitatea alimentatorului pentru a asigura ca serviciulde agregare lucreaza

3. Sau scrie o aplicatie care realizeaza validarea alimentatorului in mod automatExista un numar de validatori dintre care se poate alege:

Feed Validator (http://feedvalidator.org/) functioneaza atat pentru RSS cat siAtom W3C Validator (http://validator.w3.org/feed/) lucreaza in aceeasi maniera ca validatorii W3C HTML/XHTML si CSSRedland RSS 1.0 Validator (http://librdf.org/rss/). Valideaza si formateazarezultatul pentru afisare.Experimental Online RSS 1.0 Validator(http://www.ldodds.com/rss_validator/1.0/validator.html) utilizeaza o schema Schematron pentru validare RSS 1.0. RSS Validator (http://rss.scripting.com/) testeaza validitatea RSS feeds.

Page 23: Sisteme distribuite – Tehnologii 9. REST si Web 2staff.fmi.uvt.ro/~dana.petcu/distrib/TDS9-RO.pdf · Servicii Web in stil REST Anumiti vendori, precum Amazon, ofera atat interfete

23

Mashup-uri & WS

Un mashup este ceea se obtine prin combinaraWSurilorRezultatul este o aplicatie Web 2.0 care estemai sofisticata decat partile sale si oferafunctionalitate care nu a existat anteriorPrin combinarea WSurilor in mashupuri, se asigura un ajutor pentru aplicatiile Web pentru a oferi o aparitie dinamica

Page 24: Sisteme distribuite – Tehnologii 9. REST si Web 2staff.fmi.uvt.ro/~dana.petcu/distrib/TDS9-RO.pdf · Servicii Web in stil REST Anumiti vendori, precum Amazon, ofera atat interfete

24

Mashup= site Web sau aplicatie care combina doua sau mai multe sursede informare intr-o noua aplicatie WebEste o aplicatie Web hibrida in care parti ale aplicatiei provin din interfete publice precum alimentatori web, scraping, si serviciiWeb. Termenul a devenit prima data popular in industria muzicii, candDJ din intreaga lume au inceput sa combine parti de inregsitrariexistente de muzica (cateodata de genuri diferite) pentru a creanoi inregistrariPrima aplicatie web publica notabila care a utilizat doua APIuridiferite a fost lansata in Aprilie 2005: HousingMaps.com.

Prin utilizarea JavaScript de la Google folosit pentru harti sicombinarea acestuia cu site-ul calsic Craigslist, autorul a creat un site care permite utilizatorilor sa vizualizeze cautarea de case in majoritatea oraselor din SUANu mukt dupa aceea, Google si alte motoare da cautare au eliberat public APIurile pentru resurse lor care permitedezvoltatorilor comunitatii web sa raspunda cu sute de mashupuri.

Page 25: Sisteme distribuite – Tehnologii 9. REST si Web 2staff.fmi.uvt.ro/~dana.petcu/distrib/TDS9-RO.pdf · Servicii Web in stil REST Anumiti vendori, precum Amazon, ofera atat interfete

25

Sursa datelor – exemple pentru date publice

Inregistrari precum demografie, decese etc. Numeroase asemenea informatii sunt contrac cost, desianumite agentii guvernamentale incep sa permita accesul la anumite informatii pe gratisIdeea ca este public poate excita mai multi dezvoltatori inainteca sa realizeze cu datele sunt contra cost Exista o distinctie clara intre public si gratis—nu sunt acelasilucruExemple de date disponibile public:

Inregistrari publiceInregistrari de verificareInregistrari de afaceriCautari de persoane

Page 26: Sisteme distribuite – Tehnologii 9. REST si Web 2staff.fmi.uvt.ro/~dana.petcu/distrib/TDS9-RO.pdf · Servicii Web in stil REST Anumiti vendori, precum Amazon, ofera atat interfete

26

Inregistrari publice & Inergistrari de verificare

Date publiceExemple: inregistrari nasteri, decese, casatorii, divorturi, faliment, Aceste date pot fi accesate online, dar contra unei sumeExista siteuri care permit utilizatorului sa caute date si saplateasca o taxa pentru a ajunge la informatii. Exemple:

People Finders (http://www.peoplefinders.com/)Public Record Finder (http://www.publicrecordfinder.com/)

Date de verificareTipic persoanele care fac verificari daca de exemplu vor saafle daca o anumita persoana are dosar penalCosta mai mult accesul pentru ca este mai dificil de obtinut

Page 27: Sisteme distribuite – Tehnologii 9. REST si Web 2staff.fmi.uvt.ro/~dana.petcu/distrib/TDS9-RO.pdf · Servicii Web in stil REST Anumiti vendori, precum Amazon, ofera atat interfete

27

Inregistrari de afaceri & cautari de persoaneInregistrari de afaceri.

Date despre business (mari sau mici) sunt disponibile public. Exemple de informatii despre o afacere: nume, proprietar, adresa, stat, tip de taxe, informatie de completat, licenteprofesionale etc

Cautare de persoane.Stranse si mentinute de corporatii pentru scopuri de marketingMajoritatea cautarilor de nume sau numere de telefon suntrealizate pe baza acestor surseInformatiile care sunt oferite:

NumeVarsta/data nasteriiAdresaNumar de telefonIdentificator personal (ex. CNP, numar de asigurare sociala)

Exemplu: carti de telefon online

Page 28: Sisteme distribuite – Tehnologii 9. REST si Web 2staff.fmi.uvt.ro/~dana.petcu/distrib/TDS9-RO.pdf · Servicii Web in stil REST Anumiti vendori, precum Amazon, ofera atat interfete

28

Servicii open-source

Usual permit obtinerea de date care nu pot fi gasitein alta parte pe Web, sau date care sunt disponibilecar nu sunt accesibile printr-un API. Gasirea acestor servicii poate fi realizata pe bazasiteruilor webe care sunt dedicate pentru listareaserviciilor Web disponibileLista din 2008:

Web Service List (http://www.webservicelist.com/)WebserviceX.NET(http://www.webservicex.net/WS/default.aspx)Programmable Web (http://www.programmableweb.com/)Webmashup.com (http://www.webmashup.com/)

Page 29: Sisteme distribuite – Tehnologii 9. REST si Web 2staff.fmi.uvt.ro/~dana.petcu/distrib/TDS9-RO.pdf · Servicii Web in stil REST Anumiti vendori, precum Amazon, ofera atat interfete

29

Portlet pentru aplicatii

Portlet-urile sunt componente care sunt usor de introdus si agregat intr-o paginaO aplicatie care este compuas din trei sau maimulte servicii Web si prortleturi care nu intercationeaza intre ele trebuie considerata un mashup. Portleturile individuale includ un mashup care este un portal de informare Web

Page 30: Sisteme distribuite – Tehnologii 9. REST si Web 2staff.fmi.uvt.ro/~dana.petcu/distrib/TDS9-RO.pdf · Servicii Web in stil REST Anumiti vendori, precum Amazon, ofera atat interfete

30

Construirea unui Mashup1. Alegerea unui subiect.

precum combinarea de harti, date reale, fotografii, capabilitati de cautaredecide care tip de WS este necesar

2. Selecteaza sursa datelor.Exemplu: utilizarea datelor legate de harti care le ofera Google, siutilizarea APIului propriu al utilizatorului.

3. Decide supra mediului de lucru si limbajului.Prima decizie sete a limbajului care se doreste utilizat

No conteaza ce se utilizeaza, PHP, C# .NET, Perl, sau Java, importantaeste stapanirea limbajului. Cateodata APIul utilizat lucreaza numai pentru anumit limbaj

Un factor important este tipul de transport utilizatTrebuie asigurata crearea conexiunilor la API si tratarea datelor care sosesc ca raspuns, indiferent ce este utilizat SOAP, REST, sau XML-RPC.

4. Codare.