Categories: GuidaProgrammazione

Comunicazioni XML con il Protocollo SOAP

Con la crescente diffusione del web si sente maggiormente la necessità di creare applicazioni distribuite tra diversi sistemi operativi, con differenti linguaggi di programmazione e la presenza di firewall nelle reti. SOAP ( Simple Object Access Protocol ) si propone di superare questi problemi attraverso dei messaggi XML trasportati attraverso il protocollo HTTP. L’invocazione di un servizio remoto prevede la creazione di un particolare tipo di documento XML con l’impostazione di opportuni header HTTP da inviare ad un server web. Il fatto che XML viaggi su protocollo HTTP comporta tutta una serie di benefici, a cominciare dalla mancanza di barriere come i firewall che di solito non bloccano il traffico web, inoltre queste tecnologie sono universalmente riconosciute come standard da molti sistemi operativi eterogenei tra loro, ecco perché tramite SOAP è possibile esporre qualsiasi tipo di servizio.
Il protocollo SOAP prevede due tipi di messaggi: Call e Response. Il primo consente l’invocazione di un servizio remoto attraverso delle opportune intestazioni HTTP in cui si specificano le informazioni sul destinatario e sul servizio invocato, mentre il corpo in XML contiene dei parametri da passare al server. Un tipico messaggio di questo tipo potrebbe essere:

POST /XXXServer HTTP/1.1
Host: www.XXXX.com
Content-Type: text/xml
Content-Length: n
SOAPAction: www.XXXX.com/ordini.php

<SOAP-ENV:Envelope
    xmlns:SOAP-ENV="xxxxxxx/>
 <SOAP-ENV:Body>
  <m:ordina xmlns:m="xxxxxx">
   <Titolo>Articolo X</Titolo>
   <Codice>Cod XXXX</Codice>
  </m:ordina>
 </SOAP-ENV:Body>
<SOAP-ENV:Envelope>

La parte iniziale del messaggio raggruppa le intestazioni HTTP che specificano il server da contattare ed il servizio da richiamare, nel documento XML abbiamo invece i parametri relativi per usufruire del servizio.
Una possibile risposta ( response ) che si può avere da una tale richiesta può essere:

HTTP/1.1 200 OK
Content-Type: text/xml
Content-Length: n

<SOAP-ENV:Envelope
    xmlns:SOAP-ENV="xxxxxxx/>
 <SOAP-ENV:Body>
   <return>24,65 euro</return>
 </SOAP-ENV:Body>
<SOAP-ENV:Envelope>

Questo servizio in pratica recupera i dati da un archivio e mostra il prezzo dell’articolo. Lo scopo principale di SOAP è quindi quello di delineare un protocollo per l’interoperabilità di applicazioni distribuite realizzate con diverse tecnologie. Se lo desiderate potremmo, in futuro, approfondire l’argomento, per il momento guardatevi la pagina del progetto SOAP per il server web Apache.

Share
Giampaolo Rossi

Sviluppatore di software gestionale da oltre 28 anni.

Recent Posts

MerciGest: il gestionale di magazzino semplice e gratuito

MerciGest è il software gestionale gratuito per Windows che semplifica la gestione del magazzino: giacenze,…

5 giorni ago

Software gestionali con SQL Server: un archivio unico, accessibile ovunque

Tutti i nostri software gestionali possono essere collegati a un database SQL Server, consentendo l’accesso…

6 giorni ago

Come iniziare ad usare MerciGest in 5 minuti

MerciGest è semplice e immediato: basta scaricare e installare il programma per iniziare subito. Al…

1 settimana ago

Cos’è MerciGest e a chi serve

MerciGest è un gestionale di magazzino per Windows pensato per negozi, piccole imprese e artigiani…

2 settimane ago

Introduzione alla Standard Template Library (STL)

La Standard Template Library (STL) è una delle componenti più potenti del C++. Fornisce una…

7 mesi ago

Un Abbonamento per Tutti i Software

Sono arrivato alla convinzione che un abbonamento per tutti i miei software gestionali sia il…

2 anni ago