Arhitectura software bazat ă pe servicii este din ce în ce mai larg acceptat ă și utilizat ă în [621563]

Introducere

Arhitectura software bazat ă pe servicii este din ce în ce mai larg acceptat ă și utilizat ă în
contextul actual pe care l -a prins evolutia Web 2.0.
SOA (Service -Oriented Architecture) este un tip de arhitectura software care presupune o
abordare modularizat ă asupra dezvolt ării aplica ției, aceasta fiind divizat ă în unit ăți distincte dar
interoperabile – numite servicii – care sunt puncte de acces la func ționalit ățile pe care aplica ția le
furnizeaz ă. Capacitatea mare de reutilizare a acestor servicii, provenite din diferite surse, în cad rul
unor aplica ții diferite este una din caracteristicile definitorii ale arhitecturilor software bazate pe
servicii, SOA fiind deseori vazut ă ca o evolu ție a program ării distribuite și modulare.

Generalități ale conceptului de Serviciu Web

Potrivit sursei [1], "Un Serviciu Web este orice serviciu disponibil pe Internet, care
folosește un sistem standardizat de trasmitere de mesaje XML, și nu este legat de niciun sistem de
operare sau limbaj de programare." .
Interoperabilitatea Serviciiilor W eb este ilustrată și în figura de mai jos, reprezentând două
calculatoare ce comunică doar prin mesaje XML.

Figur a 1: Arhitectura unui Serviciu Web

Pentru a se utiliza transmiterea de mesaje XML există mai multe alternative, precum XML –
RPC (Remote Pr ocedure Call) sau protocolul SOAP, dar și metodele GET/POST ale
protocolului HTTP, metode care permit parsarea documentelor XML .

1
Urmarind simplitatea arhitecturii descris ă în figura 1, un Serviciu Web ar trebui s ă aibă
următoarele propiet ăți:
– să fie disponibil prin Internet sau prin rețele private (intranet) ;
– să folose ască un sistem standardizat de transmitere de mesaje prin XML ;
– să nu depind ă de niciun sistem de operare sau limbaj de programare ;
– să fie auto-descriptibil printr -o gramatic ă XML ;
– să fie usor de g ăsit prin intermediul unui mecanism simplu .

Modalități de implementare a S erviciilor Web

Conceptul de Serviciu Web defineste o aplicație web de tip client -server în care serverul
reprezintă un furnizor de servicii (denumit și "Service Endpoint") și care este accesibil unor aplicații
client pe baz a adresei URL a serviciului. At ât clien ții cât și serverul pot fi tratate ca dou ă entități
diferite ce ruleaz ă pe platforme diferite și pot fi scrise în limbaje diferite, dar vor comuni că prin
protocoale standard HTTP, XML, SOAP etc.

Deci proprietatea esențială descrisă astfel pentru Serviciile Web este aceea c ă asigură
operabilitatea unor aplicații software ce au fost implementate pe platforme diferite, folosindu -se
instrumen te diferite. Aplicațiile sunt slab -cuplate ("loosely coupled"), ceea ce înseamnă că ele
comunică strict prin mesaje standard, neavând alte dependințe.

Furnizorul de servicii expune pe Internet un API (Application Program Interface), acesta
reprezentând o serie de metode ce vor putea fi apelate de către clienți. Aplicația client va trebui doar
să cunoască URL -ul furnizorului de servicii (a serverului) și metodele prin care poate avea acces la
serviciile oferite. Toate aceste elemente vor fi prezentate în co nținutul mesajului de tip cerere, care
va fi trimis de către client.

Principala diferență care există între o aplicație clasică Web, respectiv un Serviciu Web este
ilustrată prin formatul documentelor primite de client și a modului cum sunt folosite: într-o aplicație
Web, clientul primește documente HTML transformate de browser în paginile afișate, în timp ce
clientul unui Serviciu Web primește un document XML (sau JSON) folosit de aplicația
client, dar care nu se afisează direct pe ecran , decât în anumite programe de verificare a Serviciilor
Web. [4]

2
Din punct de vedere al tehnologiilor folosite, se pot distinge două mari categorii de Servicii
Web (conform [3] si [2]) :
– Servicii de tip SOAP (Simple Object Access Protocol) și
– Servicii d e tip RESTful,
la baza c ărora stau două mari arhitecturi, și anume:
– SOA (Service -Oriented Architecture) și
– REST (R Epresentational State Transfer),
care diferă atât în procesarea datelor, precum și în modul în care oferă serviciile.

Figur a 2: REST si SOAP [4]

SOAP – reprezintă un protocol standardizat definit de standardul W3C, folosit pentru
transmiterea mesajelor de tip cerere sau răspuns. Transmiterea mesajelor se realizează folosindu -se
formatul XML, atfel că datele sunt independente de pl atformă. Mesajele SOAP sunt transmise între
aplicațiile de tip furnizor și aplicațiile de tip client, prin intermediul structurilor SOAP. [3]

REST – este o arhitectură ce rulează pe protocolul HTTP și asigură interacțiu nea între clienți
și servicii, avâ nd un număr limitat de operații. E ste o alternativă pentru SOAP si utilizeaza în locul
cererilor de tip XML, URL -uri simple, si spre deosebire de SOAP, care oferă răspunsurile în format
XML, REST oferă mai multe formate pentru răspuns: X ML, JSON , CSV .[3]

3
Scurta prezentare SOAP

SOAP se bazează exclusiv pe XML pentru a furniza servicii de mesagerie. Ini țial, Microsoft
a dezvoltat SOAP pentru a înlocui tehnologii mai vechi care nu funcționau bine pe Internet, cum ar
fi Distributed Component Object Model (DCOM ) și Common Object Request Broker Architecture
(CORBA). Aceste tehnologii au esuat deoarece se bazează pe mesaje binare; mesajele XML pe care
le utilizează SOAP funcționează mai bine pe Internet. [7]

După o lansare inițială, Microsoft a trimis SOAP către I nternet Engineering Task Force
(IETF) unde a fost standardizat. SOAP a fost conceput pentru a putea fi extins cu usurinta, astfel
încât are tot felul de alte acronime și abrevieri asociate cu acesta, cum ar fi WS -Addressing, WS –
Policy, WS -Security, WS -Federation, WS -ReliableMessaging, WS -Coordination, WS –
AtomicTransaction si WS -RemotePortlets. Intreaga lista a Serviciilor Web Standardizate se poate
gasi acces ănd resursa [ 6] – https://www.w3.org/Submission/

XML -ul folosit pentru a face cereri și a primi ră spunsuri în SOAP poate deveni extrem de
complex. În unele limbaje de programare, trebuie să se construiasca aceste cereri manual, lucru care
devine o problem ă, deoarece SOAP este intolerant la erori. Cu toate acestea, unele limbaje pot
utiliza comenzile ra pide pe care SOAP le oferă; care pot ajuta la reducerea efortului necesar pentru
a crea cererea și pentru a analiza răspunsul. De exemplu, atunci cand se lucreaza in limbajul .NET,
niciodată nu este vizibil codul XML.

O mare parte a "magiei" in lucrul cu SOAP este Web Services Description Language
(WSDL). Acesta este un fișier asociat cu SOAP care oferă o definiție a modului în care
funcționează Serviciul Web, astfel încât atunci când se creaza o referință la acesta, IDE -ul (mediul
de dezvoltare) poate aut omatiza complet procesul. Deci, dificultatea utilizării SOAP depi nde în
mare măsură de limbajul î n care se lucreaz ă.

Una dintre cele mai importante caracteristici SOAP este manipularea erorilor încorporate.
Dacă există o problemă cu solicitarea trimisa, r ăspunsul conține informații de eroare care se pot
utiliza pentru a remedia problema. Dat fiind faptul că este posibil ca dezvoltatorul să nu detin ă
Serviciul Web, această caracteristică particulară este extrem de importantă; altfel s -ar lasa la
latitudinea programatorului de a ghicii "de ce lucrurile nu au funcționat". Raportarea erorilor oferă
chiar și coduri standardizate, astfel încât este posibilă automatizarea anumitor sarcini de gestionare
a erorilor în cod. [5]

4

O caracteristică SOAP interesantă este că nu trebuie neapărat utilizat cu protocolul HTTP
(HyperText Transfer Protocol). Există in momentul de fata specificații clare pentru utilizarea SOAP
cu protocolul SMTP (Simple Mail Transfer Protocol) și nu există niciun motiv pentru care nu se
poate uti liza impreuna cu alte protocoale de transport.

Scurta prezentare REST

Mulți dezvoltatori au gasit SOAP incurcat și greu de utilizat. De exemplu, lucrul cu SOAP
în JavaScript înseamnă scrierea de cod in cantit ăți foarte mari pentru a efectua lucruri extrem de
simple, deoarece trebuiesc create st ructuri XML pentru fiecare caz î n parte.

REST este o alternativă mai ușoară. În loc să folosească XML pentru a face o cerere, REST
se bazează pe o adresă URL simplă în multe cazuri. În anumite situații special e, trebuiec furnizate
informații suplimentare, însă majoritatea Serviciilor Web care utilizează REST se bazează exclusiv
pe obținerea informațiilor necesare utilizând abordarea URL. REST poat e folosi patru verbe diferite
HTTP 1.1 (GET, POST, PUT și DELETE / create, read, update si delete ) pentru a efectua sarcini.

Spre deosebire de SOAP, REST nu trebuie să utilizeze XML pentru a furniza răspunsul. De
exemplu, exist ă Servicii Web bazate pe REST, care generează date în formatul CSV (Command
Separated Value) , JSON (JavaScript Object Notation) sau RSS (Really Simple Syndication). Ideea
este că se pot op ține date de ie șire în formatul în care se dore ște, într -o formă ușor de analizat în
limbajul în care se dezolvat ă aplica ția.[8]

Compara ție și concluzii

În zona acestui subiect sunt foarte multe r ânduri scrise cu privire la alegerea un uia dintre
protocoale SOAP sau REST. Trebuie î nsă luat în calcul c ă unele Servicii Web folosesc SOAP și
altele REST, foarte rar ambele, poate doar în cazul în care se face o dez voltare proprie și se
integreaz ă ambele. Un exemplu se Serviciu Web care sus ține ambele protocoale este Amazon.
Decizia final ă const ă în alegerea celui mai bun Serviciu Web care satisface cel mai bine
nevoile și strategia dezvoltatorului, și nu pe ce proto col să se utilizeze.

5
SOAP este cu siguranță alegerea mai "grea" pentru accesul la Serviciile Web. Oferă
următoarele avantaje în comparație cu REST:
– Limbaj, platformă și transport independent (REST necesită utilizarea HTTP);
– Funcționează bine în mediile distribuite enterprise (REST presupune comunicare directă
punct -la-punct);
– Standardizat;
– Oferă extensibilitate semnificativă pre -construită sub forma standardelor WS*;
– Gestionarea corectă a erorilor;
– Automatizare atunci când este utilizat cu anumi te limbaje.

REST este mai ușor de utilizat în cea mai mare parte a situatiilor și este mai flexibil. Are
următoarele avantaje în comparație cu SOAP:
– Nu necesită implement ări scumpe pentru dezvoltarea Serviciul Web;
– Curbă de învățare mai mică;
– Eficient (SOAP utilizează XML pentru toate mesajele, REST poate folosi formate de
mesaje mai mici);
– Rapid (nu este necesară o procesare extinsă);
– Este mai aproape de alte tehnologii Web 2.0 decat SOAP;

Similar Posts