Ce sunt seviciile web?

W3C defineste “serviciu web” ca fiind un software proiectat pentru a suporta interactiunea intre doua masini diferite dintr-o retea. Serviciile web sunt, de multe ori, doar API-uri (Aplication Programming Interfaces) care pot fi accesate peste o retea,servicii web precum Internet-ul.

Un exemplu de serviciu web este SOAP, un protocol bazat pe XML, care foloseste WSDL ca limbaj de descriere.

Un serviciu web este o colecţie de protocoale şi standarde folosite pentru schimbul de date între aplicaţii sau sisteme. Aplicaţii software scrise în limbaje de programare diferite şi care rulează pe diverse platforme pot folosi serviciile web pentru a face schimb de date pe reţea, pe Internet, într-o manieră asemănătoare comunicării inter-procese pe un singur calculator. Interoperabilitatea se datorează standardelor publice folosite.

Remote procedure call (RPC)

Este o tehnologie care pemite unui software sa apeleze o alta procedura (subrutina, functie) pe alta masina (in mod uzual pe alt computer), fara ca programatorul sa fie nevoit sa cunoasca toate detaliile in care cele doua sisteme interactioneaza. Programatorul va scrie acelasi cod indiferent daca va apela subrutina local sau remote.

Primele unelte care au folosit servicii web au fost orientate catre abordarea RPC, si, din acest motiv, acesta a primit suportul masiv al dezvoltatorilor.

Service-oriented Arhitecture

De asemenea, serviciile web au fost folosite pentru a implementa o arhitectura corespunzatoare cu conceptele SOA (Service-oriented arhitecture), unde unitatea de baza a comunicatiei este mesajul, nu operatia. In acest caz, ne referim la servicii “orientate-mesaj”.

Reprezentational State Transfer (REST)

Serviciile web REST incearca sa emuleze HTTP si alte protocoale similare aplicand interfetei constrangeri la un set bine cunoscut de operatii (ex.: GET, PUT, DELETE). In acest caz, accentul cade pe interactiunea cu resursele de stare, decat pe mesaje si operatii.Serviciile web de tip REST pot folosi WSDL pentru a descrie mesaje SOAP peste HTTP, care definesc operatiile.