Un Web Service è una piattaforma che permette la comunicazione tra due applicazioni in ambito Web. Tecnicamente i Web Service nascono per consentire lo scambio di informazioni tra due o più sistemi disaccoppiati tra di loro, principalmente attraverso il protocollo HTTP. Gli attori che interagiscono in una chiamata sono generalmente due:
- un client "l'applicativo che consuma le API"
- un server
Durante il normale ciclo di vita di un'applicazione, essa può essere contemporaneamente sia un client che richiede informazioni ad un software esterno che un server incaricato di fornire risposte ad un altro software (o anche allo stesso software da cui richiede informazioni).
I Web Service sono basati su una pila protocollare, ovvero un insieme di protocolli di rete utilizzati per determinare, localizzare, implementare e consentire l'interazione tra i Web Service. La pila è basata su quattro livelli:
- Trasporto di servizio
- XML Messaging
- Descrizione del servizio WSDL Web Services Description Language XML-based
- Registro dei servizi Universal Description Discovery and Integration
Negli ultimi anni è cambiato qualcosa nella pila protocollare in quanto si favorisce sempre più l'utilizzo del linguaggio JSON rispetto ad XML per scambiare le informazioni.
Attualmente non esiste uno standard de facto per realizzare un Web Service, tuttavia ce ne sono alcuni che sono tra i più diffusi e che analizzeremo in dettaglio nei prossimi capitoli:
- SOAP Simple Object Access Protocol
- XML-RPC JSON-RPC Remote Procedure Call
- REST REpresentational State Transfer