L’architettura XML Web services permette di creare applicazioni distribuite su una rete TCP/IP usando standard come HTTP, XML e SOAP.
La comunicazione tra le applicazioni avviene mediante il protocollo SOAP (Simple Object Application Protocol); SOAP usa HTTP per il trasporto dei dati e XML per la descrizione dei dati da comunicare.
In realtà SOAP oltre ad HTTP può usare anche altri protocolli che siano in grado di trasportare testo, come SMTP; HTTP comunque è il più usato.
I messaggi che un servizio può utilizzare sono descritti in una interfaccia chiamata documento WSDL (Web Services Description Language); una interfaccia WSDL è un documento XML che descrive il formato dei messaggi ammessi e come i messaggi devono essere usati, cioè tutto ciò che è necessario conoscere per scrivere un’applicazione che comunichi con il servizio.
In una applicazione Java il documento WSDL descrive i metodi che possono essere richiamati e con che parametri. Si può creare automaticamente un documento WSDL da una classe Java con utility come Java2WSDL.
Per poter sapere quali servizi sono disponibili, i servizi vengono registrati in un elenco chiamato UDDI (Universal Discovery Description and Integration).
UDDI è un servizio di directory che consente agli utenti di localizzare i servizi Web; in pratica è un indice dei servizi disponibili.
Le applicazioni possono interrogare un archivio UDDI per ottenere informazioni sui servizi disponibili ed esaminarne i documenti WSDL (UDDI può contenere le descrizioni WSDL dei servizi).
La tecnologia degli XML Web Services è supportata e utilizzata dalla piattaforma Microsoft .NET (DotNet).