SOAP

Page last edited 1 924 giorni 22 ore fa
Da wiki.betaingegneria.it.

SOAP è un protocollo semplice (come dice il nome: Protocollo Semplice per Accedere ad Oggetti) basato su XML che permette agli applicativi di scambiarsi informazioni usando il protocollo HTTP.

Ognuna di queste affermazioni è vera per SOAP:

  • SOAP è XML. Cioè SOAP è un'applicazione delle specifiche XML.
  • SOAP è un acronimo che sta per Simple Object Access Protocol.
  • SOAP è un protocollo di comunicazione.
  • SOAP è progettato per comunicare attraverso Internet.
  • SOAP può estendere HTTP per inviare e ricevere messaggi.
  • SOAP fornisce un livello di trasporto dati per Web services
  • SOAP può scambiare documenti completi o invocare funzionalità remote (RPC).
  • SOAP può essere usato per la trasmissione indifferenziata di messaggi (broadcasting)
  • SOAP è indipendente dalla piattaforma e dal linguaggio di programmazione.
  • SOAP è il modo con cui XML definisce quali informazioni dare, e come darle.

Anche se SOAP può essere usato in una molteplicità di sistemi di scambio messaggi e attraverso una varietà di protocolli di trasporto, lo scopo principale di SOAP è l'invocazione di funzionalità remote per mezzo del protocollo HTTP.

SOAP rende in grado applicazioni client di collegarsi facilmente con servizi remoti ed invocarne le funzioni.

Altri ambienti, inclusi CORBA, DCOM e Java RMI, forniscono funzionalità simili a SOAP, ma i messaggi di SOAP sono scritti integralmente in XML e quindi sono i soli indipendenti dal linguaggio di programmazione e dalla piattaforma.

WS-Security[modifica]

[Fonte] La specifica WS-Security definisce un'estensione di SOAP che implementa autenticazione, integrità e confidenzialità a livello messaggio. L'obiettivo di questa specifica non è introdurre nuove tecniche, ma quello di utilizzare le soluzioni esistenti in materia di sicurezza delle comunicazioni con SOAP ed i Web Service. Il punto di ingresso di WS-Security è un header SOAP, chiamato <Security>. Contiene i dati riguardanti la sicurezza e le informazioni necessarie per implementare meccanismi come firma e cifratura. Questo elemento può essere presente più volte all'interno del messaggio se le informazioni di sicurezza da inserire sono destinate a differenti destinatari (indicati con l'attributo actor). Due header <Security> non possono avere il solito actor, mentre un header senza actor specificato, può essere consumato da qualsiasi ricevente. Vediamo un esempio di messaggio SOAP con un header <Security>.

  <SOAP:Envelope xmlns:SOAP="...">
    <SOAP:Header>
      <wsse:Security SOAP:actor="..." SOAP:mustUnderstand="...">
        ...
      </wsse:Security>
    </SOAP:Header>
    <SOAP:Body Id="MsgBody">
    </SOAP:Body>
  </SOAP:Envelope>