# Servei web

Un servei web (també conegut com a Web Service en anglès) és una col·lecció de protocols i estàndards que serveix per intercanviar dades entre aplicacions. Diferents aplicacions de programari desenvolupades en llenguatges de programació diferents i executades sobre qualsevol plataforma poden utilitzar els serveis web per l'intercanvi de dades en una xarxa com Internet. Aquesta gran interoperatibilitat s'aconsegueix gràcies a l'adopció d'estàndards oberts. Les organitzacions OASIS i W3C són les responsables de l'arquitectura i reglamentació dels serveis web. Per garantir la interoperatibilitat entre les diferents implementacions existeix un organisme, el WS-I, que és l'encarregat d'especificar de forma exhaustiva tots els aspectes d'aquests estàndards.

## Estàndards usats

* Web Services Protocol Stack: Amb aquest nom fem referència al conjunt de protocols i estàndards relacionats amb els serveis web.
* XML: És el format estàndard que es fa servir per representar les dades que s'han de transmetre.
* SOAP o XML-RPC: Principals protocols que es fan servir per establir la comunicació entre les diferents parts.
* Altres protocols: També es poden fer servir altres protocols per enviar les dades en XML. Per exemple es poden fer servir protocols com HTTP, FTP, o SMTP.
* WSDL: És el llenguatge que es fa servir per definir la interfície pública del servei. És una descripció, feta en XML, que ens defineix tots els aspectes necessaris per establir la connexió amb un web service en concret.
* UDDI: Protocol per publicar la informació dels serveis web que estan disponibles. Això permet a les aplicacions localitzar quins serveis estan disponibles.
* WS-Security: És el protocol de seguretat que garanteix l'autenticitat dels diferents actors i la confidencialitat de les dades que s'envien. És un protocol acceptat per l'OASIS.

## Prestacions

* Aporten interoperatibilitat entre aplicacions molt diverses, en diverses plataformes, diversos llenguatges de programació i de diversos propietaris.
* Els serveis web fomenten l'ús dels estàndards i protocols basats en text, cosa que fa més fàcil accedir al seu contingut i entendre'n el seu funcionament.
* Al funcionar sobre HTTP, poden aprofitar-se de tots els sistemes de seguretat firewall existents sense la necessitat de canviar les regles de filtrat.
* Permeten fàcilment oferir serveis integrats que es basin en serveis de diferents propietaris i distribuïts geogràficament.
* Permeten interoperar de forma transparent diferents plataformes.
* Per realitzar transaccions no poden comparar-se amb el grau de desenvolupament que tenen els estàndards oberts de computació distribuïda com per exemple el CORBA.
* El seu rendiment és baix si es compara amb altres models de computació distribuïda com són RMI, CORBA, o DCOM. Aquest és el principal desavantatge derivat d'adoptar un format basat en text.

## Eines i utilitats de desenvolupament

Segons el llenguatge de programació del que esteu fent ús, hi haurà diferents eines i utilitats de desenvolupament.

### Eines per a Java

* TCPMonitor: És una eina que permet veure els missatges de text XML que s'intercanvien el client i el servei web.

## Vegeu també

* Aplicació web
* Informàtica al núvol
* Web 2.0

## Enllaços externs

* Article SOAP vs XML-RPC Arxivat 2007-03-11 a Wayback Machine.