web - web services

84
Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/ Tehnologii Tehnologii Web Web <?xml version=“1.0” ?> <curs desc=“…” /> Tehnologii Web Dr. SabinCorneliu Buraga Facultatea de Informatica Universitatea “A.I.Cuza” – Iasi, Romania http://www.infoiasi.ro/~busaco/

Upload: sabin-buraga

Post on 29-Nov-2014

1.202 views

Category:

Technology


3 download

DESCRIPTION

 

TRANSCRIPT

Page 1: 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/

Page 2: Web - Web services

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]]

Page 3: Web - Web services

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

Page 4: Web - Web services

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

Page 5: Web - Web services

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

Page 6: Web - Web services

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

Page 7: Web - Web services

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

Page 8: Web - Web services

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

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

Nevoi ale dezvoltatorilor WebStandardizare

SecuritateDisponibilitate & reutilizareMentenanta facila

intro

Page 9: Web - Web services

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

Page 10: Web - Web services

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

Page 11: Web - Web services

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

Page 12: Web - Web services

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

Page 13: Web - Web services

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

Page 14: Web - Web services

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”

Page 15: Web - Web services

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

Page 16: Web - Web services

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

Page 17: Web - Web services

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

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

Moduri de interactiune traditionala:

functionala vs. conversationala

caracterizare

Page 18: Web - Web services

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

Page 19: Web - Web services

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

Page 20: Web - Web services

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

Page 21: Web - Web services

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

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

Serviciile Web fac explicite specificatiile implicite

caracterizare

Page 22: Web - Web services

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

Page 23: Web - Web services

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” ☺

Page 24: Web - Web services

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

Page 25: Web - Web services

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/

Page 26: Web - Web services

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)

Page 27: Web - Web services

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

Page 28: Web - Web services

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)

Page 29: Web - Web services

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)

Page 30: Web - Web services

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

Page 31: Web - Web services

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

Page 32: Web - Web services

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

Page 33: Web - Web services

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/

Page 34: Web - Web services

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

Page 35: Web - Web services

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

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

invocare: soap

Page 36: Web - Web services

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

Page 37: Web - Web services

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)

Page 38: Web - Web services

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

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

invocare: soap

Vehicularea mesajelor SOAP

Page 39: Web - Web services

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

Page 40: Web - Web services

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

Page 41: Web - Web services

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

Page 42: Web - Web services

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

Page 43: Web - Web services

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

Page 44: Web - Web services

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

Page 45: Web - Web services

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

Page 46: Web - Web services

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

Page 47: Web - Web services

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

Page 48: Web - Web services

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?

Page 49: Web - Web services

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

Page 50: Web - Web services

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

Page 51: Web - Web services

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

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

specificare: wsdl

Page 52: Web - Web services

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

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

specificare: wsdlSintactic,se utilizeaza XML

Schema WSDL

Page 53: Web - Web services

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)

Page 54: Web - Web services

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/

Page 55: Web - Web services

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

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

regasire: uddi

Page 56: Web - Web services

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

Page 57: Web - Web services

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

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

Page 58: Web - Web services

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

Page 59: Web - Web services

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

Page 60: Web - Web services

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

Page 61: Web - Web services

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

Page 62: Web - Web services

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

Page 63: Web - Web services

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

Page 64: Web - Web services

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

Page 65: Web - Web services

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

Page 66: Web - Web services

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

Page 67: Web - Web services

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

Page 68: Web - Web services

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

Page 69: Web - Web services

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

Page 70: Web - Web services

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

Page 71: Web - Web services

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

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

intrebare

Existenta serviciilor Web este suficienta?

Page 72: Web - Web services

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

Page 73: Web - Web services

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

Page 74: Web - Web services

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

Page 75: Web - Web services

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

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

Framework‐uri Web (structura conceptuala stratificata)

Page 76: Web - Web services

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

Page 77: Web - Web services

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

Page 78: Web - Web services

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

Page 79: Web - Web services

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

Page 80: Web - Web services

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

Page 81: Web - Web services

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

Page 82: Web - Web services

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

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

servicii web: demo

!!

Page 83: Web - Web services

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

Page 84: Web - Web services

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

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

??