SOAP (Simple Object Access Protocol)

Slides:



Advertisements
Presentazioni simili
I Namespace Mario Arrigoni Neri.
Advertisements

WWW XML-Namespace Fabio Vitali. WWW Fabio Vitali2 Introduzione Qui esaminiamo: u Lesigenza e il funzionamento dei Namespace in XML.
Web Services Mario Arrigoni Neri.
Introduzione ad XML Mario Arrigoni Neri.
Gli specialisti degli eDocuments
Unità D2 Database nel web. Obiettivi Comprendere il concetto di interfaccia utente Comprendere la struttura e i livelli che compongono unapplicazione.
I dati: tipi e strutture U.D. 9 pag 334 L.S. Tron 4TC a.s. 2006/07.
1 Introduzione ad XML. 2 Problemi con SGML Complesso da comprendere ed utilizzare Non è pensato per la rete: mancano link ipertestuali e specifiche grafiche.
Sistema di gestione flussi documentali
Laurea Magistrale in Informatica Reti 2 (2007/08)
XSLT (eXtensible Stylesheet Language Transformation) Laurea Magistrale in Informatica Reti 2 (2005/06) dott. Francesco De Angelis
XSLT UNIVERSITA DI CAMERINO Corso di laurea in Informatica Barbara Re Anno Accademico
Web Services.
P. Sanna 1 I web services TICO Corso di laurea in Informatica Università di Pisa a.a Pierluigi Sanna.
Query OQL e XQUERY a confronto
Re-engineering del wrapper XML Schema per il sistema MOMIS
Università degli Studi di Modena e Reggio Emilia Facoltà dIngegneria - sede di Modena Corso di Laurea in Ingegneria Informatica Interoperabilità di componenti.
Università degli Studi di Modena e Reggio Emilia
Java2 Esercitazioni del corso di Sistemi Informativi Marina Mongiello
Numerico-Vespignani, Informatica per le scienze umanistiche, Il Mulino, La rappresentazione dellinformazione testuale e i linguaggi di codifica.
Introduzione ai Web Services. E' un nuovo meccanismo RPC ottimizzato per l'uso in Internet Un qualunque Client su una generica piattaforma deve poter.
Progetto MODA-ML Biella, 30 novembre 2001 Sistema di interscambio messaggi Luca Mainetti HOC - Hypermedia Open Center Dipartimento di Elettronica e Informazione.
WWW Link in XML Fabio Vitali. WWW Fabio Vitali2 Introduzione Qui esaminiamo: u XLink.
Anno Accademico Corso di Informatica Informatica per Scienze Biologiche e Biotecnologie Anno Accademico
1 Basi di dati e Web Prof. Stefano Paraboschi Prof. Barbara Pernici.
Progetto realizzato da: Francesco Seccia Matr Marco Spinelli Matr
Programmazione su Reti
Architettura del World Wide Web
Perché.Net e non più COM/DCOM ? Superamento dei problemi di COM: Richiede una infrastruttura "non semplice" da ogni applicazione (ad esempio Class Factory.
Posta elettronica ( ) chiocciola" comunemente letta at Identificativo dellutente Identificativo del computer centrale sul quale risiede.
L'innovazione Tecnologica Per Il Federalismo Efficiente Roma 30 Giugno 2005 Sistema Pubblico di Cooperazione Applicativa.
SOA…overview La parola d’ordine delle situazioni di sviluppo applicativo odierne è integrazione. Le applicazioni sviluppate si trovano a condividere flussi.
Open Archives Initiative e Metadata harvesting ICCU Seminario nazionale sui Metadati Roma 3 aprile 2001 Dr. Valdo Pasqui Università di Firenze.
XML Linking Language (XLink)
Linguaggi di markup1 LINGUAGGI DI MARKUP. Linguaggi di markup2 Documenti su Internet Internet permette (tra laltro) di accedere a documenti remoti In.
Reti di Calcolatori IL LIVELLO RETE.
APPLICAZIONI WEB In questo corso impareremo a scrivere un'applicazione web (WA) Marco Barbato - Corso di Applicazioni Web – A.A
Esercizio 1 Convertire il seguente DTD (esercizio 1 sui DTD) in XML Schema:
Progetto di una architettura per lesecuzione distribuita e coordinata di azioni Progetto per lesame di Reti di Calcolatori L-S Prof. Antonio Corradi Finistauri.
XSLT Trasformazioni XSL Ing. Luca Sabatucci. XSLT Uno dei vantaggi principali nell'utilizzo dell'Extensible Markup Language è la facilità con cui si possono.
Giorgio Massaro Bologna, 24 Marzo 2004 I MESSAGGI DI SERVIZIO IN MODA-ML Relatore: Tesi di Laurea di: Chiar.mo Prof. FABIO VITALIGIORGIO MASSARO Correlatore:
Corso di Informatica per Giurisprudenza Lezione 7
SISTEMA DI TIPI PER JOLIE
Progetto di Reti di Calcolatori L-S Orchestrazione di servizi WEB
Il modello di riferimento OSI
Basi di Dati e Sistemi Informativi
Sistemi Informativi sul Web
Il metalinguaggio XML: la nuova frontiera per la codifica dellinformazione Relatore: Ing. Marco Porta Tesi di Laurea di: Andrea Mocchi ANNO ACCADEMICO.
Creare pagine web Xhtlm. Struttura di una pagina.
Il World Wide Web Lidea innovativa del WWW è che esso combina tre importanti e ben definite tecnologie informatiche: Documenti di tipo Ipertesto. Sono.
Presentazione del problema Obiettivo: Lapplicazione di Search of Sematic Services permette di ricercare sevizi semantici, ossia servizi a cui sono associati.
Reti di calcolatori 14 novembre 2003 INFORMATICA GENERALE Scienze per Operatori dei Servizi Giuridici Anno Accademico
Corso di Web Services A A Domenico Rosaci 1. Introduzione
Internet: una panoramica
Lezione 8.
Java Enterprise Edition
Progetto Message Queues Service Olivelli Enrico Corso di Reti di Calcolatori LS A.A
Nemesi Creazione e pubblicazione di una rivista online tramite l’utilizzo di Java Message Service.
La posta elettronica o è un servizio Internet grazie al quale ogni utente può inviare o ricevere dei messaggi. La sua nascita risale al 1972,
A.a. 2004/05Tecnologie Web1 Introduzione a XML: Document Type Definition; parser XML; XML-schema; eXtensible Stylesheet Language.
TW Asp - Active Server Pages Nicola Gessa. TW Nicola Gessa Introduzione n Con l’acronimo ASP (Active Server Pages) si identifica NON un linguaggio di.
Lucia Melotti 1/14 Bologna, 7 luglio 2004 Aspetti di sicurezza nello scambio di messaggi XML tra un partner ebXML ed un Web Service di Lucia Melotti Relatore:
Cenni Su SGML, HTML, XML SGML (Standard Generalized Markup Language) è il padre di tutti i linguaggi "Markup" – Lo svantaggio è la "pesantezza" dei suoi.
Java Distributed Event Service Bringing events to J2EE platform Università degli studi di Bologna Corso di Laurea Specialistica in Ingegneria Informatica.
Ingegneria del software Modulo 3 -Tecniche di implementazione Unità didattica 1 -Ingegneria dei componenti Ernesto Damiani Università degli Studi di Milano.
Servizi Internet Claudia Raibulet
Eprogram informatica V anno.
Sistemi distribuiti Sistema distribuito indica una tipologia di sistema informatico costituito da un insieme di processi interconnessi tra loro in cui.
Applicazione Presentazione Sessione Trasporto Rete Data link Fisico OSI Processo / Applicazione Trasporto Rete- Internet Interfaccia di.
Risultati Leapfrog IP per una comunicazione sicura e affidabile Cristiano Novelli ENEA, XML-Lab.
Transcript della presentazione:

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

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

SOAP - Simple Object Access Protocol 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 SOAP - Simple Object Access Protocol

Tecnologie dei Web Service L’infrastruttura 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 SOAP - Simple Object Access Protocol

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 SOAP - Simple Object Access Protocol

SOAP - Simple Object Access Protocol Stack dei WS SOAP - Simple Object Access Protocol

SOAP - Simple Object Access Protocol Scenario d’uso 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 SOAP - Simple Object Access Protocol

SOAP - Simple Object Access Protocol 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 all’altro 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) SOAP - Simple Object Access Protocol

SOAP - Simple Object Access Protocol Introduzione a SOAP Protocollo di comunicazione tra applicazioni Formato per l’invio 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 SOAP - Simple Object Access Protocol

SOAP - Simple Object Access Protocol Esempio <?xml version="1.0"?> <soap:Envelope xmlns:soap="http://www.w3.org/2001/12/soap-envelope" soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding"> <soap:Header> ... </soap:Header> <soap:Body> <soap:Fault> </soap:Fault> </soap:Body> </soap:Envelope> SOAP - Simple Object Access Protocol

SOAP - Simple Object Access Protocol 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 SOAP - Simple Object Access Protocol

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

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 Un’altra ragione che porta a questa scelta nell’utilizzo 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 SOAP - Simple Object Access Protocol

Elaborazione Messaggi Un’applicazione 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 dall’applicazione alla quale è rivolto il messaggio ed elaborarle Se l’applicazione 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 SOAP - Simple Object Access Protocol

Elaborazione Messaggi CLIENT APPLICAZIONE Spedizione messaggio Identificazione e verifica delle parti del messaggio Spedizione Risposta Caso in cui l’applicazione soap è il destinatario finale Inoltro del messaggio Elaborazione del messaggio da inoltrare DESTINAZIONE FINALE Caso in cui l’applicazione non e’ il destinatario finale SOAP - Simple Object Access Protocol

SOAP - Simple Object Access Protocol Formato Messaggi 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) SOAP - Simple Object Access Protocol

SOAP - Simple Object Access Protocol Formato Messaggi 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 dell’envelope; 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 l’elemento Fault usato per la gestione degli errori; viene come primo figlio dopo Header SOAP - Simple Object Access Protocol

SOAP - Simple Object Access Protocol Formato Messaggi SOAP Envelope <names:Envelope dichiarazione namespace> <names:Header> attributi del messaggio </names:Header> <names:Body> messaggio <names:Fault> gestione errori </names:Fault> </names:Body> </names:Envelope> SOAP Header Parti dell’Header SOAP Body Dati da spedire SOAP Fault SOAP - Simple Object Access Protocol

SOAP - Simple Object Access Protocol Envelope L’elemento envelope identifica l’inizio e la fine del messaggio, in maniera tale che il ricevente sappia quando l’intero 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 <SOAP-ENV:Envelope xmlns:SOAP-ENV= http://www.w3.org/2001/12/soap-envelope> … </SOAP-ENV:Envelope> SOAP - Simple Object Access Protocol

SOAP - Simple Object Access Protocol Header Nel messaggio SOAP può nascere l’esigenza 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 dell’header sono definiti da un nome composto da URI di namespace e nome locale SOAP - Simple Object Access Protocol

SOAP - Simple Object Access Protocol Header Tre attributi per gli elementi nell’Header Actor Indirizza gli elementi dell’header verso un particolare endpoint mustUnderstand Indica l’obbligatorietà o meno di processare l’informazione a cui si applica, se il nodo non è in grado di comprendere l’elemento si ha un fault encodingStyle Definisce i tipi di dati usati nell’elemento SOAP - Simple Object Access Protocol

SOAP - Simple Object Access Protocol Body Contiene informazioni per il destinatario del messaggio I figli del body devono essere qualificati da un namespace Definisce l’elemento fault <?xml version="1.0"?> <soap:Envelope xmlns:soap="http://www.w3.org/2001/12/soap-envelope" soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding"> <soap:Body> <m:GetPrice xmlns:m="http://www.w3schools.com/prices"> <m:Item>Apples</m:Item> </m:GetPrice> </soap:Body> </soap:Envelope> Non fanno parte di SOAP, sono application-specific SOAP - Simple Object Access Protocol

SOAP - Simple Object Access Protocol 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 SOAP - Simple Object Access Protocol

SOAP - Simple Object Access Protocol Codici di fault VersionMismatch Namespace non valido per l’Envelope 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 SOAP - Simple Object Access Protocol

SOAP - Simple Object Access Protocol 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 SOAP - Simple Object Access Protocol

SOAP - Simple Object Access Protocol SOAP Request POST /InStock HTTP/1.1 Host: www.example.org Content-Type: application/soap+xml; charset=utf-8 Content-Length: nnn <?xml version="1.0"?> <soap:Envelope xmlns:soap="http://www.w3.org/2001/12/soap-envelope" soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding"> <soap:Body xmlns:m="http://www.example.org/stock">    <m:GetStockPrice> <m:StockName>IBM</m:StockName>      </m:GetStockPrice> </soap:Body> </soap:Envelope> SOAP - Simple Object Access Protocol

SOAP - Simple Object Access Protocol SOAP Response HTTP/1.1 200 OK Content-Type: application/soap+xml; charset=utf-8 Content-Length: nnn <?xml version="1.0"?> <soap:Envelope xmlns:soap="http://www.w3.org/2001/12/soap-envelope" soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding"> <soap:Body xmlns:m="http://www.example.org/stock"> <m:GetStockPriceResponse> <m:Price>34.5</m:Price> </m:GetStockPriceResponse> </soap:Body> </soap:Envelope> SOAP - Simple Object Access Protocol

SOAP - Simple Object Access Protocol Codifica SOAP Ogni valore è codificato in un elemento <name>value</name> SOAP supporta i tipi semplici definiti da XML Schema Gli array sono codificati come sequenze di elementi <array ...namespace... enc:arrayType=“xsd:String[3]”> <item xsi:type=“xsd:String”>La stringa</item> ... </array> SOAP - Simple Object Access Protocol

Considerazioni progettuali dell’interfaccia pubblica di un WS Occorre valutare interfaccia pubblica implementazione interna L’interfaccia pubblica non necessariamente riflette in maniera speculare l’implementaizone interna ne espone una parte! Considerare aspetti di latenza della rete ed efficienza SOAP - Simple Object Access Protocol

Considerazioni progettuali dell’interfaccia 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 l’interazione tra client e server L’efficienza è valutata considerando client, server e collegamento di rete SOAP - Simple Object Access Protocol

SOAP - Simple Object Access Protocol Riferimenti Autori Vari, Java Web Service “Tutto & Oltre”, Apogeo SOAP Version 1.2 Part 0: Primer W3C Recommendation 24 June 2003 http://www.w3.org/TR/2003/REC-soap12-part0-20030624/ SOAP - Simple Object Access Protocol