Sunteți pe pagina 1din 27

Universitatea Politehnica Bucuresti Facultatea de Electronic, Telecomunicaii i Tehnologia Informaiei

Arhitectura serviciilor web

Olteanu Ana-Cristina An VI Specializarea ISC

Cuprins
1. Prezentare generala asupra serviciilor web.......................................................................................2 1.1 Ce este un serviciu web ?............................................................................................................2 1.2 De ce avem nevoie de servicii web? ..........................................................................................3 1.3 Tipuri de arhitecturi.....................................................................................................................4 2 rhitectura unui serviciu web ...........................................................................................................! 2.1 rhitectura de tip "PC................................................................................................................! 2.1.1 #TTP....................................................................................................................................$ 1.2.1.2 %& P.................................................................................................................................' 2.1.3 (%D).................................................................................................................................11 2.1.! *DD+..................................................................................................................................13 2.2 rhitectura de tip ",%T............................................................................................................14 2.2.1 Ce este ",%T?....................................................................................................................14 2.2.2 +n ",%T totul este o resursa...............................................................................................12.2.3 *"+ ....................................................................................................................................12.2.4 +nter.ata uni.orma...............................................................................................................1/ 2.2.! "eprezentari ......................................................................................................................1/ 2.2.- Comparatie ",%T vs %& P..............................................................................................1$ 3. ,0emple de implementari de servicii ",%T...................................................................................21 3.1 mazon1s %imple %torage %ervice 2%33....................................................................................21 3.2 4ahoo5.......................................................................................................................................22 4. 6etode de dezvoltare de aplicatii in .7,T......................................................................................23 .........................................................................................................................................................24 !.Concluzii..........................................................................................................................................2! -. cronime .olosite............................................................................................................................2! /. 8ibliogra.ie .....................................................................................................................................2! -. ne0e ..............................................................................................................................................2)ista .iguri9..........................................................................................................................................2-

1. Prezentare generala asupra serviciilor web


1.1 Ce este un serviciu web ? 6ultitudinea de protocoale :i standarde disponibile ;ncep<nd de la s.<r:itul secolului trecut ;n s.era +nternetului au dat posibilitatea comunic=rii ;ntre aplica>ii pe sisteme a.late la distan>e mari? 2

cu acces la +nternet.

st.el? e0ist= sisteme ce o.er= servicii de in.ormare :i procesare a in.orma>iilor

care ;n general sunt independente de plat.orma hardware@ accesul la acestea se .ace prin servicii web. ,0emple clasice de servicii web de in.ormare sunt a.larea cursului de burs= momentan al unei ac>iuni anume sau a.larea condi>iilor climaterice intrAun anumit punct de pe glob. %erviciile de prelucrare de in.orma>ii pornesc de la cele mai banale? cum ar .i e0ecu>ia de opera>ii aritmetice asupra unor numere? :i p<n= la servicii comple0e cum ar .i serviciile de autenti.icare. *n serviciu web reprezinta orice serviciu disponibil pe +nternet? care .oloseste un sistem de mesaBe standardizat C6) si care nu este legat de nici un sistem de operare sau de un calculator.

Digura 19 %erviciu web de baza

1.2 De ce avem nevoie de servicii web? cum cativa ani serviciile web nu erau su.icient de rapide pentru a .i considerate interesante. Dar? datorita dezvoltarii maBore a tehnologiilor din ultimii ani? cei mai multi oameni si cele mai multe companii au cone0iune broadband2 in banda larga3 si au .olosit webAul din ce in ce mai mult. Cand plat.ormele maBore au putut accesa (ebAul .olosind browserele (eb? di.erite plat.orme au putut sa interctioneze. Pentru ca aceste plat.orme sa interactioneze? au .ost dezvolatate aplicatiile (eb.

Figura 2: Interactiunea web traditionala

%erviciile web au dus aplicatiile (eb la urmatorul nivel de dezvoltare. Dolosind serviciile web? aplicatia ta isi poate publica .unctiile sau mesaBele catre toata lumea ce .oloseste (ebAul. Dolsind serviciile web? departamentul economic bazat pe un server (indows se poate conecta la un alt server ce ruleaza *ni0.

Figura 3: Interactiunea serviciilor web

%erviciile web au doua tipuri de utilizare. +n primul rand componentele unui serviciu web sunt reutilizabile. %unt lucruri de care aplicatiile au nevoie .oarte des. Deci de ce sa construim aceste lucruri mereu cand putem sa le reutilizam? De aceea au .ost create serviciile web. %erviciile web pot o.eri aplicatiilor componente precum conversia valutara? rapoarte de vreme si chiar traducerea unui limbaB ca serviciu. +n al doilea rand? serviciile web conecteaza aplicatii e0istente deBa. ,le aButa sa rezolvi problema interoperabilitatii? permitand schimbul datelor intre di.erite aplicatii si di.erite plat.orme. ceste reprezinta 2 avantaje maBore ale seviciilor web. vantaBele serviciilor web sunt9 A A A A interoperabilitatea intre aplicatii reutilizarea serviciilor e0istente distribuire usoara a in.ormatiei intre consumatori dezvoltare rapida

1.3 ipuri de ar!itecturi ,0ista numeroase standarde si protocoale? cel mai .olosit .iind #TTP? destinate construirii serviciilor web. ceste standarde poarta numele de stiva (%AE. Printre acestea se numara (%A 7oti.ication? (%A%ecuritF? (%D)? si %& P. +nsa acestea adauga o mare comple0itate serviciilor web . De aceea simplitatea tehnologiilor .olosite pentru web 2protocolul #TTP? standardul de nume

*"+ si protocolul C6)3 a dus la contruirea unor alt.el de servicii? arhitecturile serviciilor web impartinduAse in doua mari categorii9 arhitectura de tip "PC 2 8ig (eb %ervicesAorientate pe servicii3 arhitectura de tip ",%T 2 orientate pe resurse3

Bazate pe un limbaj comun XML (e Xtensible Markup Language) si un protocol comun de transport HTTP (HyperTe t Trans!er Protocol) in general" ser#iciile $eb actioneaza ca un intermediar %ntre cele dou& entitati ce doresc sa comunice %ntre ele' XML constituie motorul care !ace posibil trans!erul datelor prin intermediul (nternetului" constituind totodata !undamentul ser#iciilor $eb' rhitectura de tip "PC permite trimiterea si primirea mesaBului intrAun invelis. cest invelis poate .i de mai multe tipuri 9 %& P? C6)A"PC si chiar #TTP. Din cauza acestui invelis? acest stil de serviciu web este unul comple0. De ce sa .olosim un tip comple0 cand putem sa .olosim o arhitectura la .el de usoara ca si ce a (,8Aului9 arhitectura de tip ",%T.

2 Arhitectura unui serviciu web


2.1 "r!itectura de tip RPC rhitectura de tip "PC este cea mai comple0a si cuprinde practic toate tehnologiile necesare unei arhitecturi de tip ",%T. sa cum am mai spus o arhitectura de tip ",%T .oloseste doar tehnologiile utilizate in web9 #TTP? *"+ si C6) . !

"emote Procedure Call 2 pelul Procedurilor la Distanta3 este o tehnologie de comunicatie interAprocese care permite unui program de pe un computer sa genereze o subrutina sau unei proceduri sa se e0ecute intrAun alt spatiu de adresa 2de regula pe un alt computer sau pe o retea partaBata3 .ara ca programatorul sa codeze e0plicit detaliile aceste interactiuni la distanta. Practic? programatorul scrie? in principiu? acelasi cod indi.erent ca subrutina este locala sau la distanta .ata de programul e0ecutant. Cand so.tAul in cauza este scris .olosind principii orientateAobiect? se poate vorbi despre apelare la distanta sau apelarea metodelor la distanta. +n general o arhitectura de tip "PC si in general protocolul %& P este con.undat cu notiunea de serviciu web? desi e0ista si alte stiluri de construire a unui serviciu web precum ",%T. Diagrama ce descrie .unctionarea unei serviciu web de tip "PC este prezentata in .igura de mai Bos9
Figura #: Functionarea unei serviciu web de tip $%C

&

arhitectura a serviciului web poate .i analizata din doua puncte de vedere9 Din punct de vedere al rolurilor in cadrul serviciului web9 cest tip de serviciu web necesita mai multe componente de baza pentru a putea .i realizat9
furnizorul de servicii: re rezinta un nod ;n +nternet care asigura printrAo inter.ata accesul la un serviciu so.tware care e0ecuta un anumit set de operatii@ consumatorul de !ervicii:re rezinta un nod ;n retea care se leaga la .urnizorul de servicii? si .oloseste .unctionalitatea o.erita de acesta? construind solutia de a.acere @

registru de servicii G reprezinta un so.tware care gazduie:te servicii publicate? acestea putand .i .urnizate la cererea solicitantului. "egistrul implementeaz= descoperirea de servicii si .unctii prin care solicitantul poate cere un anumit serviciu@1

Figura &: $olurile din cadrul unui serviciu de tip $%C si interactiunea dintre acestea

rhitectura orientat= spre servicii (eb de tip "PC trebuie s= implementeze trei o eraii care de.inesc contractele dintre rolurile principale 2.urnizor? solicitant? registru39 213 u"licare9 ;nregistrarea 2sau promovarea3 serviciului de c=tre .urnizorul serviciului ;n registrul de servicii@ 223 desco erire9 opera>ie complementar= opera>iei de conectare 2binding3? deoarece serviciile publicate trebuie reg=site. %olicitantul descoper= serviciul ;n registrul servicii con.orm unor criterii de c=utare speci.icate de solicitant. Criteriile de c=utare pot .i? de e0emplu? tipul serviciului? caracteristicile .urnizorului? caracteristicile de calitate a serviciului etc.@ 233 conectare9 conecteaz= .urnizorul de servicii cu solicitantul de servicii ;ntrAo rela>ie de tip clientserver. ceast= rela>ie poate .i dinamic= 2de e0emplu? generarea dinamic= a pro0FAului solicitantului3 sau static= 2c<nd dezvoltatorul poate prede.ini :i codi.ica modul de asociere a serviciului cu orice solicitant3. & alta modalitate de a e0amina arhitectura serviciilor web se realizeaza prin studierea stivei de protocoale a serviciului. %tiva este in continua dezvoltare dar in prezent contine patru niveluri9 A nivelul transport al serviciului 9 nivelul este responsabil de transportul mesaBului dintre consumator si .urnizor. +n prezent acest nivel contine protocoale precum #TTP 2hFperte0t /

trans.er protocol3? %imple 6ail Trans.er Protocol 2%6TP3? .ile trans.er protocol 2DTP3? si protocoale mai noi precumprecum 8locHs ,0tensible ,0change Protocol 28,,P3. A nivelul de mesaje XML9 acest nivel este responsabil de codarea mesaBelor intrAun .ormat C6) ast.el incat mesaBele sa poata .i intelese la celalalt capat. +n prezent acest nivel este descris de protocoalele C6)A"PC si %& P. A nivelul de descriere a serviciului 9 este responsabil cu descrierea inter.etei publice a serviciului. Descrierea serviciului este realizata prin (eb %ervice Description )anguage 2(%D)3? acesta urmand a .i prezentat mai tarziu A nivelul de descoperire a serviciului acest nivel este responsabil de centralizarea serviciilor intrAun registru comun si .urnizeaza .unctionalitati de publicare a serviciului. Descoperirea serviciului se realizeaza in prezent prin 9 *niversal Description? DiscoverF? and +ntegration 2*DD+3. %erviciile web evolueaza permanent? de aceea pot aparea noi niveluri in cadrul stivei. Digura de mai Bos sintetizeaza nivelurile actuale din cadrul stivei serviciului web.

Figura ': (tiva serviciului web

*rmeaza o descrierea sumara a principalelor protocoale ce apartin .iecarui nivel. 2.1.1 HTTP Protocoalele de transport stau la baza oricarui serviciu web2 inclusive ",%T3? cel mai .olosit protocol de transport .iind #TTP. *ltima versiune a acestui protocol este ) ;mbun=t=>ire :i reparare a neaBunsurilor versiunilor anterioare. )a #TTP se pierd in.orma>iile cererilor vechi 2deci este un protocol .=r= re>inerea st=rii3. Toate serviciile web .olosesc #TTP dar il .olosesc in moduri di.erite. 6etodele disponibile sunt 9 1. +, 9 este cea mai .olosit= metod=? .iind utilizat= atunci c<nd serverului i se cere o resurs=. $ %*1.1 G versiune de

2. ),"D9 se comport= e0act ca metoda I,T? dar serverul returneaz= doar antetul resursei? ceea ce permite clientului s= inspecteze antetul resursei? .=r= a .i nevoit s= ob>in= :i corpul resursei. 3. %- 9 metoda este .olosit= pentru a depune documente pe server? .iind inversul metodei I,T. 4. %.( 9 a .ost proiectat= pentru a trimite date de intrare c=tre server. !. D,/, ,9 este opusul metodei P*T. -. $"C,9 este o metod= .olosit= de obicei pentru diagnosticare? put<nd da mai multe in.orma>ii despre traseul urmat de leg=tura #TTP? .iecare server pro0F ad=ug<nduA:i semn=tura ;n antetul Jia. /. .% I.0(9 este .olosit= pentru identi.icarea capacit=>ilor serverului (eb? ;nainte de a .ace o cerere. $. C.00,C 9 este o metod= .olosit= ;n general de serverele intermediare. 1.2.1.2 (."% %& P este un protocol bazat pe C6) ce realizeaza schimbul de in.ormatii intre calculatoare? intrAun mediu descentralizat? distribuit. cronimul %& P a derivate initial din (imple .bBect "ccess %rotocol? iar apoi din (ervice .riented "rchitecture %rotocol. Denumirea initiala a .ost abandonata incepand cu versiunea 1.2 cand sAa considerat ca .iind derutanta. Protocolul este alcatuit din trei componente9 *n invelis ce de.ineste continutul unui mesaB si cum se proceseaza acesta %et de reguli de.inite3 & conventie pentru reprezentarea apelurilor si raspunsurilor procedurilor apelate la distanta Ca si C6)A"PC? %& P este independent de plat.orma ? reprezentand ast.el o cale de comunicatie intre di.erite sisteme de operare? ce au di.erite limbaBe de operare etc. 6esaBele %& P sint codi.icate in documente C6)? .iind alcatuite dintrAun in.asurator 2%& P envelope? obligatoriu3? un header 2%& P header? optional3 si un bodF 2%& P bodF? obligatoriu3.
6esaBele %& P sunt si ele documente C6)? speci.icatiile protocolului o.erind detalii pentru o

pentru codi.icarea instantelor de.inite de aplicatie 2tipuri de date

'

codificare uternic ti izata a datelor ;n mesaBele %& P. Digura de mai Bos sintetizeaza structura unui

mesaB %& P9

Figura 1: (tructura unui mesaj (."%

Pentru a intelege cat mai bine modul in care .unctioneaza acest protocol? este prezentata mai Bos o cerere SOA! pentru un serviciu web ce .urnizeaza vremea9
<?xml version='1.0' encoding='UTF-8'?> <SOAP- !"# nvelo$e xmlns#SOAP- !"=%&''$#(())).)*.org(+001(0,(so-$-envelo$e(% xmlns#xsi=%&''$#(())).)*.org(+001(./0Sc&em--ins'-nce% xmlns#xsd=%&''$#(())).)*.org(+001(./0Sc&em-%> <SOAP- !"#1od2> <ns1#ge'3e-'&er xmlns#ns1=%4rn#ex-m$les#)e-'&erservice% SOAP- !"#encodingS'2le=%&''$#(())).)*.org(+001(0,(so-$-encoding(%> <5i$code xsi#'2$e=%xsd#s'ring%>10016<(5i$code> <(ns1#ge'3e-'&er> <(SOAP- !"#1od2> <(SOAP- !"# nvelo$e>

*n e0emplu de raspuns primit de la serviciul web ce .urnizeaza vremea este prezentat mai Bos9
<?xml version='1.0' encoding='UTF-8'?> <SOAP- !"# nvelo$e xmlns#SOAP- !"=%&''$#(())).)*.org(+001(0,(so-$-envelo$e(% xmlns#xsi=%&''$#(())).)*.org(+001(./0Sc&em--ins'-nce%

1K

xmlns#xsd=%&''$#(())).)*.org(+001(./0Sc&em-%> <SOAP- !"#1od2> <ns1#ge'3e-'&er7es$onse xmlns#ns1=%4rn#ex-m$les#)e-'&erservice% SOAP- !"#encodingS'2le=%&''$#(())).)*.org(+001(0,(so-$-encoding(%> <re'4rn xsi#'2$e=%xsd#in'%>68<(re'4rn> <(ns1#ge'3e-'&er7es$onse> <(SOAP- !"#1od2> <(SOAP- !"# nvelo$e>

2.1.3 2(D/ 2(D/ 2#e" !ervices $escri tion %anguage3 sau )imbaBul de Descriere a %erviciilor (eb este bazat pe C6) si descrie inter.etele serviciile web . Jersiunea cea mai curent= a (%D) este 2.K. (%D) de.ineste serviciile ca o colectie de porturi? sau puncte terminale ;ntrAo re>ea. %peci.icarea (%D) o.er= un .ormat C6) pentru documentele de aceast= categorie. De.inirea abstract= a porturilor :i mesaBelor este separat= de instan>=? sau de ;ntrebuin>area lor concret=? aceasta permitand reutilizarea acestei de.iniri. *n port se de.ine:te ca asocierea unei adrese de re>ea cu o leg=tur= reutilizabil=? iar o colec>ie de porturi de.ine:te un serviciu. 6esaBele reprezint= descrierile abstracte ale datelor ce urmeaz= a .i interschimbate? ;n timp ce tipurile de porturi reprezint= colec>iile abstracte ale opera>iunilor suportate. Protocolul concret :i .ormatul de date al speci.ica>iei pentru un anumit tip de porturi constituie o leg=tur= reutilizabil=? unde mesaBele si opera>iunile coreleaz= cu un anumit protocol din re>ea :i cu un .ormat de mesaBe. Pe aceast= cale? (%D) descrie inter.a>a public= pentru serviciile web. (%D) este adesea utilizat ;n combina>ie cu %& P :i C6) %chema pentru a o.eri servicii (eb prin intermediul +nternetului. *n program client conect<nduAse la un serviciu web poate citi (%D) pentru a determina ce .unc>ii sunt permise de acest server. &rice tip de date special .olosit :i implementat ;n .i:ierul (%D) ;n .orm= de C6) %chema. Deasemenea clientul poate utiliza %& P pentru ca eventual s= cheme una din .unc>iile con>inute de (%D). *n e0emplu de descriere a unui serviciu web este prezentat mai Bos9
<?xml version="1.0" encoding="UTF-8"?> <definitions name="Weat er!ervice" target"ames#ace=" tt#$%%&&&.ecerami.com%&sdl%Weat er!ervice.&sdl" xmlns=" tt#$%%sc emas.xmlsoa#.org%&sdl%" xmlns$soa#=" tt#$%%sc emas.xmlsoa#.org%&sdl%soa#%" xmlns$tns=" tt#$%%&&&.ecerami.com%&sdl%Weat er!ervice.&sdl"

11

xmlns$xsd=" tt#$%%&&&.&'.org%(001%)*+!c ema"> <message name="getWeat er,e-.est"> <#art name="/i#code" t0#e="xsd$string"%> <%message> <message name="getWeat er,es#onse"> <#art name="tem#erat.re" t0#e="xsd$int"%> <%message> <#ortT0#e name="Weat er12ortT0#e"> <o#eration name="getWeat er"> <in#.t message="tns$getWeat er,e-.est"%> <o.t#.t message="tns$getWeat er,es#onse"%> <%o#eration> <%#ortT0#e> <3inding name="Weat er14inding" t0#e="tns$Weat er12ortT0#e"> <soa#$3inding st0le="r#c" trans#ort=" tt#$%%sc emas.xmlsoa#.org%soa#% tt#"%> <o#eration name="getWeat er"> <soa#$o#eration soa#5ction=""%> <in#.t> <soa#$3od0 encoding!t0le=" tt#$%%sc emas.xmlsoa#.org%soa#%encoding%" names#ace=".rn$exam#les$&eat erservice" .se="encoded"%> <%in#.t> <o.t#.t> <soa#$3od0 encoding!t0le=" tt#$%%sc emas.xmlsoa#.org%soa#%encoding%" names#ace=".rn$exam#les$&eat erservice" .se="encoded"%> <%o.t#.t> <%o#eration> <%3inding> <service name="Weat er1!ervice"> <doc.mentation>W!6+ File for Weat er !ervice<%doc.mentation> <#ort 3inding="tns$Weat er14inding" name="Weat er12ort"> <soa#$address location=" tt#$%%local ost$8080%soa#%servlet%r#cro.ter"%> <%#ort> <%service> <%definitions>

12

C) 7I este o e0tensie a (%D)? iar descrierea unui serviciu C) 7I este o descriere a unui serviciu (%D) cu un element de e0tensie ce descrie modul de .unc>ionare a serviciului ca o parte a unui proces de a.acere 2Business Process E&ecution %anguage3. 2.1.& -DDI *DD+ reprezinta in prezent nivelul ce descrie descoperirea unui serviciu web de tip "PC? acronimul provenind de la *niversal Description DiscoverF and +ntegration. *DD+ a .ost creat initial de catre 6icroso.t? +86? and
un serviciu la distanta.

riba? si reprezinta o speci.icatie tehnica pentru a publica si a

gasi servicii web in +nternet. "egasirea 2DiscoverF3 este procesul prin care o aplicatie client localizeaza
ceast actiune poate .i .acilitata de consultarea unui registru global care contine toate serviciile web publice. Tehnologia .oloseste un registru distri"uit, universal al listei de servicii 'e" dis oni"ile 2;nregistrate3.

+n principal? *DD+ este alcatuit din doua parti. +n primul rand *DD+ este o speci.icatie tehnica pentru a construi servicii web. Datele sunt stocate in .ormatul C6). %peci.icatiile *DD+ includ detalii despre un P+ .olosit pentru cautarea datelor si publicarea acestora. +n al doilea rand? registrul *DD+ reprezinta implementarea speci.icatiilor *DD+. )ansat in 2KK1 de catre 6icroso.t si +86? registrul *DD+ permite cautarea de date *DD+ si permite de asemenea companiilor sa isi inregistreze serviciile web. Datele e3istente in cadrul registrului -DDI este impartita in 3 categorii: (hite pages 9 aceasta categorie include in.ormatii generale despre companie9 nume? descriere? adresa 4ellow pages 2 pagini galbene3 9 aceasta categorie include clasi.icarea datelor 9 .ie pentru companie? .ie pentru serviciile o.erite Ireen pages 2 pagini verzi3 9 categoria include in.ormatii tehnice despre un serviciu web 2 adresa prin care se invoca serviciul web3

13

Figura 4 : %rocesul -DDI

Dupa prezentarea tuturor componentelor ce alcatuiesc o arhitectura de tip "PC? legatura dintre acestea este succint descrisa prin diagrama de mai Bos9

2.2 "r!itectura de tip $,( 2.2.1 Ce este $,( ? ",%T este acronimul de la $epresentational (tate rans5er si reprezinta un model architectural pentru crearea serviciilor web. ",%T descrie o arhitectura orientata pe resurse? aceasta .iind prezentata in detaliu prima data in teza de doctorat a lui "oF Dielding1s. 6otivul realizarii unei ast.el de arhitecturi a pornit de la .aptul ca serviciile de tip "PC si cele care in general .olosesc %& P aduc o oarecare comple0itate. %implitatea (,8 a reprezentat sursa de inspiratie a serviciilor web de tip ",%T. %erviciile (,8 de tip ",%T .olosesc toate componentele ce au .acut webAul un mare success. ",%T aplica arhitectura webAului asupra serviciilor web. Desi ",%T nu este un standard? el se .oloseste de standarde9 6) % 7 )8perte3t rans5er %rotocol9 6 -$I 7 -ni5orm $esource Identi5ier9 6 :;/*) ;/*+IF*<%,+ 14

Practic ",%T presupunea construirea unui serviciu web .olosind #TTP? C6) si *"+ asa cum a .ost construit si webAul. Pentru a putea intelege mai bine modul in care se realizeaza un serviciu de tip ",%T mai intai va .i prezentata o abordare simpla? pe intelesul tuturor iar apoi o descriere tehnica a acestuia. De unde a pornit construirea unui serviciu de tip ",%T? & mul>ime de teorii comple0e plutesc in Burul conceptului ",%T? dar ce este practic ",%T? Ln lumea so.tware vorbim de design :i vorbim despre arhitectura. *neori? ;ncercam s= .acem o distinc>ie .ormala intre aceste doua concepte? alteori? ne rezumam la a .ace o distincitie instinctuala. +nstinctual ar trebui s= observam ca arhitectura ",%T este la .el cu interac>iunile de tip webAstFle ;ntre clien>i :i servere A care sunt arhitectura. Comportamentul intern al so.twareAului clientului si serverului se poate numi design. ",%T nu este despre design. ,ste despre arhitectura. ",%T este un set de reguli la care o arhitectur= ar trebui s= se con.ormeze. Pentru c= nu este su.icient de detaliat pentru a de.ini o arhitectur= reala vom spune despre ",%T ca este un stil arhitectural. (ebAul este un e0emplu real de arhitectura care urmeaz= in linii mari regulile ",%T. Pentru a ;n>elege aceste reguli trebuie s= avem o imagine a unei arhitecturi .ara constrangeri. rhitectura .ara constrangeri9 & arhitectura este construita din di.erite componente proiectate 2design pieces3. ceste componente interactioneaza unele cu altele? ;n diverse moduri. +maginatiAva o arhitectura .ara constrangeri care permite trimiterea de mesaBe intre oricare componente. &rice componenta poate trimite un mesaB la orice alta componenta iar regulile re.eritoare la semni.icatia mesaBului sau .elul in care mesaBul este tratat sa ramana la latitudinea emitatorului si receptorului. +ntrAo arhitectura ",%T se deosebesc doua trasaturi importante 9 datele asupra careia clientul ii spune serverului sa opereze se a.la in *"+ operatia pe care serverul o .ace asupra datelor este descrisa direct de metoda #TTP

",%T este o alta abordare a serviciilor web. Din punct de vedere tehnic? arhitectura de tip ",%T se descrie prin cateva notiuni de baza 9 resursa" #$I" reprezentare" inter%ata uni%orma. )egarea acestor componente intrAun mod cat mai e.icient duce la crearea unei arhitecturi ",%T. & imagine de ansamblu asupra serviciilor de tip ",%T este prezentata in diagrama de mai Bos9

1!

2.2.2 In $,( totul este o resursa +ntrAo arhitectura de tip ",%T totul este o resursa. &rice poate .i re.erit ca un obiect este o resursa. +n general tot ce poate .i stocat in calculator si reprezentat ca un .lu0 de octeti este o resursa. & resursa poate .i un obiect concret precum un mar sau un obiect abstract precum notiunea de curaB. Posibile resurse pot .i 9 2.2.3 -$I Ce anume de.ineste o resursa ? Diecare resursa are asociat cate un *"+. *"+ reprezinta numele si adresa unei resurse. -$I este prescurtarea termenului englez Uniform (esource Identifier? un identi.icator al.anumeric univoc :i unic pe lume al unei resurse din +nternet? cum ar .i un document sau un site web. Deseori *"+Aul unei resurse este identic cu *")Aul ei? *") .iind prescurtarea de la Uniform (esource %ocator? o .orm= timpurie a identi.icatorului. Daca o anumita in.ormatie nu are un *"+ atunci nu este o resursa si nu este practic pe (eb. *n *"+ al unei resurse trebuie sa .ie descriptive. ,0emple de *"+ sunt prezentate mai Bos9 M http9NNwww.e0ample.comNso.twareNreleasesN1.K.3.tar.gz M http9NNwww.e0ample.comNso.twareNreleasesNlatest.tar.gz M http9NNwww.e0ample.comNweblogN2KK-N1KN24NK M http9NNwww.e0ample.comNmapNroadsN*% N "N)ittleO"ocH M http9NNwww.e0ample.comNwiHiNPellF.ish M http9NNwww.e0ample.comNsearchNPellF.ish M http9NNwww.e0ample.comNne0tprimeN1K24 M http9NNwww.e0ample.comNne0tA!AprimesN1K24 M http9NNwww.e0ample.comNsalesN2KK4NQ4 M http9NNwww.e0ample.comNrelationshipsN lice@8ob M http9NNwww.e0ample.comNbugsNbFAstateNopen & resursa poate avea mai multe *"+ . 7umarul de vanzari ale unui produs se poate gasi si la *"+ htt :))'''*e&am le*com)sales)+,,-).- dar in acelasi tim se oate gasi si la htt :))'''*e&am le*com)sales).-+,,-. 1Jersiunea 1.K.3 a unui so.t & harta a unei tari *rmatorul numar prim dupa 1K24 7umarul de cumparatori pentru un anumit produs & lista de bugAuri dintrAo baza de date

2.2.# Inter5ata uni5orma R+nter.ata uni.ormaR este principiul de baza al ",%T. +n tot webAul e0ista doar cateva operatii care se pot .ace asupra unei resurse. #TTP .urnizeaza patru metode de baza ce descriu operatiile cele mai comune 9 Primirea unei reprezentatii a unei resurse 9 #TTP I,T Crearea unei noi resurse #TTP P*T pentru un *"+ nou sau #TTP P&%T pentru un *"+ deBa e0istent 6odi.icarea unei resurse e0istente9 #TTP P*T %tregerea unei resurse e0istente 9 #TTP D,),T,

Toate aceste operatii sunt su.iciente in realizarea unei arhitecturi de tip ",%T. sa cum am mai spus arhitectura ",%T este una .ara constrangeri. rhitectura .ara constrangeri permite apeluri la .unc>ii? invocari de metode? apelul procedurilor la distan>=? precum :i alte mesaBe care sunt ;n>elese de c=tre un anumit server sau de c=tre un mic subset de componente din arhitectura. ",%T elimin= adAhoc mesaBe :i schimba radical a0a de dezvoltare P+ spre de.inirea componentelor in.orma>ionale care pot .i reg=site :i manipulate. Ln loc de a ad=uga in arhitectura apeluri speciale la .unc>ii sau inter.e>e? servicii noi? ad=uga noi in.orma>ii care pot .i manipulate utiliz<nd cereri standard. *n e0emplu9 ;n loc de o cerere de tipul Raprinde8ecR la un obiectAserver? putem .olosi P*T RtrueR la obiectul http9NNe0emplu.comN8ecNaprinde .urnizat de c=tre server. &biectul http9NNe0emplu.comN8ecNaprinde poate raspunde? de asemenea? la o cerere de tip I,T care va returna adev=rat sau .als. P&%T este o cerere de tipul Rad=uga>i in.orma>iiR care nu are sens pentru bec? de .apt nu are sens nici sa :tergi un bec. Deci? aceste solicit=ri ar e:ua cu un r=spuns care indic= acest .apt. 2.2.& $eprezentari sa cum rezulta si din titlu? intrAo arhitectura ",%T e0ista si notiunea de reprezentare. "esursele nu reprezinta date? ci reprezinta doar ideea creatorului de serviciu web despre cum sa structureze datele. *n server de web nu poate trimite o idSe. Poate trimite un .lu0 de octeti? intrAun .ormat speci.ic si intrAun limbaB speci.ic. st.el putem descrie o reprezentare a unei resurse. )egatura dintre o resursa? *"+ si reprezentarea resursei este prezentata in .igura de mai Bos9

1/

Figura = : $esursa> -$I> $eprezentare 6? $,(

m descris pana acum toate componentele unui stil arhitectural ",%T. Dar care este legatura intre acestea si de unde numele de ",%T? Diagrama de mai Bos descrie modul in care se realizeaza un serviciu web de tip ",%T 9

Figura 1@: $,(

+n imaginea de mai sus clientul re.era o resursa web. "eprezentarea resursei este returnata 2 documentul .html3. $eprezentarea plaseza clientul intrAo anumita stare. poi clientul acceseaza o alta resursa prin apasarea unui linH din documentul 8oein/4/.html. $eprezentarea acestei resurse plaseaza clientul intrAo alta stare. Ca urmare aplicatia client realizeaza un trans5er de stari 6? $,( A. 2.2.' Comparatie $,( vs (."% Pentru a intelege si mai bine conceptul de ",%T vom .ace o comparatie intre arhitectura ",%T si arhitectura de tip "PC si in special protocolul %& P. sa cum am mai spus? un serviciu de tip ",%T .oloseste 4 verbe #TTP9 P*T? P&%T? I,T? D,),T,. ,0emplu de utilizare a acestora pentru un serviciu web ",%T9 I,T Nweather.orecastNK211K #TTPN1.1 %e obtine vremea dintrAo localitate 1$

P&%T Nweather.orecast #TTPN1.1 %e trimite catre server prognoza meteo sub .ormat C6) *n nou *"+ este creat

P*T Nweather.orecastN'!1K1 #TTPN1.1 %e actualizeaza o reprezentare a resursei deBa e0istenta

A D,),T, Nweather.orecastNK211K #TTPN1.1 %e sterge reprezentarea resursei

+n contrast? un serviciu web ce .oloseste %& P are urmatorul e0emplu de utilizare9 6 P&%T Nweather.orecast.asm0 #TTPN1.1 %e trimite un mesaB %& P pentru a obtine vremea dintrAun oras A P&%T Nweather.orecast.asm0 #TTPN1.1 %e trimite un mesaB %& P pentru a crea prognoza meteo pentru un oras "aspunsul este un mesaB %& P A P&%T Nweather.orecast.asm0 #TTPN1.1 %e trimite un alt mesaB %& P pentru a actualiza prognoza meteo A P&%T Nweather.orecast.asm0 #TTPN1.1 %e trimite un alt tip de mesaB pentru a sterge prognoza meteo %e observa ca toate metodele #TTP .olosite sunt P&%T. &peratia ce se e0ecuta asupra resursei se trimite in cadrul mesaBului. +n ",%T nu sAa dorit implementarea de alte protocoale? nu sAa dorit reinventarea rotii de aceea sAa .olosit un protocol deBa e0istent 9#TTP si metodele sale in timp ce in arhitectura de tip "PC sAau creat protocoale precum C6)A"PC sau %& P. +n %& P in.ormatia este in mesaBul %& P9 %.( *weat!er5orecast.asm3 ) %*1.1 T?0ml versionUR1.KR encodingUR*TDA$R standaloneURnoR?V T%& PA,7J9,nvelope 0mlns9%& P,7JUR 0mlns9soapURhttp9NNschemas.0mlsoap.orgNwsdlNsoapNR 0mlns90sdURhttp9NNwww.w3.orgN2KK1NC6)%chemaR 0mlns9wsdlURhttp9NNschemas.0mlsoap.orgNwsdlNRV T%& PA,7J98odFV Twns9get2eat!er 0mlns9wnsURurn9weatherR %& P,7J9 encoding%tFleURhttp9NNschemas.0mlsoap.orgNsoapNencodingNRV TzipCode 0si9tFpeUR0sd9stringRVK211KTNzipCodeV TNwns9get(eatherV TN%& PA,7J98odFV 1'

TN%& PA,7J9,nvelopeV Di.erenta dintre ",%T si %& P 2reprezentantul arhitecturii "PC3 este prezentata mai Bos9

Figura 11: (ervicii 2eb $,(

Figura 12: (ervicii 2eb $%C 5olosind (."%

2K

3. Exemple de implementari de servicii RES

%erviciile ",%T sunt .olosite in tot +nternetul. Cele mai elocvente e0emple sunt prezentate in lista de mai Bos9 mazon1s %imple %torage %ervice 2%33 2htt :))a's*amazon*com)s/3 %ervicii care e0pun protocolul tom Publishing Protocol 2htt :))'''*ietf*org)html*charters)atom u"0charter*html3 6aBoritatea serviciilor web de la 4ahoo 2htt :))develo er*1ahoo*com))
del.icio.us 9

http9NNdel.icio.usNhelpNapiN

3.1 "mazonBs (imple (torage (ervice 7(39 mazon .oloseste ca atat %& P cat si ",%T pentru serviciile web insa un procent de $!W din utilizarea acestora este realizata de catre cele de tip ",%T.

21

Figura 13: Invocarea unui serviciu web $,( de la "mazon.

3.2 Ca!ooA 4ahoo o.era de asemenea servicii ",%T . %erviciul (eb %earch de la 4ahoo este de tip ",%T.ul. %erviciul este limitat la !KKK de interogari pe zi pentru o adresa de +P. 6ai multe detalii despre acesta se gasesc la 9 http9NNdeveloper.Fahoo.comNsearchNwebNJ1Nweb%earch.html %erviciul permite utilizatorilor cautarea de pagini web .olosind o arhitectura ",%T. Cateva reguli prin care se construiesc cereri de tip ",%T sunt prezentate in .igura de mai Bos9

22

!. "etode de dezvoltare de aplicatii in .#E


*ltima tehnologie .olosita de 6icroso.t pentru dezvoltarea serviciilor web este (indows Communication Doundation 2 (CD3. (CD este o plat.orma dezvoltata pentru implementarea serviciilor web ce .oloseste ultimul .rameworH de la 6icroso.t .7,T 3.!? implementand standardele ce stau la baza serviciilor web si asigurand interoperabilitatea intre di.erite plat.orme. *n serviciu (CD poate .i implementat atat .olosind o arhitectura de tip "PC cat si o arhitectura de tip ",%T. Componentele maBore ale unui serviciu de tip (CD necesare pentru a descrie un anumit tip de arhitectura sunt cele de mai Bos 9 23

A dresa 9 unde se gaseste serviciul web A 8inding 9 cum trebuie e0pus catre ceilalalti serviciul web A Contract 9 ce e0pune serviciul web dresa de.ineste unde se gaseste serviciul web. +n .unctie de arhitectura .olosita 9 de tip "PC sau ",%T ? adresa contine .oloseste un *"+ 2 relativ sau absolut3 acesta continand9 protocolul9 #TTP? DTP? masina pe care se a.la serviciul? XPortulY si calea catre serviciul web in cadrul masinii. Dinding6ul 2 )egatura 3 descrie modul in care un serviciu web comunica. st.el in .unctie de arhitectura 2 "PC sau ",%T3 se .olosesc o serie de protocoale precum http?tcp?msmZ ca protocoale de transport? di.erite metode de codi.icare 2 te0t?binarF? %& P? C6)? P%&7A Pava%cript &bBect 7otation 2 ",%T3 . De asemenea sunt implementate si numeroase restrictii de securitate.

<s2s'em.service/odel> <services> <service n-me=%OrderService.Order/-n-ger% <9-- 4se :-se -ddress $rovided :2 &os' --> <end$oin' -ddress=%&''$#((&os'#8080(OrderService% :inding=%)s;''$1inding% con'r-c'=%OrderService.<Order/-n-ger% (> <(service> <(services> <(s2s'em.service/odel>

Figura 13: -n e3emplu de 5isier de con5igurare pentru un serviciu web 2CF

Contractul de.ineste ceea ce serviciul comunica. ,0ista doua tipuri de contracte 9 o %ervice contract 9 contractul pe care il e0pune serviciul o Data contract 9 datele care se pot schimba cu serviciul *n e0emplu de contract implementat in 6icroso.t.7,T .olosind limbaBul C[ este prezenta mai Bos9
(( =e>ine - service con'r-c'. ?Service@on'r-c'A!-mes$-ce=%&''$#((/icroso>'.Service/odel.S-m$les%BC $4:lic in'er>-ce <=-'-@on'r-c'@-lc4l-'or D ?O$er-'ion@on'r-c'C @om$lex!4m:er AddA@om$lex!4m:er n1E @om$lex!4m:er n+BF ?O$er-'ion@on'r-c'C @om$lex!4m:er S4:'r-c'A@om$lex!4m:er n1E @om$lex!4m:er n+BF ?O$er-'ion@on'r-c'C @om$lex!4m:er /4l'i$l2A@om$lex!4m:er n1E @om$lex!4m:er n+BF ?O$er-'ion@on'r-c'C @om$lex!4m:er =ivideA@om$lex!4m:er n1E @om$lex!4m:er n+BF G

Figura 1#: De5inirea unui contract pentru serviciu web

24

$.%oncluzii
%erviciile web au devenit o necesitate in ziua de astazi deoarce simpli.ica cu mult +nternetul prin asigurarea unei arhitecturi distribuite. Practic acum o companie nu mai este obligata sa implementeze de .iecare data o aplicatie .oarte des intalnit ci poate accesa un serviciu web pentru a obtine in.ormatia dorita. De aici rezulta reutilizabilitatea serviciilor web. %erviciile web au o arhitectura modulara? devenind ast.el scalabile. Cele doua arhitecturi o.era doua variante asupra serviciilor web 9 o varianta ce aduce comple0itate mesaBului transmis intre receptor si .urnizor si o o varianta simpla ce a pus in valoare arhitectura +nternetului. rhitectura "PC2%& P3 este o arhitectura comple0a ce .oloseste .oarte multe protocoalte pentru a realiza cone0iunea dintre client si serviciul web? dar in acelasi timp este mult mai usor de .olosit de catre client pentru ca are un contract bine de.init. Ioogle .oloseste servicii de tip %& P. rhitectura ",%T este una simpla? asa cum am mai spus? dar serviciile ",%T sunt mai greu de utilizat de catre client.Clientul trebuie sa inteleaga inter.ata uni.orma a serviciului. Toate serviciile de la 4ahoo .olosesc ",%T? inclusiv DlicHr? del.icio.us.? technorati. Diecare arhitectura are avantaBele si dezavantaBele ei . &ricare dintre arhitecturi este aleasa? ea trebuie sa .ie bine documentata pentru o utilizare usoara de catre client.

&. Acronime 'olosite


XML G eCtensible 6arHup )anguage &'ML A )8per e3t ;arEup /anguage SOA! G %imple &bBect cess Protocol &''! G #FperTe0t transport Protocol (S)L G (eb %ervice Description )anguage #))I G *niversal Description and DiscoverF $*S' G "epresentational %tate Trans.er #$I A *ni.orm "esource +denti.ier

(. )ibliogra'ie
2!

!ervicii 'e" de la 2mazon: Xhttp9NNaws.amazon.comNs3N[resourcesY !tudiu des re (E!T 9 X http9NNwww.computerworld.comNactionNarticle.do? commandUview rticle8asic\article+dU2'/424\sourceUrssOtopic11Y )eonard "ichardson?%am "ubF A (E!Tful #e" !ervices 22KK/ K!3 ? oreillF? 2KK/ #e"3!ervices3Essentials.pd.? &O"eillFO2KK3 (E!T vs !42P 9 Xhttp9NNwww.pete.reitag.comNitemN431.c.m Arest vs %& PY !42P Tutorial 9 Xhttp9NNwww.w3schools.comNsoapNde.ault.aspY 2rhitectura serviciilor 'e" 9 Xhttp9NNwww.w3.orgNT"NwsAarchNY !ervicii 'e" 9 Xhttp9NNwww.serviceAarchitecture.comNwebAservicesNarticlesNwebOservicesOe0plained.htmlY !ervicii 'e" in *5ET 9 Xhttp9NNwww.codeproBect.comN]8NC6)NDot7et(eb%erviceConcepts.asp0Y (E!T9 Xhttp9NNwww.0.ront.comN",%TA(ebA%ervices.htmlY http9NNwww.w3schools.comNwebservicesNwsOplat.orm.asp http9NNwww.w3.orgN2KK3NTalHsNK!21AhhAwsaNslide3A2.html http9NNwww.w3schools.comNwebservicesNwsOwhF.asp

&. Anexe

*ista 'iguri+
Digura 19 %erviciu web de baza ............................................................................................................3 Digura 29 +nteractiunea web traditionala................................................................................................4 Digura 39 +nteractiunea serviciilor web..................................................................................................4 Digura 49 Dunctionarea unei serviciu web de tip "PC...........................................................................Digura !9 "olurile din cadrul unui serviciu de tip "PC si interactiunea dintre acestea........................./ Digura -9 %tiva serviciului web .............................................................................................................$ Digura /9 %tructura unui mesaB %& P.................................................................................................1K Digura $ 9 Procesul *DD+....................................................................................................................14 Digura ' 9 "esursa? *"+? "eprezentare AV ",%T................................................................................1$ Digura 1K9 ",%T .................................................................................................................................1$ Digura 119 %ervicii (eb ",%T............................................................................................................2K Digura 129 %ervicii (eb "PC .olosind %& P.....................................................................................2K 2-

Digura 139 *n e0emplu de .isier de con.igurare pentru un serviciu web (CD..................................24 Digura 149 De.inirea unui contract pentru serviciu web......................................................................24

2/

S-ar putea să vă placă și