web - web services
DESCRIPTION
TRANSCRIPT
Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/
TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />
Tehnologii Web
Dr. SabinCorneliu 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 sistemelorJustinTime 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 componentbased 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 apriori 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/wsarch/
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 (decoupling)
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
XMLRPCbazat pe XDR (External Data Representation) de la RPC (Remote Procedure Call)
simplu de utilizat, nepretentioswww.xmlrpc.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 ebusiness: 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.wsi.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 online 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 online 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 (Ntier 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=“…” />
??