SOAP è la struttura operativa (framework) estensibile e decentralizzata che può operare sopra varie pile protocollari per reti di computer fornendo tramite messaggi richieste di procedure remote. I richiami di procedure remote possono essere infatti modellati come interazione di parecchi messaggi SOAP. SOAP dunque è uno dei protocolli che abilitano i servizi web.
SOAP può operare su differenti protocolli di rete, ma HTTP è il più comunemente utilizzato e l'unico ad essere stato standardizzato dal W3C, su cui è incapsulato il relativo messaggio. SOAP si basa sul metalinguaggio XML e la sua struttura segue la configurazione head-body, analogamente ad HTML. Il segmento opzionale "header" contiene metadati come quelli che riguardano l'instradamento, la sicurezza, le transazioni e parametri per l'orchestration. Il segmento obbligatorio body trasporta il contenuto informativo e talora viene detto carico utile (payload). Questo deve seguire uno schema definito dal linguaggio XML Schema. SOAP può essere utilizzato in due modi diversi per una chiamata:
Richiesta via SOAP di parametri: il client controlla nel service registry l'oggetto d'interesse e sviluppa il messaggio secondo i parametri ivi contenuti.
General purpose messaging: un programmatore può sviluppare un suo protocollo privato, il client conosce a priori i parametri e non necessita di consultare il service registry. All'interno del corpo del messaggio inserisco i dati scritti nel formato concordato con lo sviluppatore.
Esempi di messaggi SOAP
Come primo esempio, mostriamo come un client può formattare un messaggio SOAP per richiedere informazioni su un prodotto da un immaginario servizio web che simula un magazzino.