SOAP: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
mNessun oggetto della modifica
Migliorato la pagina
 
(119 versioni intermedie di 85 utenti non mostrate)
Riga 1:
{{Nota disambigua||Soap}}
{{Nota disambigua2|Questo articolo riguarda un protocollo per Internet. Se stai cercando [[Soap opera]] o [[Symbolic Optimal Assembly Program]], un linguaggio assembly per [[IBM 650]] vedi le relative voci.}}
[[File:SOAP.svg|thumb|Struttura SOAP]]
In [[informatica]] '''SOAP''' (inizialmente [[acronimo]] di ''simple object access protocol'') è un [[Protocollo di rete|protocollo]] per lo scambio di [[messaggio|messaggi]] tra componenti [[software]].
 
== Descrizione ==
'''SOAP''' (inizialmente [[acronimo]] di '''Simple Object Access Protocol''') è un [[protocollo]] leggero per lo scambio di [[messaggio|messaggi]] tra componenti [[software]], tipicamente nella forma di [[componentistica software]]. La parola ''[[oggetto (programmazione orientata agli oggetti)|object]]'' manifesta che l'uso del protocollo dovrebbe effettuarsi secondo il [[paradigma]] della [[programmazione orientata agli oggetti]].
SOAP è la struttura operativa (''[[framework]]'') estensibile e decentralizzata che può operare sopra varie pile protocollari per [[rete di computer|reti di computer]] fornendo tramite messaggi [[richiamo di procedura remota|richieste di procedure remote]]. I richiami di procedure remote possono essere infatti modellati come interazione di parecchi messaggi SOAP. Esso, dunque, è uno dei protocolli che abilitano i [[Web service|servizi ''web'']].
 
SOAP può operare su differenti [[Protocollo di rete|protocolli di rete]], ma [[Hypertext Transfer Protocol|HTTP]] è il più comunemente utilizzato e l'unico ad essere stato standardizzato dal [[W3C]], su cui è [[imbustamento|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'[[routing|instradamento]], la [[sicurezza]], le [[transazione (basi di dati)|transazioni]] e parametri per l'[[Orchestrazione (informatica)|orchestrazione]]. Il segmento obbligatorio ''body'' trasporta il contenuto informativo e talora viene detto [[Carico utile (informatica)|carico utile]] (''payload''). Questo deve seguire uno schema definito dal linguaggio [[XML Schema]]. SOAP può essere utilizzato in due modi diversi per una chiamata:
SOAP è una struttura operativa (''framework'') estensibile e decentralizzata che può operare sopra varie pile protocollari per [[rete di computer|reti di computer]].
* Richiesta via SOAP di parametri: il ''client'' controlla nel ''service registry'' l'oggetto d'interesse e sviluppa il messaggio secondo i parametri ivi contenuti.
I [[richiamo di procedura remota|richiami di procedure remote]] possono essere modellizzati come interazione di parecchi messaggi SOAP. SOAP dunque è uno dei protocolli che abilitano i [[Web Service|servizi Web]].
* ''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.
 
SOAP può muoversi sopra tutti i protocolli di [[Internet]], ma [[HTTP]] è il più comunemente utilizzato e l'unico ad essere stato standardizzato dal [[W3C]].
SOAP si basa sul metalinguaggio [[XML]] e la sua struttura segue la configurazione [[Head-Body]], analogamente ad [[HTML]].
Il segmento opzionale '''Header''' contiene [[meta-informazione|meta-informazioni]] come quelle che riguardano il [[routing]], la [[sicurezza]] e le [[transazione|transazioni]]. Il segmento '''Body''' trasporta il contenuto informativo e talora viene detto carico pagante, ''payload''. Questo deve seguire uno schema definito dal linguaggio [[XML Schema]].
 
== 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 [[Web service|servizio ''web'']] che simula un magazzino.
 
<syntaxhighlight lang="xml" line="1" copy=1>
Come primo esempio, mostriamo come un cliente può formattare un messaggio SOAP per richiedere informazioni su un prodotto da un immaginario warehouse web service.
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<getProductDetails xmlns="http://magazzino.example.com/ws">
<productId>827635</productId>
</getProductDetails>
</soap:Body>
</soap:Envelope>
</syntaxhighlight>
 
Quello che segue è il testo con cui il magazzino ''web'' potrebbe inviare il suo messaggio di risposta con le informazioni richieste.
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<getProductDetails xmlns="http://warehouse.example.com/ws">
<productId>827635</productId>
</getProductDetails>
</soap:Body>
</soap:Envelope>
 
<syntaxhighlight lang="xml" line="1" copy=1>
Quello che segue è il testo con il quale il warehouse web service
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
potrebbe inviare il suo messaggio di risposta con le informazioni richieste.
<soap:Body>
<getProductDetailsResponse xmlns="http://magazzino.example.com/ws">
<getProductDetailsResult>
<productName>Toptimate, set da 3 pezzi</productName>
<productId>827635</productId>
<description>Set di valigie; 3 pezzi; poliestere; nero.</description>
<price>96.50</price>
<inStock>true</inStock>
</getProductDetailsResult>
</getProductDetailsResponse>
</soap:Body>
</soap:Envelope>
</syntaxhighlight>
 
== Voci correlate ==
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
* [[Web service]]
<soap:Body>
* [[XML-RPC]]
<getProductDetailsResponse xmlns="http://warehouse.example.com/ws">
* [[WSDL]]
<getProductDetailsResult>
* [[UDDI]]
<productName>Toptimate 3-Piece Set</productName>
* [[CORBA]]
<productId>827635</productId>
<description>3-Piece luggage set. Black Polyester.</description>
<price>96.50</price>
<inStock>true</inStock>
</getProductDetailsResult>
</getProductDetailsResponse>
</soap:Body>
</soap:Envelope>
 
==Voci correlate ==
*[[Web Service]]
*[[XML-RPC]]
*[[WSDL]]
*[[UDDI]]
*[[CORBA]]
*[[WS-I Basic Profile]]
 
== Collegamenti esterni ==
* {{Collegamenti esterni}}
*{{en}} Animazione Flash: [http://searchwebservices.techtarget.com/searchWebServices/downloads/what_is_soap.swf What is SOAP]
* {{FOLDOC|Simple Object Access Protocol|Simple Object Access Protocol}}
*{{en}} Introduzione: [http://www.w3.org/TR/soap12-part0/ W3C SOAP primer]
* {{en}}Animazione Flash: [https://media.techtarget.com/searchWebServices/downloads/what_is_soap.swf What is SOAP]
*{{en}} [http://www.w3.org/2000/xp/ attività concernenti XML protocol e servizi Web]
* {{en}}Introduzione: [httphttps://xmlwww.coverpagesw3.org/soap.htmlTR/soap12-part0/ RapportoW3C sullaSOAP tecnologiaprimer]
* {{cita web|https://www.w3.org/2000/xp/|attività concernenti XML protocol e servizi Web|lingua=en}}
*{{en}} [http://soap2corba.sourceforge.net/ ponte bidirezionale fra SOAP e CORBA]
* {{cita web|http://xml.coverpages.org/soap.html|Rapporto sulla tecnologia|lingua=en}}
* {{cita web|http://soap2corba.sourceforge.net/|ponte bidirezionale fra SOAP e CORBA|lingua=en}}
* {{en}}[https://bugzilla.mozilla.org/show_bug.cgi?id=332174 Bugzilla Bug 332174 – Drop SOAP support] Mozilla elimina SOAP in Firefox Gran Paradiso Alpha 7.
 
{{Controllo di autorità}}
{{Portale|internet|telematica}}
 
[[Categoria:Standard W3C]]
[[Categoria:StandardProtocolli basati su XML]]
[[Categoria:AcronimiProtocolli livello applicazione]]
 
[[ca:SOAP]]
[[da:SOAP]]
[[de:SOAP]]
[[en:SOAP]]
[[eo:SOAP]]
[[es:SOAP]]
[[eu:SOAP]]
[[fa:پروتکل دسترسی آسان به اشیاء]]
[[fi:SOAP]]
[[fr:Simple Object Access Protocol]]
[[gl:Simple Object Access Protocol]]
[[he:SOAP]]
[[id:SOAP]]
[[ja:Simple Object Access Protocol]]
[[nl:Simple Object Access Protocol]]
[[pl:Simple Object Access Protocol]]
[[pt:SOAP]]
[[ru:SOAP]]
[[sv:SOAP]]
[[zh:SOAP]]