La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

SOAP (Simple Object Access Protocol) Laurea Magistrale in Informatica Reti 2 (2006/07) dott. Federico Paoloni

Presentazioni simili


Presentazione sul tema: "SOAP (Simple Object Access Protocol) Laurea Magistrale in Informatica Reti 2 (2006/07) dott. Federico Paoloni"— Transcript della presentazione:

1 SOAP (Simple Object Access Protocol) Laurea Magistrale in Informatica Reti 2 (2006/07) dott. Federico Paoloni

2 SOAP - Simple Object Access Protocol2 Agenda Web Service ed XML Stack tecnologico dei Web Service Simple Object Access Protocol Envelope, Header e body Codifica SOAP

3 SOAP - Simple Object Access Protocol3 Web Service ed XML XML è una famiglia di tecnologie: XML 1.0, XML Schema, XML namespace, Xpointer, Xpath, Xlink, XSLT, DOM,... Nel contesto WS la famiglia di tecnologie XML viene utilizzata: per specificare il formato dei messaggi da scambiare per consentire la validazione stessa dei dati scambiati per definire gli stessi WS Si richiede sempre la definizione di un accordo sul significato degli elementi XML utilizzati

4 SOAP - Simple Object Access Protocol4 Tecnologie dei Web Service Linfrastruttura dei WS si basa su diverse tecnologie XML per il trasporto, lo scambio e la trasformazione dei dati tra programmi e applicazioni In particolare: XML (Extensible Markup Language), la base sulla quale sono fondati i Web Service WSDL (Web Service Description Language), un formato XML per descrivere le interfacce esterne dei WS

5 SOAP - Simple Object Access Protocol5 Tecnologie dei Web Service SOAP (Simple Object Access Protocol), un formato XML che fornisce un meccanismo di packaging dei messaggi, attraverso la definizione di una busta per la creazione e trasmissione dei messaggi XML UDDI (Universal Description, Discovery and Integration), un meccanismo per il registry (registrazione) e il discovery (ritrovamento) dei WS, utilizzato per registrare, categorizzare, ritrovare le interfacce WS

6 SOAP - Simple Object Access Protocol6 Stack dei WS

7 SOAP - Simple Object Access Protocol7 Scenario duso Un programma che deve inviare un documento a un Web Service: Trasforma i suoi dati in input in un documento XML, secondo le esigenze del WS Invia il documento in una busta SOAP al WS (descritto in WSDL) Quando il WS riceve un documento, lo parserizza e processa il documento immettendolo in un flusso di elaborazione

8 SOAP - Simple Object Access Protocol8 Introduzione a SOAP Il Simple Object Access Protocol (SOAP) è una delle specifiche più importanti nelle tecnologie WS. SOAP: Definisce un meccanismo per il trasporto dei dati da un punto allaltro della rete Consente al mittente e al destinatario di un documento XML di disporre di un protocollo comune Rappresenta una estensione del protocollo HTTP per lo scambio di messaggi XML: consente la spedizione di messaggi XML su HTTP e la relativa ricezione di una risposta Per gestire correttamente tali messaggi, un server HTTP (Apache o IIS) deve disporre di un SOAP engine (ad esempio Apache AXIS)

9 SOAP - Simple Object Access Protocol9 Introduzione a SOAP Protocollo di comunicazione tra applicazioni Formato per linvio di messaggi Sviluppato per la comunicazione via Internet Platform independent Language independent Basato su XML Semplice ed estendibile Consente il passaggio dei firewall Sviluppato come standard W3C

10 SOAP - Simple Object Access Protocol10 Esempio

11 SOAP - Simple Object Access Protocol11 Introduzione a SOAP Il W3C definisce: Come deve essere strutturato il messaggio SOAP Cosa rappresentano i dati contenuti nel messaggio Le regole di Binding verso un protocollo di trasporto (ad esempio HTTP) Come eseguire attraverso SOAP una chiamata a procedura remota (RPC) I messaggio SOAP utilizzano una sintassi XML, quindi: I SOAP engine devono qualificare elementi e attributi utilizzando i namespace nei messaggi generati I messaggi SOAP non contengono DTD, né Processing Instruction

12 SOAP - Simple Object Access Protocol12 SOAP per scambiare messaggi Lo scambio di messaggi tramite SOAP è fondamentalmente una trasmissione da un mittente ad un destinatario attraverso intermediari Un intermediario SOAP è unapplicazione capace sia di ricevere che di inoltrare messaggi SOAP

13 SOAP - Simple Object Access Protocol13 SOAP e protocolli di trasporto Per ovviare problemi con firewall si è soliti utilizzare SOAP mediante HTTP Questo significa che un messaggio SOAP viene spedito come parte di una richiesta (o risposta) HTTP Unaltra ragione che porta a questa scelta nellutilizzo di SOAP è che praticamente ogni computer connesso ad una rete supporta traffico HTTP Comunicazione semplice e leggera tra due applicazioni eseguite indipendentemente dalla piattaforma e connesse mediante una infrastruttura già esistente

14 SOAP - Simple Object Access Protocol14 Unapplicazione SOAP che riceve un messaggio deve compiere in ordine le seguenti azioni: Identificare tutte le parti del messaggio Verificare che tutte le parti identificate nel passo precedente siano supportate dallapplicazione alla quale è rivolto il messaggio ed elaborarle Se lapplicazione SOAP alla quale è arrivato il messaggio non è la destinazione finale del messaggio stesso, elabora il messaggio aggiungendo o eliminando informazioni in modo da inoltrare soltanto i dati significativi per il destinatario successivo Elaborazione Messaggi

15 SOAP - Simple Object Access Protocol15 CLIENTAPPLICAZIONE Spedizione messaggio Identificazione e verifica delle parti del messaggio Spedizione Risposta Caso in cui lapplicazione soap è il destinatario finale Inoltro del messaggio Elaborazione del messaggio da inoltrare DESTINAZIONE FINALE Caso in cui lapplicazione non e il destinatario finale Spedizione Risposta Elaborazione Messaggi

16 SOAP - Simple Object Access Protocol16 Per rendere più semplice e leggibile un messaggio SOAP si è deciso di costruirlo in modo da somigliare, logicamente, ad una lettera Una busta (Envelope) Informazioni varie per la spedizione del messaggio (Header) Un documento da spedire (Body) Busta contenente le informazioni da spedire Documento con le informazioni richieste Informazioni sulla spedizione (a differenza di una vera lettera con SOAP queste informazioni sono opzionali) Formato Messaggi

17 SOAP - Simple Object Access Protocol17 Più formalmente un messaggio SOAP è un documento XML consistente in: Un elemento SOAP Envelope (obbligatorio) che rappresenta la radice del documento XML; tale elemento DEVE essere presente nel documento, PUO contenere un Header, DEVE contenere un BODY Un elemento SOAP Header (opzionale) contenente informazioni aggiuntive per la comprensione e la spedizione del messaggio; è il primo figlio dellenvelope; può avere elementi figli Un elemento SOAP Body (obbligatorio) contenente le informazioni che si intendono far giungere al destinatario. Al suo interno viene inoltre definito lelemento Fault usato per la gestione degli errori; viene come primo figlio dopo Header Formato Messaggi

18 SOAP - Simple Object Access Protocol18 SOAP Envelope SOAP Header Parti dellHeader SOAP Body Dati da spedire SOAP Fault attributi del messaggio messaggio gestione errori Formato Messaggi

19 SOAP - Simple Object Access Protocol19 Lelemento envelope identifica linizio e la fine del messaggio, in maniera tale che il ricevente sappia quando lintero messaggio è stato ricevuto. Si risolve in questo modo il problema di sapere quando la ricezione è completata e si può iniziare a processare il messaggio. Agisce come meccanismo di packaging … Envelope

20 SOAP - Simple Object Access Protocol20 Nel messaggio SOAP può nascere lesigenza di inserire informazioni non facenti parte del messaggio ma fondamentali per la spedizione del messaggio stesso (legati ad esempi a aspetti di sicurezza, transazioni, ecc.). Esistono alcuni attributi standard che non necessitano di nessun previo accordo fra le parti è possibile definire, oltre agli attributi standard, dei propri attributi Gli elementi figli dellheader sono definiti da un nome composto da URI di namespace e nome locale Header

21 SOAP - Simple Object Access Protocol21 Header Tre attributi per gli elementi nellHeader Actor Indirizza gli elementi dellheader verso un particolare endpoint mustUnderstand Indica lobbligatorietà o meno di processare linformazione a cui si applica, se il nodo non è in grado di comprendere lelemento si ha un fault encodingStyle Definisce i tipi di dati usati nellelemento

22 SOAP - Simple Object Access Protocol22 Body Contiene informazioni per il destinatario del messaggio I figli del body devono essere qualificati da un namespace Definisce lelemento fault Apples Non fanno parte di SOAP, sono application-specific

23 SOAP - Simple Object Access Protocol23 Fault element Se è presente deve apparire come figlio del body Faultcode Codice del fault Faultstring Informazioni umane-readable sul fault Faultactor Informazioni su chi ha causato il fault Detail Informazioni application-specific relative al body

24 SOAP - Simple Object Access Protocol24 Codici di fault VersionMismatch Namespace non valido per lEnvelope MustUnderstand Un elemento MustUnderstand=1 non è stato compreso Client Il messaggio è malformato o contiene informazioni incorrette Server Ci sono problemi con il server ed il messaggio non può essere processato

25 SOAP - Simple Object Access Protocol25 Protocollo HTTP Il client invia una richiesta HTTP che trasporta il messaggio SOAP POST /item HTTP/1.1 Content-Type: application/soap+xml; charset=utf-8 Content-Length: 200 Il server processa la richiesta e invia la risposta 200 OK Content-Type: text/plain Content-Length: 200

26 SOAP - Simple Object Access Protocol26 SOAP Request POST /InStock HTTP/1.1 Host: Content-Type: application/soap+xml; charset=utf-8 Content-Length: nnn IBM

27 SOAP - Simple Object Access Protocol27 SOAP Response HTTP/ OK Content-Type: application/soap+xml; charset=utf-8 Content-Length: nnn 34.5

28 SOAP - Simple Object Access Protocol28 Codifica SOAP Ogni valore è codificato in un elemento value SOAP supporta i tipi semplici definiti da XML Schema Gli array sono codificati come sequenze di elementi La stringa...

29 SOAP - Simple Object Access Protocol29 Considerazioni progettuali dellinterfaccia pubblica di un WS Occorre valutare interfaccia pubblica implementazione interna Linterfaccia pubblica non necessariamente riflette in maniera speculare limplementaizone interna ne espone una parte! Considerare aspetti di latenza della rete ed efficienza

30 SOAP - Simple Object Access Protocol30 Considerazioni progettuali dellinterfaccia pubblica di un WS La sicurezza non si limita alla crittografia Si deve considerare quali informazioni rendere disponibili Conflitti tra usabilità del servizio e sicurezza dei dati esposti Le richieste SOAP viaggiando attraverso la rete sono intrinsecamente più lente delle chiamate locali Per praticità è sempre bene minimizzare linterazione tra client e server Lefficienza è valutata considerando client, server e collegamento di rete

31 SOAP - Simple Object Access Protocol31 Riferimenti Autori Vari, Java Web Service Tutto & Oltre, Apogeo SOAP Version 1.2 Part 0: Primer W3C Recommendation 24 June 2003


Scaricare ppt "SOAP (Simple Object Access Protocol) Laurea Magistrale in Informatica Reti 2 (2006/07) dott. Federico Paoloni"

Presentazioni simili


Annunci Google