Il Simple Object Access Protocol è un protocollo basato su XML che consente a due applicazioni di
comunicare tra loro sul web.
SOAP definisce il formato dei messaggi che due applicazioni possono scambiarsi utilizzando i protocolli Internet, come
ad esempio HTTP, per fornire dati e richiedere elaborazioni. Il protocollo è indipendente dalla piattaforma hardware e software
ed è indipendente dal linguaggio di programmazione utilizzato per sviluppare le applicazioni comunicanti.
Grazie a questo protocollo, il concetto di web come piattaforma per la pubblicazione di documenti contenenti informazioni fruibili da esseri
umani cambia radicalmente. È possibile affiancare alla pubblicazione classica delle pagine web una pubblicazione delle informazioni destiante alle applicazioni.
Questo nuovo tipo di pubblicazione costituisce i cosidetti servizi web. Un servizio web è un'applicazione che fornisce funzionalità tramite il web in maniera
indipendente dalla piattaforma utilizzata. I meccanismi che consentono questa indipendenza sono XML e HTTP. |
Messaggi SOAP
Abbiamo detto che SOAP è basato su XML. In effetti, un messagio SOAP, non è altro che un documento XML che descrive una richiesta di
elaborazione. In particolare, un messaggio SOAP è costituito dai seguenti elementi:
- Envelope: rappresenta il contenitore del messaggio e costituisce l'elemento root del documento XML.
- Header: è un elemento opzionale che contiene informazioni globali sul messaggio; ad esempio, nell'header potrebbe essere specificata la lingua di riferimento del messaggio, la data dell'invio, ecc.
- Body: rappresenta la richiesta di elaborazione o la risposta derivata da una elaborazione.
- Fault:se presente, fornisce informazioni sugli errori che si sono verificati durante l'elaborazione; questo elemento può essere presente soltanto nei messaggi di risposta.
È opportuno evidenziare che SOAP definisce soltanto la struttura dei messaggi non il loro contenuto. I tag per descrivere una richiesta di elaborazione o un risultato vengono definiti in uno schema specifico ed utilizzati all'interno della struttura SOAP sfruttando il meccanismo dei namespace.
|