Consumare Web Service
Andrea Saltarello
http://www.ugidotnet.org/4.blog
UGIdotNET – http://www.ugidotnet.org
Agenda
Amarcord 
Web Services: il backstage
Consumare WS con .NET
Consumare WS con ASP/VB6
Funzionalità dei Web Services
Programmable logic accessible by standard
Web protocols
Permettono alle applicazioni di inviare e ricevere
informazioni tramite Internet
Indipendenti da linguaggi, protocolli e
piattaforme
Architettura stateless
Basati su standard W3C in evoluzione
Amarcord
Per implementare un Web Service con ASP
.NET
Aprire (o creare) un progetto Web
Aggiungere un WS al progetto
Aprire il modulo di code-behind
Aggiungere i web method
Metodi pubblici decorati con WebMethodAttribute
Amarcord
Possiamo consumer un WS mediante una
classe proxy:
Aggiungere una Web Reference al progetto
Istanziare la classe proxy
Invocare i metodi della classe proxy
Fantastico, ma… Come #@?*! fa VS a creare la
classe proxy?
Genesi di una classe proxy
Genesi di una classe proxy
Anatomia di un Web Method
La Welcome page del web method
visualizza la struttura degli envelope SOAP
veicolati dalla richiesta e dalla risposta http
La struttura dei dati veicolati dal web
service è definita nella sezione <types />
documento WSDL
WSDL: The Comeback!
WSDL: The Comeback!
WSDL: Struttura
WSDL: Struttura
Consumare un Web Service
Il consumatore analizza il WSDL e deduce le
modalità di comunicazione con il Web
Service
Vediamo ora come consumare un WS quando
il client è:
.NET
VB6/ASP
Consumare WS con .NET
E’ possibile creare una classe proxy anche
senza VS .NET, usando wsdl.exe
La classe Proxy
Permette di specificare l’indirizzo del WS mediante la
proprietà Url
Parametrizzare il proxy
Spesso è conveniente usare lo URL Behavior della
Web reference
Consumare Ws con VB6
Abbiamo due alternative:
MS SOAP Toolkit
COM Interoperability
MS SOAP Toolkit
E’ una libreria COM:
Scaricabile gratuitamente dal sito MS
Capace di generare e ricevere envelope SOAP
Utilizzabile da VB6 e da ambienti di scripting (es:
ASP)
Non più supportata da MS a partire a Luglio 2004
MS SOAP Toolkit
MS SOAP Toolkit
demo
Consumare WS con Interop
Questa tecnica permette di utilizzare una
classe proxy realizzata in .NET
esponendola come CoClass (= classe
COM). Occorre:
Creare un assembly contenente la classe proxy
Applicare uno strong name all’assembly
Registrare l’assembly per l’interoperabilità COM
Usare l’assembly alla stregua di una libreria COM
Interop HOW-TO
1.
2.
3.
4.
Creare un nuovo progetto, di tipo Class
Library
Aggiungere una Web Reference alla Class
Library
Creare una classe derivata da quella proxy
Decorare la nuova classe con l’attributo
ClassInterface (utile per esporla a COM)
Interop HOW-TO
Applicare lo Strong Name
Applicare uno Strong Name ad un assembly
equivale a “firmarlo”
Per firmare un assembly:
1.
Creare una coppia di chiavi con sn.exe
Applicare lo Strong Name
2.
Associare le chiavi all’assembly
Esporre un assembly mediante Interop
1.
Registrare l’assembly nella GAC mediante
GACUtil.exe
La Global Assembly Cache è il repository degli
assembly disponibili a tutte le applicazioni
Esporre un assembly mediante Interop
2.
Creare la type library dell’assembly
mediante tlbexp.exe
Esporre un assembly mediante Interop
3.
Registrare la type library mediante
regasm.exe
Consumare il WS
Possiamo ora usare la classe proxy prodotta
con .NET come se fosse una normale
libreria COM
Referenziare l’assembly
Consumare il WS
demo
Link
Web:
http://msdn.microsoft.com/webservices/
http://www.ugidotnet.org/webservices.cnt
Newsgroup: (news.microsoft.com)
nntp://microsoft.public.it.dotnet.framework.
webservices
nntp://microsoft.public.it.dotnet.soap
Prossimo appuntamento
Advanced Web Services
27 Febbraio 2004 (14:30-16:00)
http://www.microsoft.com/italy/msdn/webcast/default.asp
© 2003-2004 Microsoft Corporation. All rights reserved.
This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
Scarica

Consumare Web Service