Fast Wsdl Tutorial

4

Click here to load reader

description

Riassunto e traduzione della reference ufficiale del W3C del linguaggio descrizione di servizi del W3C

Transcript of Fast Wsdl Tutorial

Page 1: Fast Wsdl Tutorial

Un tutorial veloce per WSDLLiberamente estratto e sintetizzato daWSDL-Tutorial (http://www.w3schools.com/wsdl)

IntroduzioneWSDL è un linguaggio basato su XML per descrivere i servizi Web e le modalità per accedervi. Prima di apprestarsi alla lettura di questo tutorial si devono conoscere i seguenti argomenti:XML, XML Schema, XML Namespace.WSDL sta per linguaggio di descrizione per Web Service (Web Service Description Language). Un documento WSDL è un documento XML in quanto WSDL è basto su XML. WSDL è usato per descrivere i servizi ma anche per localizzarli. WSDL specifica la locazione del servizio e le operazioni (o i metodi) che questo offre.WSDL è una raccomandazione del W3C.

Documenti WSDLUn documento WSDL è un semplice documento XML che contiene un insieme di definizioni per descrivere il servizio.La struttura di un documento WSDLGli elementi più importanti usati da WSDL per descrivere un servizio sono i seguenti

• <types>: i tipi di dato usati dal servizio.• <message>: i messaggi usati dal web service.• <portType>: le operazioni eseguite dal servizio.• <binding>: i protocolli di comunicazione usati dal servizio.

La struttura principale del documento è simile a quella presentata nel seguente listato:

<definitions>

<types>definizione dei tipi....

</types>

<message>definizione di un messaggio....

</message>

<portType>definizione di un port....

</portType>

<binding>definifinizione di un binding...

</binding>

</definitions>

Un documento WSDL può anche contenere altri elementi come elementi di estensione e un elemento del servizio che dà la possibilità di raggruppare le definizioni di diversi web service in un solo documento WSDL.Port WSDLL'elemento <portType> è il più importante in un documento WSDL: descrive il servizio, le operazioni che possono essere eseguite e i messaggi che sono coinvolti in queste operazioni.L'elemento <portType> può essere paragonato ad una libreria di funzioni (o un modulo, o una classe) in un tradizionale linguaggio di programmazione.Messaggi WSDLL'elemento <message> definisce gli elementi di dati di una operazione.Ogni messaggio può essere costituito da una o più parti. Le parti possono essere paragonate a dei parametri di una chiamata di funzione in un linguaggio di programmazione tradizionale.

Page 2: Fast Wsdl Tutorial

Tipi WSDLL'elemento <types> definisce i tipi di dato usati nel web service: per la massima compatibilità tra le piattaforme WSDL usa XML Schema per definire i tipi di dato.Binding WSDLL'elemento <binding> definisce il formato del messaggio ed i dettagli del protocollo per ogni Port.Esempio di WSDL

<message name="getTermRequest"><part name="term" type="xs:string"/>

</message>

<message name="getTermResponse"><part name="value" type="xs:string"/>

</message>

<portType name="glossaryTerms"><operation name="getTerm">

<input message="getTermRequest"/><output message="getTermResponse"/>

</operation></portType>

In questo esempio l'elemento portType definisce un “glossaryTerm” come nome del port e “getTerm” come nome dell'operazione. L'operazione “getTerm” ha un messaggio di input chiamato “getTermRequest” e un messaggio di output chiamato “getTermResponse”. Gli elementi <message> definisco le parti di ogni messaggio e i tipi di dato ad esse associato.Confrontando questo esempio con un lingaggio di programmazione tradizionale, “glossaryTerm” risulta essere una libreria di funzioni, “getTerm” una funzione con “getTermRequest” come parametro di input e “getTermResponse” come parametro di output.

Port WSDLUn port WSDL descrive le interfacce ( le operazioni consentite) presentate da un web service.Il port definisce un punto di connessione con il servizio. Un port può essere visto come una libreria di funzioni e ogni sua operazione come una funzione.Tipi di OperazioniIl tipo di operazione Request-Response è il più comune in WSDL ma non è l'unico supportato.

• One-Way: L'operazione può ricevere una richiesta ma non ritorna nessuna risposta• Request-Response: L'operazione può ricevere delle richieste e ritornerà una risposta.• Solicit-Response: L'operazione può spedire una richiesta e attendere per una risposta.• Notification: L'operazione può spedire un messaggio ma non attenderà una risposta.

Operazioni One-Way

<message name="newTermValues"><part name="term" type="xs:string"/><part name="value" type="xs:string"/>

</message>

<portType name="glossaryTerms"><operation name="setTerm">

<input name="newTerm" message="newTermValues"/></operation>

</portType >

Nell'esempio il porto “glossaryTerms” definisce un'operazione one-way chiamata “setTerm”. L'operazione “setTerm” accetta messaggi di input con nuovi termini del glossario, usando un messaggio “newTermValues” con parametri di input “term” e “value”. Non è stato definito nessun output per questa operazione.

Page 3: Fast Wsdl Tutorial

Operazioni Request-Response

<message name="getTermRequest"><part name="term" type="xs:string"/>

</message>

<message name="getTermResponse"><part name="value" type="xs:string"/>

</message>

<portType name="glossaryTerms"><operation name="getTerm">

<input message="getTermRequest"/><output message="getTermResponse"/>

</operation></portType>

Nell'esempio il port “glossaryTerms” definisce una operazione Request-Response chiamata “getTerm”.L'operazione “getTerm” richiede un messaggio di input chiamato “getTermRequest”,con un parametro chiamato “term”,e ritorna un messaggio di output chiamato “getTermResponse”, con un parametro chiamato “value”.

Binding WSDLUn binding WSDL definisce il formato del messaggio e i dettagli sul protocollo per un servizio web.Binding con SOAP

<message name="getTermRequest"><part name="term" type="xs:string"/>

</message>

<message name="getTermResponse"><part name="value" type="xs:string"/>

</message>

<portType name="glossaryTerms"><operation name="getTerm">

<input message="getTermRequest"/><output message="getTermResponse"/>

</operation></portType>

<binding type="glossaryTerms" name="b1"><soap:binding style="document” transport="http://schemas.xmlsoap.org/soap/

http" /><operation>

<soap:operation soapAction="http://example.com/getTerm"/><input><soap:body use="literal"/></input><output><soap:body use="literal"/></output>

</operation></binding>

L'elemento <binging> ha due attributi: name e type. L'attributo name ( si può usare qualsiasi nome si voglia) definisce il nome del binding mentre l'attributo type punta al port a cui si riferisce il binding, in questo caso “glossaryTerms”.L'elemento soap:binding ha due attributi: style e transport. L'attributo style può valere o “rpc” (remote procedure call) oppure “document” (in questo caso abbiamo usato “document”) mentre l'attributo transport definisce il protocollo SOAP da utilizzare (in questo caso usiamo HTTP). L'elemento operation definisce ogni operazioni che il port espone (contiene). Per ogni operazione

Page 4: Fast Wsdl Tutorial

deve essere definita la SOAP action corrispondente e si deve inoltre specificare come gli input e gli output devono essere codificati (in questo caso abbiamo usato “literal”.

WSDL e UDDIUniversal Description, Discovery e Integration (UDDI) è un servizio di directory in cui le imprese possono registrarsi e cercare i servizi Web. UDDI è framework indipendente dalla piattaform per la descrizione dei servizi, il discovery delle imprese, e per l'integrazione dei servizi imprenditoriali tramite Internet. UDDI è una directory per immagazzinare informazioni sui servizi e le interfacce dei web service scritte in WSDL. UDDI comunica tramite SOAP ed è costruita all'interno della piattaforma Microsoft .NET.UDDI usa gli standard del W3C (World Wide Web Consortium) e dell'IETF (Internet Engineering Task Force) come XML, SOAP, HTTP e DNS e inoltre sfrutta WSDL per descrivere le interfacce dei servizi. UDDI è utile per trovare l'impresa giusta tra i milioni di imprese online, per definire come stabilire il commercio una volta trovata l'impresa, raggiungere nuovi consumatori e migliorare l'accesso di quelli già acquisiti, risolvere Oltre 200 compagnie già sono membri della comunità UDDI.