Web - Web services

Post on 29-Nov-2014

1.202 views 3 download

description

 

Transcript of Web - Web services

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Tehnologii Web

Dr. Sabin­Corneliu BuragaFacultatea de Informatica

Universitatea “A.I.Cuza” – Iasi, Romania

http://www.infoiasi.ro/~busaco/

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Programare Web

ServiciiServicii WebWeb

DetaliiDetalii in in [[TX, 269TX, 269‐‐298] [SW, 61298] [SW, 61‐‐244244]]

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

“O arhitectura buna poate imbunataticalitatea vietii oamenilor.”

Alfred Hitchcock

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Servicii WebPunerea problemei

“Definitii” si caracterizareSOA (Service Oriented Architecture)

SOAP, WSDL, UDDIInitiativeleWS‐*Arhitectura RESTDezvoltare & viitor

cuprins

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Originile si scopurile Web‐ului

oferirea unui spatiu de comunicare inter‐umanaprin intermediul partajarii cunostintelor

exploatarea puterii computationale

intro

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Remarci:interactiunea om‐Web se rezolva

prin intermediul formularelor Web siexplorarea legaturilor hipertext/hipermedia

interactiunea intre aplicatii (masini) se desfasoara, uzual, foarte limitat peWeb

intro

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Nevoi ale dezvoltatorilor WebSolutii multi‐platforma, slab‐conectateIntegrare Internet/Web a aplicatiilor, serviciilor si sistemelorJust­in­Time integration

Performanta prin asigurarea scalabilitatiiServicii atasabile (pluggable) & inteligenteSoftware as a Service – SaaSApplication Service Provider

intro

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Nevoi ale dezvoltatorilor WebStandardizare

SecuritateDisponibilitate & reutilizareMentenanta facila

intro

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Necesitatea existentei unei/unor arhitecturipentru dezvoltarea de aplicatii distribuite

orientate spre Web

intro

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Software‐ul trebuie divizat in servicii(independente) care se pot compune,

menite a se conecta si orchestra in mod spontanin cadrul proceselor de afaceri/tehnice

Web component­based software

intro

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Aplicatiile standard (“vechi”) sa poata fi integrate in noua arhitectura protectia investitiilor

intro

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Solutia: “The Web is the computer”

Crearea/utilizarea unei arhitecturi care…sa ofere suport pentru paradigme de comunicare

bazata pe Web intre aplicatiisa ofere localizarea transparenta a serviciilor

sa permita adaugarea, inlocuirea, eliminarea serviciilorin mod dinamic

sa ascunda dezvoltatorului detaliile de sistem

intro

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

intro

Arhitectura – Web‐ul ca tehnologiemiddleware

Web‐ulca broker

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Ce sunt serviciile Web?

Aplicatii oferind o functionalitate anume

Utilizate de alte aplicatii (la distanta)

Accesate standardizat via WebURI, HTTP, XML

“definitii”

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

“definitii”

Exemplu: serviciul unei agentii de voiajOferirea (si vinzarea) unor formulede petrecere a vacantei

Utilizeaza alte servicii (software) disponibilela nivel de Web: tranzactii financiareservicii hoteliereservicii de transport

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Implementari standard:

script‐uri CGI sau utilizarea serverelor de aplicatii

caracterizare

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Moduri de interactiune traditionala:

functionala vs. conversationala

caracterizare

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Moduri de interactiune traditionala:functionala – cerere/raspuns

utilizatorul (nu neaparat uman☺) viziteazao pagina si formuleaza o cerere

serviciul Web returneaza un raspuns(uzual, un document Web)

caracterizare

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Moduri de interactiune traditionala:conversationala – solicitare/raspuns

punerea de intrebari suplimentare pentru a rafina cererea

serviciul Web solicita date de la utilizatorin vederea returnarii unui raspuns mai bun

caracterizare

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Traditional, serviciul Web expuneo interfata‐utilizator disponibila pe Web

Cererile erau capt(ur)ate via formulareUtilizatorii umani trebuie sa interpreteze etichetelesi cimpurile de dialog

Utilizatorii umani trebuie sa interpreteze raspunsuloferit de serviciu

Orice modificare in marcaje rescrierea programuluide preluare a datelor din HTML‐ul rezultat

caracterizare

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Serviciile Web fac explicite specificatiile implicite

caracterizare

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

caracterizare

Utilizate la interactiunea intre masini

Dinamice

Lipsa unei cunoasteri a­priori a interactiuniicu alte aplicatii/servicii Web

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

caracterizare

Apare necesitatea de a intelege vocabulare XMLdezvoltate in maniera independenta

nevoia de semantica

La Master, pentru “curiosi” ☺

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

caracterizare

Puncte finale utilizate pentru procesarea datelor, in maniera publica – eventual, via API‐uri deschise

Abilitatea de a prelucra orice tip de date

Dezvoltate pe baza platformelor, arhitecturilorsi limbajelor curente

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

soa

Arhitectura orientata spre serviciiSOA – Service Oriented Architecture

stil arhitectural de dezvoltare de aplicatiiconsiderate drept servicii ce vor fi invocate de alte aplicatii

vezi si http://www.w3.org/TR/ws­arch/

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

soa

Paradigma de dezvoltare a software‐uluicare adopta utilizarea de servicii,

oferind functionalitati solicitate de utilizatori

Resursele sunt disponibile via o suita de serviciiindependente ale caror implementarinu trebuie sa fie cunoscute (black box)

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

soa

Componentele sistemului in ansamblu au un grad mare de independenta (de­coupling)

Serviciile pot fi recompuse/orchestrateconform cerintelor

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

soa

Principii de baza:serviciile sa partajeze un contract specificat rigurosserviciile sa fie slab conectate (loosely coupled)serviciile sa ascunda detaliile de implementareserviciile sa ofere suport pentru compunerea cu alte servicii (composability)

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

soa

Principii de baza:serviciile sa poata fi reutilizateserviciile sa se execute in mod autonomserviciile sa nu depinda de starea comunicarii(statelessness), cantitatea de informație specificaunei activitati ce trebuie retinuta fiind minimala

serviciile sa poata fi facil descoperite (discoverability)

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

invocare

Necesitatea unui protocol de comunicare(transport) intre masini (aplicatii) eterogenemesaje care sa permita o interactiune complexa

intre aplicatii

informatiile vehiculate pot fi oricit de complexe

asigurarea extensibilitatii + securitate, fiabilitate, caching

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

invocare

Scenariu:eu spun <telefon>0232-201090</telefon>

tu astepti <tel prefix="0232" numar="201090" />

XML nu este suficient!

protocolul va trebui sa ofere un mecanism de invocaresi de transmitere structurata a datelor

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

invocare: solutii

XML­RPCbazat pe XDR (External Data Representation) de la RPC (Remote Procedure Call)

simplu de utilizat, nepretentioswww.xml­rpc.com

SOAPsofisticat, ofera suport pentru serializaremult mai flexibil si raspinditwww.w3.org/TR/SOAP

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

invocare: soap

Scop: protocol de comunicatie intre doua masini

(client si server) pentru interschimbul de datemarcate in XML, indiferent de platforma

standard al Consortiului Web (2003, 2007)

vezi si www.w3.org/TR/soap12-part0/

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

invocare: soap

“Dialogul” dintre aplicatii are loc via mesaje SOAP ≡ documente XML (plic + antet si corp) 

XML messaging

Se descrie un model de procesare a continutuluiSOAP encoding rules

Poate specifica o cale de la expeditor la destinatar,via un intermediar (proxy) optional – rutare SOAP

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

invocare: soap

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

invocare: soap

Anteturile pot fi procesate de intermediari diferiti

Procesarea antetelor poate fi specificatasa se efectueze obligatoriu

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

invocare: soap

Datele XML din corp pot fi transportate indiferent de protocolul folosit – HTTP uzual, dar pot fi adoptate

si alte protocoale (e.g., SMTP, XMPP)

Poate fi specificat un apel la distanta(SOAP RPC representation)

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

invocare: soap

Vehicularea mesajelor SOAP

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

invocare: soap – exemplu

Scenariu:Un client trimite un nume de document XML

pentru a afla daca acesta este valid

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

invocare: soap – exemplu

Abordare clasica TCP/IP: socket‐uri se utilizeaza un port stabilit de utilizator(e.g., 3374) + o conventie de transmitere a datelor

Abordare RPC:apel la o procedura la distanta, executata de server(port al dispecerului RPC), folosind XDR

Abordare SOAP (XML messaging):independenta de platforma si de limbajdatele vehiculate vor fi impachetate de mesaje SOAP,transportate via HTTP – port standard: 80

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

invocare: soap

Invocarea unui serviciu Web – in stilul RPC

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

POST http://127.0.0.1:8080/xml-validator2.asmxAccept: text/xmlContent-Type: text/xmlSOAPAction: http://127.0.0.1/XMLValidator/Validate

<S-ENV:Envelope xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance" xmlns:S-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:S-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/1999/XMLSchema" S-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><S-ENV:Body>

<!-- se apeleaza metoda de validare --><v:Validate xmlns:v="http://127.0.0.1/XMLValidator/">

<!-- datele de intrare: numele documentului XML --><filename xsi:type="xsd:string">projects-xsd.xml</filename>

</v:Validate></S-ENV:Body>

</S-ENV:Envelope>

invocare: soap – cerere

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Server: ASP.NET Development Server/8.0.0.0Content-Type: text/xml

<soap:Envelopexmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns="http://127.0.0.1/XMLValidator/" xmlns:types="http://127.0.0.1/XMLValidator/encodedTypes" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">

<soap:Bodysoap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">

<tns:ValidateResponse><!-- raspunsul propriu-zis receptionat --><ValidateResult xsi:type="xsd:string">Valid</ValidateResult>

</tns:ValidateResponse></soap:Body></soap:Envelope>

invocare: soap – raspuns

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

SOAP ≡ RPC orientat‐obiect

cerere/raspuns incluzind parametri deintrare/iesire (+tipurile lor specificate in XML)

invocare: soap

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

SOAP ≡ protocol de mesagerie (serializare)

cererea contine un obiect‐cerere serializatraspunsul contine un obiect‐raspuns serializat

invocare: soap

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

SOAP ≡ “XSLT with a long wire”

cererea este un document XMLserverul returneaza o varianta

transformata a cererii

invocare: soap

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Nici una dintre abordari nu este impusa de protocol

invocare: soap

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

specificare

Necesitatea unui limbaj de descrierea serviciilor Web

Cum gasim un serviciu Web?Care este sintaxa mesajelor vehiculate?Cum se desfasoara transferul de date?

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

specificare: solutie

WSDL (Web Services Description Language)

WSDL 1.1 / WSDL 2.0http://www.w3.org/TR/wsdl

descriere bazata pe XML a serviciilor Webtipurile de date se definesc via scheme XMLspecifica sintaxa, nu semantica unui serviciu

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

specificare: wsdl

Conceptual, se foloseste un model de date reprezentatprintr‐un set de componente avind atasate proprietati

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

specificare: wsdl

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

specificare: wsdlSintactic,se utilizeaza XML

Schema WSDL

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

specificare: wsdl

Intr‐un document WSDL se declara:Tipurile (abstracte) de date pentru parametrii de intrare si rezultatul returnat de serviciul Web: constructii XML Schema

Mesajele vehiculate intre server (serviciu) si client (aplicatie)

Operatiile (metodele) oferite de serviciul WebAtasarea (binding) operatiilor la un protocol de transport (e.g., HTTP, SMTP) – similar porturilor

Colectia de porturi folosite (i.e., adrese de acces)

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

regasire: uddi

Universal Description, Discovery, and IntegrationCatalog distribuit, universal, al listei de servicii Web disponibile (inregistrate)

Inregistrarea este posibila in fiecare nodInregistrarile sint replicateUDDI este un serviciu Web: se utilizeaza SOAPCataloagele UDDI pot fi publice sau privateIn continua dezvoltare (versiunea 3, in prezent)Vezi si http://www.uddi.org/

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

regasire: uddi

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

White pages – catalog de nume, informatii despreofertant si mod de contactare

Yellow pages – catalog de domenii, cautari specificedupa context (localizare, tip de serviciu,…), pointeaza la White pages

Green pages – catalog de informatii e­business: informatii despre modelele de afaceri, detalii tehnice, informatii despre procesele de afaceri,…

Cataloage publice: uddi.ibm.com, uddi.microsoft.com

regasire: uddi – arhitectura

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Instrumente software (exemple):

jUDDI (Apache): http://ws.apache.org/juddi/managementul unui catalog UDDI privat

Registry Browserdin Java WSDP (Web Services Developer Pack)

interogari asupra unui catalog UDDI 

regasire: uddi – implementare

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Specificatii & initiative aditionale (WS‐*)Adresare: WS‐AddressingDescoperire: WS‐Inspection, WS‐DiscoveryMesagerie: Reliable HTTP (HTTPR), WS Attachments, WS‐Routing,...

Securitate & autorizare: WS‐Security, WS‐Trust, WS‐Policy,...

Procesarea tranzactiilor: WS‐Coordination,WS‐Transaction

Interfata‐utilizator: WS for Remote Portlets (WSRP), WS for Interactive Applications (WSIA)

initiative

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Specificatii & initiative aditionale (WS‐*)Interoperabilitate – initiativaWS‐I: www.ws­i.org

Workflow: Business Process Execution Language (BPEL), WS‐Choreography, WS Flow Language (WSFL) etc.

…si altele

initiative

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

REpresentational State Transfer (REST)Arhitectura de dezvoltare a aplicatiilor WebRezultatul unei procesari conduce la returnareaunei reprezentari de resursa

Orice accesare a unei reprezentari plaseaza aplicatiaintr‐o stare care va fi schimbata in urma unuitransfer de date (accesarea altei reprezentari)

Transferul se realizeaza prin HTTP, reprezentareaeste marcata in XML si indicata via tipuri MIME, iar adresabilitatea se rezolva via URI

rest

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Viziune complementara de implementare siutilizare a serviciilor Web (fara SOAP) 

rest

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Componentele care invoca functionalitativor consuma reprezentari de resurse (in stilul pull)

Fiecare cerere este considerata independenta,fara a se lua in consideratie contextul – stateless

Resursele sunt accesate printr‐o interfata generica(via HTTP: GET, POST, PUT, DELETE)

rest

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Resursele sunt numite folosind URI‐uri (URL‐uri)

Reprezentarile sunt interconectate prin URL‐uri

Pot exista intermediari (proxy, cache, porti)intre clienti si resurse performanta, securitate,...

Cererile pot fi si asincrone – in stilul AJAX

rest

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Punctul central e dat de conceptul de resursasi nu de operatiile asupra resurselor

ROC (Resource Oriented Computing)

rest

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Scenariu:implementarea unui magazin on­line oferind portocale

Stilul “clasic” SOAP (conform RPC)operatii privind produsele:

furnizeazaSortim (), adaugaSortim (), listeazaSortim (), cautaSortim ()

operatii vizind utilizatorii:furnizeazaUtiliz (), adaugaUtiliz (), eliminaUtiliz (), cautaUtiliz (),…

rest: exemplu

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Scenariu:implementarea unui magazin on­line oferind portocale

Stilul “nou” RESTtipuri de resurse (Sortim & Utiliz), identificate unic de URI

http://www.portocale.info/sortim/japoneze

o resursa poate avea asociate reprezentari XMLce pot fi accesate/alterate via operatii HTTP(CRUD – Create, Retrieve, Update, Delete)

rest: exemplu

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Serviciile oferite de Flickr

acces – folosind HTTP (e.g., GET, POST) – via URI‐ulhttp://api.flickr.com/services/rest/

pentru a invoca un serviciu Flickr, se vor preciza metoda + parametrii (daca exista)

http://api.flickr.com/services/rest/?method=flickr.photos.getInfo&...

rest: exemplu

Se inlocuieste cu serviciul dorit

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Divizarea setului de date al problemei in resurseNumirea prin URI a fiecarei resurseProiectarea reprezentarii(lor) acceptate de la client sireprezentarii(lor) intoarse spre client

Integrarea resurselor via legaturi hipertext+formulareCrearea de studii de caz, cu (re)considerarea tipurilorstandard – e.g., HTML, Atom

Considerarea conditiilor de eroare/exceptie

rest: metodologie

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

SOAP:Actiuni arbitrare(verbe)

Structuri de date arbitrare(oricit de complexe)Specificatevia XML Schema

Descriere complexa a serviciului (WSDL)

REST:Actiuni fixe HTTP: GET, POST,…

Opereaza asuprareprezentarilor de resurse (i.e., XML)

Bazat pe URIScalabilUzual, mai usor de programat

rest vs. soap

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

intrebare

Existenta serviciilor Web este suficienta?

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Informatiile & serviciile sa fie accesibile de lafiecare dispozitiv si de oriunde – ubiquitous Web

necesitatea unei platforme independente de dispozitiv(masina virtuala)

dezvoltare

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Noile servicii pot fi compuse din serviciile Web deja existente si accesate in mod transparent

middleware oferind cod + interoperabilitate(SOAP, WSDL, UDDI, XML)

dezvoltare

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Suport pentru continut Web in “stil vechi” (e.g., CGI) + servicii Web

servere Web ≡ porti spre pagini/servicii Web

dezvoltare

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Framework‐uri Web (structura conceptuala stratificata)

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Tehnologii, produse, aplicatiiAxis 2 (Java), Synapse, Tuscany (C++, Java)Eclipse SOA ToolsgSOAP (C)JAX‐WS (Java Arch. for XML: Web Services).NET Framework + WSE (Web Services Enhancements)NuSOAP, PEAR::SOAP (PHP)Ruby on Rails (Ruby) – incurajeaza RESTSOAP::Lite (modul Perl)Tonic (framework PHP, incurajeaza REST)WSDP (Web Services Developer Pack) – Java 1.5+

dezvoltare

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Servicii publice prin SOAP: Amazon, eBay, European Bioinformatics Institute, Google, Interfax, LiveJournal, PayPal, RedHat, Shopsync, Virtual Earth (Windows Live), Xignite, XMethods,…

Servicii publice via REST: Amazon, Bloglines, del.icio.us, eBay, Flickr, Google, Technorati, Yahoo! etc.

API‐urispecifice

dezvoltare

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Servicii Web bazate pe Java ESB (Enterprise Service Bus)vezi si proiectul GlassFish

Servicii Web bazate pe .NETWCF (Windows Communication Foundation) 

pe baza .NET 3.0+

dezvoltare: directii

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Diverse API‐uri disponibile libersi pentru PHP, Python, Objective C, Ruby etc.

dezvoltare: directii

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

SCA (Service Component Architecture)asigura reutilizarea componentelor software,

oferind facilitati pentru definirea, asamblarea, invocarea& medierea serviciilor – punct de vedere orientat‐obiect

Transferul datelor (d)inspre sistemele de stocareeste facilitat de SDO (Service Data Objects)

Implementari disponibile in C++, Java, PHP5 etc.

Vezi siwww.osoa.org

dezvoltare: directii

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

stratificarea aplicatiilor Web (N­tier Web applications)

dezvoltare: privire de ansamblu

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

servicii web: demo

!!

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

rezumat

Servicii WebPunerea problemei

“Definitii” si caracterizareSOA (Service Oriented Architecture)

SOAP, WSDL, UDDIInitiativeleWS‐*Arhitectura RESTDezvoltare & viitor

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

??