SOAP (anche noto come Simple Object Access Protocol) è un protocollo per lo scambio di informazioni in un ambiente decentralizzato e distribuito. Un messaggio SOAP è la trasmissione di informazioni da un mittente a un ricevente. I messaggi SOAP possono essere combinati per eseguire modelli di richiesta/risposta.
SOAP è indipendente dalla modalità di trasporto, ma generalmente viene trasmesso su HTTP affinché possa essere eseguito con l'infrastruttura Internet esistente. SOAP consente il binding e l'uso di servizi Web rilevati definendo un percorso per l'indirizzamento dei messaggi. SOAP è utilizzato per eseguire query UDDI per servizi Web. Il workbench supporta SOAP 1.1.
SOAP è un protocollo basato su XML che definisce tre parti di ciascun messaggio:
SOAP supporta due diversi stili di comunicazione:
RPC (remote procedure call): Richiamo di un'operazione che restituisce un risultato. Generalmente utilizzato con la codifica SOAP che non è compatibile con WS-I.
Stile del documento: Noto anche come stile orientato al documento o al messaggio. Questo stile fornisce un livello di astrazione inferiore e richiede più programmazione.
Negli ambienti di elaborazione distribuiti, gli stili di codifica definiscono come i valori dei dati definiti nell'applicazione, possono essere tradotti da e a un determinato formato di protocollo. Il processo di traduzione è noto come serializzazione e deserializzazione.
La specifica SOAP definisce lo stile di codifica SOAP:
Codifica SOAP: Lo stile di codifica SOAP consente di serializzare/deserializzare i valori dei tipi di dati dai modelli di dati SOAP. Questo stile di codifica è definito nello standard SOAP 1.1 e non è compatibile con WS-I.
WSDL definisce lo stile di codifica Literal XML:
Literal XML: Literal fa riferimento al fatto che dovrebbe essere possibile leggere il documento così com'è. Il documento è serializzato come XMI, che significa che il messaggio XML è compatibile con lo schema in WSDL. Quando si utilizza la codifica Literal, ciascuna parte del messaggio fa riferimento a una definizione di schema concreta. La codifica Literal è compatibile con WS-I.
Lo scopo del modello dati SOAP è di fornire un'astrazione indipendente dal linguaggio per i tipi di dati utilizzati dai tipi di linguaggi di programmazione comuni. Consiste di:
Tutti gli elementi e gli identificativi che comprendono il modello dati SOAP, sono definiti nell'URI dello spazio nomi. Lo standard SOAP definisce le regole per la costruzione dei tipi di dati. Uno schema XML specifico di un progetto deve definire i tipi di dati reali. Gli elementi della specifica SOAP sono definiti in http://schemas.xmlsoap.org/soap/envelope/ e http://schemas.xmlsoap.org/soap/encoding/
Different implementations of the SOAP protocol are available today. For example, the Apache Foundation provides Apache SOAP, which grew out of an IBM® project called SOAP4J, as well as Apache Axis and the IBM WebSphere® run-time environment. The provided Web services tools support Apache SOAP 2.3, Axis 1.0, and IBM WebSphere implementations.
A mapping defines an association between a qualified XML element name, a Java™ class name, and an encoding style. The mapping specifies how, under the given encoding, an incoming XML element with a fully qualified name is converted to a Java class and vice versa.
Per ulteriori informazioni su Apache SOAP, fare riferimento a xml.apache.org/soap per ulteriori informazioni su SOAP fare riferimento a www.w3.org/TR/SOAP