Un serviciu web este o metodă de comunicare între două dispozitive electronice printr-o rețea. Este o funcție software furnizată la o adresă de rețea pe web cu serviciul întotdeauna activ ca în conceptul de informatica utilitară. W3C definește un serviciu Web, în general, ca:
un sistem software proiectat pentru a suporta interacțiunea mașină-la-mașină interoperabilă printr-o rețea.
Serviciile web sunt adesea doar interfeţe de programare a aplicaţiilor (API) web care pot fi accesate într-o reţea, precum Internetul, şi executate pe un sistem la distanţă care găzduieşte serviciile solicitate.
Definiţia W3C pentru serviciul web include multe şi diferite sisteme, dar în terminologia curentă termenul se referă la clienţi şi servere care comunică folosind mesaje XML conforme cu standardul SOAP. În astfel de sisteme se găseşte adesea o descriere care poate fi citită de maşină a operaţiilor oferite de serviciul scris în Web Services Description Language (WSDL). Aceasta nu este o cerinţă a terminalului SOAP, dar este o precondiţie pentru generarea automată de cod de către client în multe modele SOAP Java şi .NET (precum Spring, Apache Axis2 şi Apache CXF fiind excepţii notabile). Unele organizaţii din domeniu, precum WS-I, impun atât SOAP cât şi WSDL în definiţia lor pentru serviciul web.
Grupul de lucru W3C Web Services Architecture a definit o Arhitectură de Servicii Web, care necesită o implementare specifică a unui „serviciu web”. Astfel:
[un serviciu web] are o interfață descrisă într-un format procesabil de mașină (în special WSDL). Alte sisteme interacționează cu serviciul web într-un mod prescris de descrierea sa, folosind mesaje SOAP (Simple Object Access Protocol), de obicei transmise prin HTTP cu o serializare XML în conjuncție cu alte standarde legate de web.
Cele mai multe servicii web nu adoptă această arhitectură complexă.
W3C prevede, de asemenea:
Putem identifica două clase majore de servicii web:
Servicii web conforme REST, în care scopul principal al serviciului este de a manipula reprezentări XML de resurse web, folosind un set uniform de operațiuni fără stare; și
Servicii web arbitrare, în care serviciul poate expune un set arbitrar de operații.
Servicii web intr-o arhitectura orientata pe servicii
Explicație
Multe organizații folosesc sisteme software multiple pentru management. Diferite sisteme software de multe ori trebuie să facă schimb de date între ele, și un serviciu web este o metodă de comunicare care permite la două sisteme software să schimbe aceste date pe internet. Sistemul software care solicită date este numit solicitant de serviciu, în timp ce sistemul software care va procesa cererea și va furniza date este numit furnizor de servicii.
Software diferite pot fi construite folosind diferite limbaje de programare, și, prin urmare, este nevoie de o metodă de schimb de date care nu depinde de un anumit limbaj de programare. Cele mai multe tipuri de software pot, cu toate acestea, interpreta etichete XML. Astfel, serviciile web pot utiliza fișiere XML pentru schimbul de date.
Trebuie să fie definite reguli de comunicare între diferite sisteme, cum ar fi:
-
Cum un sistem poate cere date de la un alt sistem
-
Care parametrii specifici sunt necesari în cererea de date
-
Care ar fi structura datelor produse. În mod normal, datele sunt schimbate în fișiere XML, și structura fișierului XML este validată cu un fișier .xsd.
-
Ce mesaje de eroare să se afișeze atunci când nu se observă o anumită regulă de comunicare, pentru a face mai ușor depanarea.
Toate aceste reguli de comunicare sunt definite într-un fișier denumit WSDL (Web Services Description Language), care are extensia .wsdl.
(Arhitectura serviciilor web: furnizorul de servicii trimite un fișier WSDL pentru UDDI. Solicitantul de servicii contactează UDDI pentru a afla cine este furnizorul de date de care are nevoie, și apoi intră în contact cu furnizorul de servicii folosind protocolul SOAP. Furnizorul de servicii validează cererea de servicii și trimite datele structurate într-un fișier XML, folosind protocolul SOAP. Acest fișier XML va fi validat din nou de către solicitantul de serviciu, folosind un fișier XSD.)
Un director numit UDDI (Universal Description, Discovery and Integration) definește ce sistem de software ar trebui să fie contactat pentru ce tip de date. Deci, atunci când un sistem software are nevoie de un anumit raport/date, merge la UDDI și află ce alt sistem poate contacta pentru a primi aceste date. Odată ce sistemul software află care alt sistem trebuie să contacteze, contactează acel sistem folosind un protocol special numit SOAP (Simple Object Access Protocol). Sistemul furnizorului de servicii validează în primul rând cererea de date prin referire la fișierul WSDL, iar apoi procesează cererea și trimite datele în temeiul protocolului SOAP.
Lasă un răspuns