Modulo 6: Web Services e SOAP

Download Report

Transcript Modulo 6: Web Services e SOAP

Corso di
Web Services
A A. 2010 2011
Domenico Rosaci
Web Services
e SOAP
WS e SOAP
WS: varie implementazioni
• Esempi di implementazioni WS
– Apache SOAP per Java
– SOAP::Lite per Perl
– Microsoft .NET
• Ricordiamo che un WS si compone di:
– Un listener che resta in attesa di messaggi
– Un proxy che prende il messaggio e lo traduce in qualcosa da fare (ad
esempio invocare un metodo su un oggetto Java)
– Un application code
– Cerchiamo di fare in modo che l’application code non sia a conoscenza
dell’esistenza del listener e del proxy, anzi che non sia affatto a
conoscenza di essere invocato dall’interfaccia di un WS (non sempre è
possibile)
WS e SOAP
2
Gestire i messaggi SOAP
• L’integrazione di SOAP con i vari toolkit varia con il livello di
trasporto
• Alcuni implementano i loro server HTTP
• In altri casi, il “demone” HTTP passa il messaggio al proxy,
che si prende cura di invocare l’application code
WS e SOAP
3
Meccanismi di trasporto
“pluggable”
• Alcuni tools permettono all’utente di selezionare il
meccanismo di trasporto tra differenti possibilità
(FTP,SMTP,Japper,IO, ecc.)
WS e SOAP
4
Il componente Proxy
• Il proxy deve effettuare tre azioni:
– Se necessario, “deserializzare” il messaggio, da XML a qualche formato
nativo adatto per consentire l’invocazione del codice
– Serializzare la risposta in XML e passarla al listener che si occuperà di
trasmetterla al richiedente
– A prescindere dalle varie implementazioni, tutti i toolkit SOAP prevedono
per il proxy questi semplici passi
WS e SOAP
5
Deploying WS
• Deploying un WS significa dire al componente proxy quale tipo
di codice deve essere invocato quando viene ricevuto un
particolare tipo di messaggio
• Per esempio, la componente proxy deve sapere che se arriva
un messaggio getQuote occorre invocare qualche metodo
della classe Java samples.quoteServers.
• I WS tools hanno differenti meccanismi di deployment. Per
esempio l’implementazione Apache SOAP richiede l’esistenza
di un file descrittore, che descrive le classi Java e le regole per
mappare gli oggetti Java nei loro equivalenti XML. Questo file
deve essere aggiunto al registro dei servizi usato da Apache
SOAP
WS e SOAP
6
Creare WS in Java con
Apache SOAP
• Apache SOAP è l’implementazione SOAP della Apache
Software Foundation
• E’ disegnata per essere eseguita come servlet su qualunque
Java HTTP server
• Come tale, implementa solo il componente proxy della
gestione del messaggio
• Attualmente, il toolkit si chiama AXIS
WS e SOAP
7
Come realizzare WS
Tomcat
WS e SOAP
8
Installazione Tomcat
WS e SOAP
9
Struttura delle Directories
WS e SOAP
10
Tomcat: Home
WS e SOAP
11
Struttura di una Web Application
WS e SOAP
12
Apache Axis
WS e SOAP
13
Validazione di Axis
WS e SOAP
14
Verifica WSDL
WS e SOAP
15
Accorgimenti
•Installare sulla macchina server il tool JDK (consigliata la
versione 1.6)
•Accertarsi che il Web Server Tomcat abbia i riferimenti a tale
tool. A questo scopo andare nella configurazione di Tomcat e
selezionare la scheda “Java”. Assicurarsi che la Java Virtual
Machine abbia un path del tipo
“C:\Programmi\Java\jdk1.6.0_06\jre\bin\client\jvm.dll” cioè
punti alla dll contenuta nella cartella jdk e non all’analoga dll
contenuta nella cartella jre. Inoltre inserire nel Java Classpath
il percorso “C:\Programmi\Java\jdk1.6.0_06\lib\tools.jar”
WS e SOAP
16
Lista Servizi Attivi
WS e SOAP
17
Lista Servizi Attivi
WS e SOAP
18
Esempio 1
WS e SOAP
19
Pubblicazione del servizio
WS e SOAP
20
Il File WSDD deploy.wsdd
WS e SOAP
21
AdminClient
WS e SOAP
22
Accorgimenti per AdminClient
Attenzione: E’ necessario inserire in CLASSPATH tutte le librerie
jar contenute nella directory lib di axis!!!!!
WS e SOAP
23
Nuova Lista dei Servizi e WSDL
del nostro esempio
WS e SOAP
24
Altro metodo per pubblicare
servizi: JWS
WS e SOAP
25
Servizi JWS
WS e SOAP
26
Lato Client: client dinamico
WS e SOAP
27
Lato Client: client dinamico
WS e SOAP
28
Dynamic Invocation
WS e SOAP
29
Chiamata del Servizio
WS e SOAP
30
Lato Client: Generated Stub
(WSDL2Java)
WS e SOAP
31
Implementazione del client
WS e SOAP
32
Google WS
WS e SOAP
33
Google WS
WS e SOAP
34
Google WS
WS e SOAP
35
Tiscali Web Services
WS e SOAP
36