service oriented architecturesbusaco/teach/courses/soa/presentations/web... · ga /~ co / servicii...

126
Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ Service Oriented Architectures servicii Web (I) de la SOA la SOAP, WSDL și UDDI

Upload: others

Post on 27-Oct-2019

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Service Oriented Architecturesbusaco/teach/courses/soa/presentations/web... · ga /~ co / servicii web Software oferind o funcționalitate specifică acces la resurse –Delicious,

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/Service Oriented Architectures

servicii Web (I)

⫘de la SOA la SOAP, WSDL și UDDI

Page 2: Service Oriented Architecturesbusaco/teach/courses/soa/presentations/web... · ga /~ co / servicii web Software oferind o funcționalitate specifică acces la resurse –Delicious,

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

„Prețuim ceea ce înțelegem.”

Kevin Budelmann

Page 3: Service Oriented Architecturesbusaco/teach/courses/soa/presentations/web... · ga /~ co / servicii web Software oferind o funcționalitate specifică acces la resurse –Delicious,

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

Care sunt scopurile Web-ului?

Page 4: Service Oriented Architecturesbusaco/teach/courses/soa/presentations/web... · ga /~ co / servicii web Software oferind o funcționalitate specifică acces la resurse –Delicious,

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

Constituirea și interacțiuneacu un spațiu de comunicare inter-umană

partajarea cunoștințelor

Page 5: Service Oriented Architecturesbusaco/teach/courses/soa/presentations/web... · ga /~ co / servicii web Software oferind o funcționalitate specifică acces la resurse –Delicious,

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

Constituirea și interacțiuneacu un spațiu de comunicare inter-umană

partajarea cunoștințelor

Web social (“Web 2.0”), Web al datelor (semantic),…

Page 6: Service Oriented Architecturesbusaco/teach/courses/soa/presentations/web... · ga /~ co / servicii web Software oferind o funcționalitate specifică acces la resurse –Delicious,

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

Exploatarea puterii computaționale

accesul la Web se poate realizavia dispozitive având resurse reduse

Page 7: Service Oriented Architecturesbusaco/teach/courses/soa/presentations/web... · ga /~ co / servicii web Software oferind o funcționalitate specifică acces la resurse –Delicious,

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

Exploatarea puterii computaționale

accesul la Web se poate realizavia dispozitive având resurse reduse

Web ubicuu (omniprezent): Web mobil, Web 3D,…performanțăasigurarea scalabilității

Page 8: Service Oriented Architecturesbusaco/teach/courses/soa/presentations/web... · ga /~ co / servicii web Software oferind o funcționalitate specifică acces la resurse –Delicious,

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

remarcă

Interacțiunea dintre om și Web se rezolvăprin intermediul formularelor Web și

explorarea legăturilor via adrese Web – URI-uri

Page 9: Service Oriented Architecturesbusaco/teach/courses/soa/presentations/web... · ga /~ co / servicii web Software oferind o funcționalitate specifică acces la resurse –Delicious,

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

Cum pot fi accesate și procesate resursele– date, informații, cunoștințe –

disponibile pe Web?

Page 10: Service Oriented Architecturesbusaco/teach/courses/soa/presentations/web... · ga /~ co / servicii web Software oferind o funcționalitate specifică acces la resurse –Delicious,

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

nevoi ale dezvoltatorilor Web

Soluții multi-platformă, slab-conectate

integrare (în timp-real) la nivel de Internet/Weba aplicațiilor, serviciilor și sistemelor

Page 11: Service Oriented Architecturesbusaco/teach/courses/soa/presentations/web... · ga /~ co / servicii web Software oferind o funcționalitate specifică acces la resurse –Delicious,

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

nevoi ale dezvoltatorilor Web

Soluții multi-platformă, slab-conectate

integrare (în timp-real) la nivel de Internet/Weba aplicațiilor, serviciilor și sistemelor

exemplificare: găsirea de resurse Web, pe baza localizăriigeografice a utilizatorului, privind ofertele de servicii

multiple disponibile în contextul dispozitivelor mobile

Page 12: Service Oriented Architecturesbusaco/teach/courses/soa/presentations/web... · ga /~ co / servicii web Software oferind o funcționalitate specifică acces la resurse –Delicious,

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

nevoi ale dezvoltatorilor Web

Soluții multi-platformă, slab-conectate

datele să poată fi descrise pentru a fi „înțelese”de calculatoare și pentru a fi interconectate facil

Page 13: Service Oriented Architecturesbusaco/teach/courses/soa/presentations/web... · ga /~ co / servicii web Software oferind o funcționalitate specifică acces la resurse –Delicious,

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

nevoi ale dezvoltatorilor Web

Soluții multi-platformă, slab-conectate

datele să poată fi descrise pentru a fi „înțelese”de calculatoare și pentru a fi interconectate facil

Web “puzzles”inter-conectarea mai multor servicii informative (e.g., situri de știri, blog-uri) conform

preferințelor utilizatorului, pe baza intereselor sale

Page 14: Service Oriented Architecturesbusaco/teach/courses/soa/presentations/web... · ga /~ co / servicii web Software oferind o funcționalitate specifică acces la resurse –Delicious,

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

nevoi ale dezvoltatorilor Web

Servicii atașabile (pluggable) & versatile

Software as a Service – SaaS

Application Service Provider – ASP

Page 15: Service Oriented Architecturesbusaco/teach/courses/soa/presentations/web... · ga /~ co / servicii web Software oferind o funcționalitate specifică acces la resurse –Delicious,

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

soluție

Divizarea aplicațiilor în servicii – independente –care se pot compune,

menite a se conecta și orchestra în mod spontanîn cadrul proceselor de afaceri/tehnice

Page 16: Service Oriented Architecturesbusaco/teach/courses/soa/presentations/web... · ga /~ co / servicii web Software oferind o funcționalitate specifică acces la resurse –Delicious,

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

soluție

Divizarea aplicațiilor în servicii – independente –care se pot compune,

menite a se conecta și orchestra în mod spontanîn cadrul proceselor de afaceri/tehnice

Web component-based software

Page 17: Service Oriented Architecturesbusaco/teach/courses/soa/presentations/web... · ga /~ co / servicii web Software oferind o funcționalitate specifică acces la resurse –Delicious,

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

soluție

“The Web is the computer”

Page 18: Service Oriented Architecturesbusaco/teach/courses/soa/presentations/web... · ga /~ co / servicii web Software oferind o funcționalitate specifică acces la resurse –Delicious,

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

soluție

“The Web is the computer”

disponibilitatea unei/unor arhitecturi care…

oferă suport pentru paradigme de comunicare– bazată pe actualele tehnologii Web –

între aplicații eterogene

Page 19: Service Oriented Architecturesbusaco/teach/courses/soa/presentations/web... · ga /~ co / servicii web Software oferind o funcționalitate specifică acces la resurse –Delicious,

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

soluție

“The Web is the computer”

disponibilitatea unei/unor arhitecturi care…

permit(e) localizarea transparentă a serviciilor

Page 20: Service Oriented Architecturesbusaco/teach/courses/soa/presentations/web... · ga /~ co / servicii web Software oferind o funcționalitate specifică acces la resurse –Delicious,

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

soluție

“The Web is the computer”

disponibilitatea unei/unor arhitecturi care…

facilitează adăugarea, înlocuirea, eliminareaserviciilor în mod dinamic

Page 21: Service Oriented Architecturesbusaco/teach/courses/soa/presentations/web... · ga /~ co / servicii web Software oferind o funcționalitate specifică acces la resurse –Delicious,

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

soluție

“The Web is the computer”

disponibilitatea unei/unor arhitecturi care…

ascund(e) dezvoltatorului detaliile de sistem

Page 22: Service Oriented Architecturesbusaco/teach/courses/soa/presentations/web... · ga /~ co / servicii web Software oferind o funcționalitate specifică acces la resurse –Delicious,

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

soluție

“The Web is the computer”

disponibilitatea unei/unor arhitecturi care…

asigură calitatea dezvoltării și exploatăriiaplicațiilor distribuite și/sau paralele:

standardizare, securitate, disponibilitate, reutilizare, mentenanță facilă etc.

Page 23: Service Oriented Architecturesbusaco/teach/courses/soa/presentations/web... · ga /~ co / servicii web Software oferind o funcționalitate specifică acces la resurse –Delicious,

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

soluție

Arhitectura – Web-ul ca tehnologie middleware

Web-ulca broker

Page 24: Service Oriented Architecturesbusaco/teach/courses/soa/presentations/web... · ga /~ co / servicii web Software oferind o funcționalitate specifică acces la resurse –Delicious,

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

Ce sunt serviciile Web?

Page 25: Service Oriented Architecturesbusaco/teach/courses/soa/presentations/web... · ga /~ co / servicii web Software oferind o funcționalitate specifică acces la resurse –Delicious,

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

servicii web

“A service is an abstract resource that represents a capability of performing tasks that form

a coherent functionality from the point of view of providers entities and requesters entities.”

http://www.w3.org/TR/ws-gloss/

Page 26: Service Oriented Architecturesbusaco/teach/courses/soa/presentations/web... · ga /~ co / servicii web Software oferind o funcționalitate specifică acces la resurse –Delicious,

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

servicii web

“A Web service is a software system designed to support interoperable machine-to-machine

interaction over a network.”

http://www.w3.org/TR/ws-gloss/

Page 27: Service Oriented Architecturesbusaco/teach/courses/soa/presentations/web... · ga /~ co / servicii web Software oferind o funcționalitate specifică acces la resurse –Delicious,

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

servicii web

Software oferind o funcționalitate specifică

acces la resurse – Delicious, Pinterest, Slideshare, Vimeoagregare de știri – Digg, Reddit

cartografiere – Bing Maps, Google Maps, Nokia HEREmesagerie instantanee – Jabber, Twitter, Twilio

procesări – Anger Detection, Ping.it, Skyttle, Truthy,…realizare de statistici Web – Google Analytics

rețele sociale – e.g., Facebook Open Graph Protocolspelling checking – Spellr.us

stocare de date – Amazon S3, Dropbox, OneDrive etc.…

Page 28: Service Oriented Architecturesbusaco/teach/courses/soa/presentations/web... · ga /~ co / servicii web Software oferind o funcționalitate specifică acces la resurse –Delicious,

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

servicii web

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

Page 29: Service Oriented Architecturesbusaco/teach/courses/soa/presentations/web... · ga /~ co / servicii web Software oferind o funcționalitate specifică acces la resurse –Delicious,

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

servicii web

Accesate standardizat via Web

adresare de resurse cu URItransfer de date via HTTP

mesaje adoptând formate de date: CSV, JSON, XML,…

Page 30: Service Oriented Architecturesbusaco/teach/courses/soa/presentations/web... · ga /~ co / servicii web Software oferind o funcționalitate specifică acces la resurse –Delicious,

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

servicii web: exemplu

Serviciul unei agenții de turism

oferirea – și vânzarea, eventual –a unor formule de petrecere a vacanței

Page 31: Service Oriented Architecturesbusaco/teach/courses/soa/presentations/web... · ga /~ co / servicii web Software oferind o funcționalitate specifică acces la resurse –Delicious,

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

servicii web: exemplu

Serviciul unei agenții de turism

utilizează alte servicii (software) disponibile la nivel de Web

servicii cartografice + meteoservicii hoteliere

tranzacții financiare – e.g., e-bankingservicii de transport

servicii de recomandare socială

Page 32: Service Oriented Architecturesbusaco/teach/courses/soa/presentations/web... · ga /~ co / servicii web Software oferind o funcționalitate specifică acces la resurse –Delicious,

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

Cum am putea implementa un serviciu?

Page 33: Service Oriented Architecturesbusaco/teach/courses/soa/presentations/web... · ga /~ co / servicii web Software oferind o funcționalitate specifică acces la resurse –Delicious,

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

servicii web

Implementare standard

recurgerea la servere/framework-uri de aplicații Web

ASP.NET, Django, JSP, Node.js, PHP (CodeIgnater, Symfony,…),

Ruby on Rails,…

Page 34: Service Oriented Architecturesbusaco/teach/courses/soa/presentations/web... · ga /~ co / servicii web Software oferind o funcționalitate specifică acces la resurse –Delicious,

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

servicii web

Tradițional, aplicația oferă o interfață-utilizator disponibilă pe Web

limbaj de marcare – e.g., HTMLstiluri de prezentare a conținutului – CSS

interactivitate via JavaScript (+biblioteci/framework-uri)

Page 35: Service Oriented Architecturesbusaco/teach/courses/soa/presentations/web... · ga /~ co / servicii web Software oferind o funcționalitate specifică acces la resurse –Delicious,

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

servicii web

Tradițional, aplicația oferă o interfață-utilizator disponibilă pe Web

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

Page 36: Service Oriented Architecturesbusaco/teach/courses/soa/presentations/web... · ga /~ co / servicii web Software oferind o funcționalitate specifică acces la resurse –Delicious,

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

servicii web

Tradițional, aplicația oferă o interfață-utilizator disponibilă pe Web

utilizatorii umani trebuie să interpreteze etichetele și câmpurile de dialog

Page 37: Service Oriented Architecturesbusaco/teach/courses/soa/presentations/web... · ga /~ co / servicii web Software oferind o funcționalitate specifică acces la resurse –Delicious,

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

servicii web

Tradițional, aplicația oferă o interfață-utilizator disponibilă pe Web

serviciul implementat oferă un răspuns(o reprezentare a unei resurse Web)

uzual, un document HTML al cărui conținute transferat la client via un protocol: HTTP(S)

Page 38: Service Oriented Architecturesbusaco/teach/courses/soa/presentations/web... · ga /~ co / servicii web Software oferind o funcționalitate specifică acces la resurse –Delicious,

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

servicii web

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

procesarea datelor din codul HTMLWeb scrapping

<div class="ct-cs"><input id="exchange_rate" value="4.4155770975" type="hidden">

<input id="fob.log_input_ct" value="" type="hidden">…<table>…</table></div>

Page 39: Service Oriented Architecturesbusaco/teach/courses/soa/presentations/web... · ga /~ co / servicii web Software oferind o funcționalitate specifică acces la resurse –Delicious,

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

servicii web

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

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

???!

Page 40: Service Oriented Architecturesbusaco/teach/courses/soa/presentations/web... · ga /~ co / servicii web Software oferind o funcționalitate specifică acces la resurse –Delicious,

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

servicii web: caracterizare

Serviciile Web fac explicite specificațiile implicite

datele de intrare și răspunsul pot fi specificate (riguros)via diverse maniere de validare

Page 41: Service Oriented Architecturesbusaco/teach/courses/soa/presentations/web... · ga /~ co / servicii web Software oferind o funcționalitate specifică acces la resurse –Delicious,

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

servicii web: caracterizare

Utilizate la interacțiunea dintre aplicații

dinamice

lipsa unei cunoașteri a-priori a interacțiuniicu alte aplicații/servicii Web

Page 42: Service Oriented Architecturesbusaco/teach/courses/soa/presentations/web... · ga /~ co / servicii web Software oferind o funcționalitate specifică acces la resurse –Delicious,

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

servicii web: caracterizare

Puncte finale utilizate pentru procesarea datelor, în manieră publică – eventual, via API-uri deschise

Page 43: Service Oriented Architecturesbusaco/teach/courses/soa/presentations/web... · ga /~ co / servicii web Software oferind o funcționalitate specifică acces la resurse –Delicious,

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

servicii web: caracterizare

Dezvoltate pe baza platformelor, arhitecturilor, tehnologiilor și limbajelor curente

Page 44: Service Oriented Architecturesbusaco/teach/courses/soa/presentations/web... · ga /~ co / servicii web Software oferind o funcționalitate specifică acces la resurse –Delicious,

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

Există un model arhitectural de dezvoltarea serviciilor la nivel de Web?

Page 45: Service Oriented Architecturesbusaco/teach/courses/soa/presentations/web... · ga /~ co / servicii web Software oferind o funcționalitate specifică acces la resurse –Delicious,

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

soa

Arhitectura orientată spre servicii

SOA – Service Oriented Architecture

Page 46: Service Oriented Architecturesbusaco/teach/courses/soa/presentations/web... · ga /~ co / servicii web Software oferind o funcționalitate specifică acces la resurse –Delicious,

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

soa

Arhitectura orientată spre servicii

SOA – Service Oriented Architecture

stil arhitectural de proiectare și dezvoltare de aplicații

considerate drept servicii

care pot fi invocate de alte aplicații

Page 47: Service Oriented Architecturesbusaco/teach/courses/soa/presentations/web... · ga /~ co / servicii web Software oferind o funcționalitate specifică acces la resurse –Delicious,

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

soa

Paradigmă de dezvoltare a software-uluicare adoptă folosirea de servicii,

oferind funcționalități solicitate de utilizatori

Page 48: Service Oriented Architecturesbusaco/teach/courses/soa/presentations/web... · ga /~ co / servicii web Software oferind o funcționalitate specifică acces la resurse –Delicious,

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

soa

Paradigmă de dezvoltare a software-uluicare adoptă folosirea de servicii,

oferind funcționalități solicitate de utilizatori

resursele sunt disponibile via o suită de serviciiindependente ale căror implementărinu trebuie să fie cunoscute (black box)

Page 49: Service Oriented Architecturesbusaco/teach/courses/soa/presentations/web... · ga /~ co / servicii web Software oferind o funcționalitate specifică acces la resurse –Delicious,

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

soa

Componentele sistemului în ansambluau un grad mare de independență (de-coupling)

Page 50: Service Oriented Architecturesbusaco/teach/courses/soa/presentations/web... · ga /~ co / servicii web Software oferind o funcționalitate specifică acces la resurse –Delicious,

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

soa

Componentele sistemului în ansambluau un grad mare de independență (de-coupling)

serviciile trebuie proiectate să interacționeze fără a exista dependențe între acestea

Page 51: Service Oriented Architecturesbusaco/teach/courses/soa/presentations/web... · ga /~ co / servicii web Software oferind o funcționalitate specifică acces la resurse –Delicious,

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

soa

Serviciile partajează un contract formal

necesitatea unei descrieri formale a serviciului:operații oferite (interfața serviciului)

maniera de interschimb a datelor (cerere + răspuns)maniera de descoperire (service discoverability)

calitatea unui serviciu (SLA – service-level agreement)

Page 52: Service Oriented Architecturesbusaco/teach/courses/soa/presentations/web... · ga /~ co / servicii web Software oferind o funcționalitate specifică acces la resurse –Delicious,

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

soa

Serviciile pot fi recompuse/orchestrateconform cerințelor sau contextului de exploatare

composable servicesreusable services

Page 53: Service Oriented Architecturesbusaco/teach/courses/soa/presentations/web... · ga /~ co / servicii web Software oferind o funcționalitate specifică acces la resurse –Delicious,

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

soa

Serviciile nu vor depinde de starea comunicării(statelessness)

Page 54: Service Oriented Architecturesbusaco/teach/courses/soa/presentations/web... · ga /~ co / servicii web Software oferind o funcționalitate specifică acces la resurse –Delicious,

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

soa

Serviciile nu vor depinde de starea comunicării(statelessness)

pentru a efectua o procesare, cantitatea de informațiece trebuie reținută trebuie să fie minimală

Page 55: Service Oriented Architecturesbusaco/teach/courses/soa/presentations/web... · ga /~ co / servicii web Software oferind o funcționalitate specifică acces la resurse –Delicious,

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

soade la aplicații Web dezvoltate tradițional

la arhitecturi bazate pe servicii

Jay O’Connor (2014)http://tinyurl.com/l62tjab

Page 56: Service Oriented Architecturesbusaco/teach/courses/soa/presentations/web... · ga /~ co / servicii web Software oferind o funcționalitate specifică acces la resurse –Delicious,

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

proiectul ubiGuide(Ionuț Dănilă & Mihaela Ghimiciu, 2013—2014)

servicii publice folosite: ABBYY Cloud OCR, AlchemyAPI, Google Places API, YouTube API,…

biblioteci: Flickr.NET, GART (Geo Augmented Reality Toolkit), Hammock, TweetSharp etc.

https://www.youtube.com/watch?v=wygXE6hQ07c

http://www.slideshare.net/ionutdanila/ubi-guide

Page 57: Service Oriented Architecturesbusaco/teach/courses/soa/presentations/web... · ga /~ co / servicii web Software oferind o funcționalitate specifică acces la resurse –Delicious,

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

soa

Douwe Osinga & Jon Tirsen, “Architecture of the Triposo travel guide”, QCon London, 2013 – www.infoq.com/presentations/triposo-architecture

Page 58: Service Oriented Architecturesbusaco/teach/courses/soa/presentations/web... · ga /~ co / servicii web Software oferind o funcționalitate specifică acces la resurse –Delicious,

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

Ce-ar fi să indicăm datele de intrare și răspunsul oferit de serviciul Web

într-un format standardizat?

Page 59: Service Oriented Architecturesbusaco/teach/courses/soa/presentations/web... · ga /~ co / servicii web Software oferind o funcționalitate specifică acces la resurse –Delicious,

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

invocare

Necesitatea unui protocol de comunicare(transport) între platforme/aplicații eterogene

Page 60: Service Oriented Architecturesbusaco/teach/courses/soa/presentations/web... · ga /~ co / servicii web Software oferind o funcționalitate specifică acces la resurse –Delicious,

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

invocare

Protocolul va trebui să ofere un mecanism de invocareși de transmitere structurată a datelor

Page 61: Service Oriented Architecturesbusaco/teach/courses/soa/presentations/web... · ga /~ co / servicii web Software oferind o funcționalitate specifică acces la resurse –Delicious,

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

invocare

Protocolul va trebui să ofere un mecanism de invocareși de transmitere structurată a datelor

facilitarea de interacțiuni complexe între aplicații

asigurarea extensibilității + securitate, fiabilitate, caching

Page 62: Service Oriented Architecturesbusaco/teach/courses/soa/presentations/web... · ga /~ co / servicii web Software oferind o funcționalitate specifică acces la resurse –Delicious,

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

invocare: soluție

XML-RPC (1999)

simplu de utilizat, nepretențios

bazat pe RPC (Remote Procedure Call)apel la distanță de proceduri – i.e. acțiuni

mesajele sunt modelate în XML

http://xmlrpc.scripting.com/spec

Page 63: Service Oriented Architecturesbusaco/teach/courses/soa/presentations/web... · ga /~ co / servicii web Software oferind o funcționalitate specifică acces la resurse –Delicious,

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

invocare: soluție

SOAP

sofisticat, mai flexibil

suită de standarde W3C (2007)

utilizat cu precădere în aplicații de tip enterprise

http://www.w3.org/TR/soap12/

Page 64: Service Oriented Architecturesbusaco/teach/courses/soa/presentations/web... · ga /~ co / servicii web Software oferind o funcționalitate specifică acces la resurse –Delicious,

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

invocare: soluție

Recurgerea la alte reprezentări

CSV (Comma Separated Values)POX (Plain Old XML)

JSON (JavaScript Object Notation)

dezvoltatorul realizează metode proprii de serializare(codificare a mesajelor vehiculate)

Page 65: Service Oriented Architecturesbusaco/teach/courses/soa/presentations/web... · ga /~ co / servicii web Software oferind o funcționalitate specifică acces la resurse –Delicious,

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

invocare: soap

Scop: protocol de comunicație între două mașini

(client și server) pentru interschimb de date XML,indiferent de platformă/limbaj de programare

Page 66: Service Oriented Architecturesbusaco/teach/courses/soa/presentations/web... · ga /~ co / servicii web Software oferind o funcționalitate specifică acces la resurse –Delicious,

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

invocare: soap

Standard al Consorțiului Web (2003, 2007)

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

Page 67: Service Oriented Architecturesbusaco/teach/courses/soa/presentations/web... · ga /~ co / servicii web Software oferind o funcționalitate specifică acces la resurse –Delicious,

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

invocare: soap

„Dialogul” dintre aplicații are loc via mesaje SOAP documente XML

plic + antet și corp

XML messaging

Page 68: Service Oriented Architecturesbusaco/teach/courses/soa/presentations/web... · ga /~ co / servicii web Software oferind o funcționalitate specifică acces la resurse –Delicious,

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

invocare: soap

Page 69: Service Oriented Architecturesbusaco/teach/courses/soa/presentations/web... · ga /~ co / servicii web Software oferind o funcționalitate specifică acces la resurse –Delicious,

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

invocare: soap

Se poate descrie un model de procesarea conținutului

SOAP encoding rules

Page 70: Service Oriented Architecturesbusaco/teach/courses/soa/presentations/web... · ga /~ co / servicii web Software oferind o funcționalitate specifică acces la resurse –Delicious,

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

invocare: soap

Poate specifica o cale de la expeditor la destinatar,via un intermediar (proxy) opțional

SOAP routing

Page 71: Service Oriented Architecturesbusaco/teach/courses/soa/presentations/web... · ga /~ co / servicii web Software oferind o funcționalitate specifică acces la resurse –Delicious,

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

invocare: soap

Anteturile pot fi procesate de intermediari diferiți

Page 72: Service Oriented Architecturesbusaco/teach/courses/soa/presentations/web... · ga /~ co / servicii web Software oferind o funcționalitate specifică acces la resurse –Delicious,

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

invocare: soap

Datele XML din corp pot fi transportate indiferentde protocolul folosit

uzual, HTTP

pot fi adoptate și alte protocoale – e.g., SMTP, XMPP

Page 73: Service Oriented Architecturesbusaco/teach/courses/soa/presentations/web... · ga /~ co / servicii web Software oferind o funcționalitate specifică acces la resurse –Delicious,

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

invocare: soap

Via SOAP poate fi specificat un apel de metodă disponibilă pe alt calculator

SOAP RPC representation

Page 74: Service Oriented Architecturesbusaco/teach/courses/soa/presentations/web... · ga /~ co / servicii web Software oferind o funcționalitate specifică acces la resurse –Delicious,

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

invocare: soap

Vehicularea mesajelor SOAP

Page 75: Service Oriented Architecturesbusaco/teach/courses/soa/presentations/web... · ga /~ co / servicii web Software oferind o funcționalitate specifică acces la resurse –Delicious,

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

invocare: soap – exemplu

Scenariu:un client trimite serviciului

un nume de sortiment de portocale (argument de intrare)pentru a afla cantitatea disponibilă – i.e. răspunsul

Page 76: Service Oriented Architecturesbusaco/teach/courses/soa/presentations/web... · ga /~ co / servicii web Software oferind o funcționalitate specifică acces la resurse –Delicious,

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

invocare: soap – exemplu

Abordare clasică TCP/IP ☹

socket-urise utilizează un port stabilit de utilizator(e.g., 7777) + o convenție de transmitere a datelor

Page 77: Service Oriented Architecturesbusaco/teach/courses/soa/presentations/web... · ga /~ co / servicii web Software oferind o funcționalitate specifică acces la resurse –Delicious,

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

invocare: soap – exemplu

Abordare RPC☹

apel la o procedură la distanță, executată de server(la un port al dispecerului RPC),

folosind XDR – External Data Representation –ca protocol binar de (de)serializare a datelor

implementări tipice în C, C++ sau Java (cu RMI – Remote Method Invocation)

Page 78: Service Oriented Architecturesbusaco/teach/courses/soa/presentations/web... · ga /~ co / servicii web Software oferind o funcționalitate specifică acces la resurse –Delicious,

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

invocare: soap – exemplu

Abordare SOAP – XML messaging

datele vehiculate vor fi împachetatede „plicuri” (mesaje) SOAP, transportate via HTTP

independentă de platformă și de limbaj

Page 79: Service Oriented Architecturesbusaco/teach/courses/soa/presentations/web... · ga /~ co / servicii web Software oferind o funcționalitate specifică acces la resurse –Delicious,

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

invocare: soap

Invocarea unui serviciu Web – în stilul RPC

Page 80: Service Oriented Architecturesbusaco/teach/courses/soa/presentations/web... · ga /~ co / servicii web Software oferind o funcționalitate specifică acces la resurse –Delicious,

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/POST http://undeva.info/portocale/

Accept: text/xmlContent-Type: text/xml

<S-ENV:Envelopexmlns:S-ENV="http://schemas.xmlsoap.org/soap/envelope/">

<S-ENV:Body><!-- se apelează metoda de furnizare a stocului --><v:furnizeazaStoc xmlns:v="http://portocale.infoiasi.ro/">

<!-- date de intrare: numele sortimentului de portocale --><v:arg0>albastre</v:arg0>

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

</S-ENV:Envelope>

invocare: un mesaj SOAP – cerere HTTP

spațiu de nume XML specific SOAP

parametrude intrare

Page 81: Service Oriented Architecturesbusaco/teach/courses/soa/presentations/web... · ga /~ co / servicii web Software oferind o funcționalitate specifică acces la resurse –Delicious,

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/HTTP/1.1 200 OK

Content-Type: text/xml;charset="utf-8"

<soap:Envelope

xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">

<soap:Body>

<tns:furnizeazaStocResponse

xmlns:tns="http://portocale.infoiasi.ro/">

<!-- răspunsul propriu-zis recepționat -->

<return>33</return>

</tns:furnizeazaStocResponse>

</soap:Body>

</soap:Envelope>

invocare: un mesaj SOAP – răspuns

spațiu de nume XML definit de serviciul

nostru

Page 82: Service Oriented Architecturesbusaco/teach/courses/soa/presentations/web... · ga /~ co / servicii web Software oferind o funcționalitate specifică acces la resurse –Delicious,

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

<s:Envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope"><s:Body>

<s:Fault><faultcode>flickr.error.0</faultcode><faultstring>Invalid SOAP envelope.</faultstring><faultactor>

http://www.flickr.com/services/soap/</faultactor><details>

Please see http://www.flickr.com/services/api/ for more details

</details></s:Fault>

</s:Body></s:Envelope>

semnalarea erorilor (SOAP fault)

aici, invocare eronatăa serviciului Web

SOAP oferit de Flickr

Page 83: Service Oriented Architecturesbusaco/teach/courses/soa/presentations/web... · ga /~ co / servicii web Software oferind o funcționalitate specifică acces la resurse –Delicious,

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

invocare: soap

SOAP RPC la nivel de Web

cerere+răspuns incluzând parametri deintrare/ieșire (+tipurile lor specificate în XML)

Page 84: Service Oriented Architecturesbusaco/teach/courses/soa/presentations/web... · ga /~ co / servicii web Software oferind o funcționalitate specifică acces la resurse –Delicious,

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

invocare: soap

SOAP protocol de mesagerie (serializare)

cererea conține un obiect-cerere serializat

răspunsul include un obiect-răspuns serializat

Page 85: Service Oriented Architecturesbusaco/teach/courses/soa/presentations/web... · ga /~ co / servicii web Software oferind o funcționalitate specifică acces la resurse –Delicious,

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

specificare

Necesitatea unui limbaj de descrierea serviciilor Web

Page 86: Service Oriented Architecturesbusaco/teach/courses/soa/presentations/web... · ga /~ co / servicii web Software oferind o funcționalitate specifică acces la resurse –Delicious,

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

specificare

Necesitatea unui limbaj de descrierea serviciilor Web

Cum găsim un serviciu Web?

Care este sintaxa mesajelor vehiculate?

Cum se desfășoară transferul de date?

Page 87: Service Oriented Architecturesbusaco/teach/courses/soa/presentations/web... · ga /~ co / servicii web Software oferind o funcționalitate specifică acces la resurse –Delicious,

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

specificare: wsdl

WSDL – Web Service Description Language

recomandare a Consorțiului Web (2007)

http://www.w3.org/TR/wsdl20/

Page 88: Service Oriented Architecturesbusaco/teach/courses/soa/presentations/web... · ga /~ co / servicii web Software oferind o funcționalitate specifică acces la resurse –Delicious,

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

specificare: wsdl

Un serviciu Web e descris în format XML de un document .wsdl

tipurile de date (argumente de intrare + răspuns oferit)se definesc via scheme XML

specifică sintaxa, nu semantica unui serviciu

Page 89: Service Oriented Architecturesbusaco/teach/courses/soa/presentations/web... · ga /~ co / servicii web Software oferind o funcționalitate specifică acces la resurse –Delicious,

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

specificare: wsdl

Interfața serviciului(definiție abstractă)

Mesaje (messages)

Operatii (operation)

Interfață (interface)

Implementarea serviciului Web

(specificație concretă)

Legare (binding)

Serviciu (service)

Punct terminal (endpoint)

Conceptual, se recurge la un model de date reprezentatprintr-un set de componente având atașate proprietăți

Page 90: Service Oriented Architecturesbusaco/teach/courses/soa/presentations/web... · ga /~ co / servicii web Software oferind o funcționalitate specifică acces la resurse –Delicious,

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

schema XML folosităde fișierul WSDL

al serviciului Web vizând stocuride portocale

Page 91: Service Oriented Architecturesbusaco/teach/courses/soa/presentations/web... · ga /~ co / servicii web Software oferind o funcționalitate specifică acces la resurse –Delicious,

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

În ce manierăpot fi (re)găsite serviciile Web existente?

Page 92: Service Oriented Architecturesbusaco/teach/courses/soa/presentations/web... · ga /~ co / servicii web Software oferind o funcționalitate specifică acces la resurse –Delicious,

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

regăsire: uddi

Universal Description, Discovery, and Integration

catalog distribuit, universal, al listei de servicii Web disponibile (înregistrate)

versiunea curentă: UDDI 3.0.2 – standard OASIS (2004)

www.oasis-open.org/committees/uddi-spec/doc/tcspecs.htm

Page 93: Service Oriented Architecturesbusaco/teach/courses/soa/presentations/web... · ga /~ co / servicii web Software oferind o funcționalitate specifică acces la resurse –Delicious,

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

regăsire: uddi

Universal Description, Discovery, and Integration

UDDI este în fapt serviciu Web, invocabil prin SOAP

înregistrările sunt replicate

actualmente, disponibil la nivel privat (enterprise)

Page 94: Service Oriented Architecturesbusaco/teach/courses/soa/presentations/web... · ga /~ co / servicii web Software oferind o funcționalitate specifică acces la resurse –Delicious,

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

regăsire: uddi

Page 95: Service Oriented Architecturesbusaco/teach/courses/soa/presentations/web... · ga /~ co / servicii web Software oferind o funcționalitate specifică acces la resurse –Delicious,

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

Page 96: Service Oriented Architecturesbusaco/teach/courses/soa/presentations/web... · ga /~ co / servicii web Software oferind o funcționalitate specifică acces la resurse –Delicious,

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

regăsire: uddi – implementare

Instrumente software – exemple:

jUDDI (Apache): http://juddi.apache.org/permite gestionarea unui catalog UDDI privat

SOA Client extensie pentru Firefox

realizează interogări asupra unui catalog UDDIhttps://addons.mozilla.org/firefox/addon/soa-client/

avansat

Page 97: Service Oriented Architecturesbusaco/teach/courses/soa/presentations/web... · ga /~ co / servicii web Software oferind o funcționalitate specifică acces la resurse –Delicious,

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

regasire: uddi – implementare

avansat

interogări asupra unui registru jUDDI via extensia SOA Client

Page 98: Service Oriented Architecturesbusaco/teach/courses/soa/presentations/web... · ga /~ co / servicii web Software oferind o funcționalitate specifică acces la resurse –Delicious,

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

specificații & inițiative adiționale (WS-*)

Adresare: WS-AddressingDescoperire: WS-Inspection, WS-Discovery

Mesagerie: Reliable HTTP (HTTPR), WS Attachments, WS-Routing,...

Securitate și autorizare:WS-Security, WS-Trust, WS-Policy,...

Procesarea tranzacțiilor: WS-Coordination, WS-Transaction

avansat

Page 99: Service Oriented Architecturesbusaco/teach/courses/soa/presentations/web... · ga /~ co / servicii web Software oferind o funcționalitate specifică acces la resurse –Delicious,

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

specificații & inițiative adiționale (WS-*)

Interacțiunea dintre servicii Web și utilizatori:WS for Remote Portlets (WSRP),

WS for Interactive Applications (WSIA)

Workflow-uri: Business Process Execution Language (BPEL), WS-Choreography, WS Flow Language (WSFL),…

Interoperabilitate – inițiativa WS-I: www.oasis-ws-i.org

…și multe altele

avansat

Page 100: Service Oriented Architecturesbusaco/teach/courses/soa/presentations/web... · ga /~ co / servicii web Software oferind o funcționalitate specifică acces la resurse –Delicious,

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

servicii web

Pentru alte detalii, a se studia cartea L. Alboaie, S. Buraga, Servicii Web.

Concepte de bază și implementări, Polirom, 2006

www.slideshare.net/busaco/l-alboaie-s-buraga-servicii-web-concepte-de-baz-i-implementri-2006

Page 101: Service Oriented Architecturesbusaco/teach/courses/soa/presentations/web... · ga /~ co / servicii web Software oferind o funcționalitate specifică acces la resurse –Delicious,

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

Existența serviciilor Web este suficientă?

Page 102: Service Oriented Architecturesbusaco/teach/courses/soa/presentations/web... · ga /~ co / servicii web Software oferind o funcționalitate specifică acces la resurse –Delicious,

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

dezvoltare

Datele și serviciile trebuie să fie accesibilede pe fiecare dispozitiv și de oriunde

a se considera ubicuitatea Web-ului

Page 103: Service Oriented Architecturesbusaco/teach/courses/soa/presentations/web... · ga /~ co / servicii web Software oferind o funcționalitate specifică acces la resurse –Delicious,

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

dezvoltare

Necesitatea unei infrastructuriorientate către servicii

o „magistrală” de comunicare între servicii/componente

Page 104: Service Oriented Architecturesbusaco/teach/courses/soa/presentations/web... · ga /~ co / servicii web Software oferind o funcționalitate specifică acces la resurse –Delicious,

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

dezvoltare

Noile servicii pot fi compuse din serviciile Web deja existente și accesate în mod transparent

Page 105: Service Oriented Architecturesbusaco/teach/courses/soa/presentations/web... · ga /~ co / servicii web Software oferind o funcționalitate specifică acces la resurse –Delicious,

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

dezvoltare

Noile servicii pot fi compuse din serviciile Web deja existente și accesate în mod transparent

necesitatea unei platforme independente de dispozitiv,permițând rularea serviciilor

middleware oferind funcționalități + inter-operabilitate

Page 106: Service Oriented Architecturesbusaco/teach/courses/soa/presentations/web... · ga /~ co / servicii web Software oferind o funcționalitate specifică acces la resurse –Delicious,

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

dezvoltare

Suport pentru conținut Web în stil „vechi” (e.g., servere de aplicații Web) + servicii Web

servere Web „porți” spre pagini și/sau servicii Web

Page 107: Service Oriented Architecturesbusaco/teach/courses/soa/presentations/web... · ga /~ co / servicii web Software oferind o funcționalitate specifică acces la resurse –Delicious,

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

framework-uri Web (structura conceptuală stratificată)

Page 108: Service Oriented Architecturesbusaco/teach/courses/soa/presentations/web... · ga /~ co / servicii web Software oferind o funcționalitate specifică acces la resurse –Delicious,

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

dezvoltare

Tehnologii, produse, aplicații – exemplificări:

Apache Axis2, CXF, Synapse, Tuscany (Java) – ws.apache.org

Eclipse SOA Tools – http://www.eclipse.org/soa/

goat (client SOAP conceput în limbajul Go)gSOAP (C și C++)

implementări Python: osa, soaplib, ZSI etc.JAX-WS – Java Architecture for XML: Web Services

suport nativ furnizat de .NET (C# et al.)facilități oferite de framework-ul Play! (Java, Scala)

Page 109: Service Oriented Architecturesbusaco/teach/courses/soa/presentations/web... · ga /~ co / servicii web Software oferind o funcționalitate specifică acces la resurse –Delicious,

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

dezvoltare

Tehnologii, produse, aplicații – exemplificări:

suport nativ în PHP5 + NuSOAP, PEAR::SOAP (PHP4)Red Hat JBoss Enterprise SOA Platform (Java)

soap, soap-server (Node.js) – nodejsmodules.org/tags/soap

SOAP::Lite (modul Perl)SOAPEngine (client SOAP pentru aplicații iOS)

WSDL2ObjC (Objective-C)Boomerang, Wizdler (extensii pentru Chrome)

…și multe altele

Page 110: Service Oriented Architecturesbusaco/teach/courses/soa/presentations/web... · ga /~ co / servicii web Software oferind o funcționalitate specifică acces la resurse –Delicious,

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

dezvoltare

Servicii publice prin SOAP – exemple:Adobe Marketing Cloud, Alexa, Amazon, BankCheck, eBay,

Google, Faces, Interfax, Microsoft, Monster, NeonCRM,PayPal, Shopsync, ScrumWorks, UPS, WalletBit, Yahoo!

lista API-urilor publice cu suport pentru SOAP:http://tinyurl.com/34dchvx

Page 111: Service Oriented Architecturesbusaco/teach/courses/soa/presentations/web... · ga /~ co / servicii web Software oferind o funcționalitate specifică acces la resurse –Delicious,

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

dezvoltare: studiu de caz

Invocarea unui serviciu Web publicpe baza descrierii WSDL a acestuia

Page 112: Service Oriented Architecturesbusaco/teach/courses/soa/presentations/web... · ga /~ co / servicii web Software oferind o funcționalitate specifică acces la resurse –Delicious,

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

dezvoltare: studiu de caz

Invocarea unui serviciu Web publicpe baza descrierii WSDL a acestuia

utilizăm situl Programmable Web – http://www.programmableweb.com/ –

pentru a obține lista serviciilor invocabile prin SOAP

Page 113: Service Oriented Architecturesbusaco/teach/courses/soa/presentations/web... · ga /~ co / servicii web Software oferind o funcționalitate specifică acces la resurse –Delicious,

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

AonawareDictionary API

oferă descriereafuncționalităților

via WSDL

acces fărăautentificare

nu necesităcheie de utilizare(developer key)

obținutăîn prealabil

Page 114: Service Oriented Architecturesbusaco/teach/courses/soa/presentations/web... · ga /~ co / servicii web Software oferind o funcționalitate specifică acces la resurse –Delicious,

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

oferă lista operațiilor implementate de serviciul Web:Define DictionaryInfo DictionaryList Match etc.

WSDLBrowserwsdlbrowser.com

URL-ul descrierii WSDL a serviciului Web

Page 115: Service Oriented Architecturesbusaco/teach/courses/soa/presentations/web... · ga /~ co / servicii web Software oferind o funcționalitate specifică acces la resurse –Delicious,

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

Aonaware Dictionary APIfolosind specificația WSDL, putem determina structura

parametrilor de intrare pentru operația Define

<s:element name="Define">

<s:complexType>

<s:sequence>

<s:element minOccurs="0" maxOccurs="1"

name="word" type="s:string"/>

</s:sequence>

</s:complexType>

</s:element>

definiție XML schema

operația Define are un singur argument de intrare opțional de tip șir de caractere – string

Page 116: Service Oriented Architecturesbusaco/teach/courses/soa/presentations/web... · ga /~ co / servicii web Software oferind o funcționalitate specifică acces la resurse –Delicious,

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/<SOAP-ENV:Envelope

xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"

xmlns:s="http://services.aonaware.com/webservices/">

<SOAP-ENV:Body>

<!-- precizează operația (metoda) ce va fi invocată -->

<s:Define>

<!-- parametrul de intrare; aici, un termen (șir de caractere) -->

<s:word>

programming

</s:word>

</s:Define>

</SOAP-ENV:Body>

</SOAP-ENV:Envelope>

Dictionary API – invocarea operației (cerere SOAP)

Page 117: Service Oriented Architecturesbusaco/teach/courses/soa/presentations/web... · ga /~ co / servicii web Software oferind o funcționalitate specifică acces la resurse –Delicious,

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

Aonaware Dictionary APIpe baza WSDL, putem cunoaște tipul răspunsului

furnizat de operația Define

<s:element name="DefineResponse"><s:complexType>

<s:sequence><s:element minOccurs="0" maxOccurs="1"

name="DefineResult" type="WordDefinition"/>

</s:sequence></s:complexType>

</s:element><s:complexType name="WordDefinition">

<s:sequence>…</s:sequence></s:complexType>

Page 118: Service Oriented Architecturesbusaco/teach/courses/soa/presentations/web... · ga /~ co / servicii web Software oferind o funcționalitate specifică acces la resurse –Delicious,

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <soap:Body>

<DefineResponse xmlns="http://services.aonaware.com/webservices/"><DefineResult>

<Word>programming</Word><Definitions>

<Definition><Word>programming</Word><Dictionary><Id>wn</Id><Name>WordNet</Name></Dictionary><WordDefinition>program: a system…</WordDefinition>

</Definition><Definition> <!-- alte definiții --> </Definition>

</Definitions> </DefineResult>

</DefineResponse> </soap:Body>

</soap:Envelope>

Dictionary API – datele obținute (răspuns SOAP)

Page 119: Service Oriented Architecturesbusaco/teach/courses/soa/presentations/web... · ga /~ co / servicii web Software oferind o funcționalitate specifică acces la resurse –Delicious,

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

dezvoltare: php

Clasa SoapServer deservește cereri SOAP

metode utile:addFunction () – adaugă o funcție procesând o cerere

setClass () – specifică o clasă implementând un serviciuhandle () – „ascultă” cereri SOAP de la clienți

fault () – emite un mesaj de eroare (SOAP fault)setPersistance () – stabilește persistența stării conexiunii

detalii la http://php.net/manual/en/book.soap.php

Page 120: Service Oriented Architecturesbusaco/teach/courses/soa/presentations/web... · ga /~ co / servicii web Software oferind o funcționalitate specifică acces la resurse –Delicious,

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

dezvoltare: php

try { $server = new SoapServer (null, // nu oferim nicio descriere WSDL

array ('uri' => 'urn:portocale.info')); // spațiul de nume al serviciului Web

// adăugăm metodele (funcționalitățile) implementate $server->addFunction ('furnizeazaCantit'); $server->handle (); // așteptăm cereri SOAP

} catch (SOAPFault $exception) { // a apărut o excepție :(die ('Ah, o problemă… ' . $exception);

}// funcție oferind cantitatea dintr-un sortiment de portocalefunction furnizeazaCantit ($numeSortiment) {

// uzual, vom efectua o interogare SQL, o procesare de date (CSV, JSON, // XML,…), o invocare a altui serviciu Web etc.switch ($numeSortiment) {case 'japoneze' : return 33;case 'albastre' : return 74;default : return 'inexistent';

}}

vezi arhiva cu exemple

Page 121: Service Oriented Architecturesbusaco/teach/courses/soa/presentations/web... · ga /~ co / servicii web Software oferind o funcționalitate specifică acces la resurse –Delicious,

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

dezvoltare: php

Clasa SoapClient realizează cereri SOAP către un serviciu

metode de interes: __soapCall () – trimite o cerere SOAP (apel de operație)

__getLastRequest () – oferă informații despre ultima cerere __getLastResponse () – oferă informații vizând răspunsul__setSoapHeaders () – setează anteturi (vezi SoapHeader)

__setCookie () – stabilește un cookie

detalii la http://php.net/manual/en/book.soap.php

Page 122: Service Oriented Architecturesbusaco/teach/courses/soa/presentations/web... · ga /~ co / servicii web Software oferind o funcționalitate specifică acces la resurse –Delicious,

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

dezvoltare: php

$client = new SoapClient (null, // nu recurgem la WSDL

array ('location' => 'http://undeva.info/srv.php', // adresa serviciului Web

'uri' => 'urn:portocale.info')); // spațiul de nume

// realizăm o suită de invocări ale metodei dorite

foreach (array ('albastre', 'japoneze', 'celeste') as $sortiment) {

$rez = $client->__soapCall ('furnizeazaCantit', array ($sortiment));

echo "<p>Stocul de portocale $sortiment e $rez.</p>";

}

Page 123: Service Oriented Architecturesbusaco/teach/courses/soa/presentations/web... · ga /~ co / servicii web Software oferind o funcționalitate specifică acces la resurse –Delicious,

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

dezvoltare: php

Page 124: Service Oriented Architecturesbusaco/teach/courses/soa/presentations/web... · ga /~ co / servicii web Software oferind o funcționalitate specifică acces la resurse –Delicious,

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

dezvoltare: direcții

Servicii Web bazate pe Java conform modelului ESB (Enterprise Service Bus)

vezi și proiectul GlassFish – glassfish.java.net

Servicii Web bazate pe .NETWCF (Windows Communication Foundation)

http://msdn.microsoft.com/en-us/library/dd456779.aspx

avansat

Page 125: Service Oriented Architecturesbusaco/teach/courses/soa/presentations/web... · ga /~ co / servicii web Software oferind o funcționalitate specifică acces la resurse –Delicious,

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/rezumat

servicii Web

⫘„definiții”, caracterizare, arhitectură,

SOAP, tehnologii și aplicații

Page 126: Service Oriented Architecturesbusaco/teach/courses/soa/presentations/web... · ga /~ co / servicii web Software oferind o funcționalitate specifică acces la resurse –Delicious,

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

episodul viitor: servicii Web prin REST