Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Web Service
Web service : Componenti eseguibili Forniscono particolari funzioni alle applicazioni Possono esere pubblicati, individuati e invocati sul Web Basati su tecnologie Internet SOAP, XML e protocolli applicativi quali HTTP, SMTP
Programmazione GIS - Vittorio Maniezzo - Universit di Bologna
Piattaforma: Windows
MS non .net
Componente COM
RPC
Difficile che passi un Firewall
Piattaforma: qualunque
.NET
Facile passare i Firewall
Componente
SOAP su HTTP
2
1
Programmazione GIS - Vittorio Maniezzo - Universit di Bologna
Introduzione
Inquadramento Descrizione generale Applicazioni web distribuite
3
Inquadramento
Elaborazione distribuita tradizionale
Modello client/server Modello a oggetti distribuiti
Componenti: packaging e interoperabilit Remoting: remote method invocation COM, CORBA, Java RMI e EJB
MS Windows DNA
Architettura per applicazioni distribuite su Internet DHTML, COM, ASP, Message Queuing
Problemi
Un modello a oggetti distribuiti non adatto a grosse applicazioni
Legame stretto fra servizio e utente
Necesaria una infrastruttura omogenea Problemi di versioning
COM non supportato da piattaforme non-Windows CORBA non permette la portabilit dellimplementazione degli oggetti server EJB - Enterprise JavaBeans ...
5 Programmazione GIS - Vittorio Maniezzo - Universit di Bologna
Black box
Basato su componenti, riutilizzabile
Applicazioni
Internet
2
Programmazione GIS - Vittorio Maniezzo - Universit di Bologna
Architetture
Il framework .NET Modello di programmazione Configurazione
9
Il framework .NET
Framework .NET ASP.NET Web Forms Web Services Windows Forms
Modello di programmazione
Codice sorgente Compilatore MSIL & Metadata
Class Loader
Class Lib
JIT Compiler
Esecuzione
Configurazione
Concetti e architettura
file config.web (oppure web.config) Architettura gerarchica della configurazione (Influenza sul direttorio corrente e su tutti i sottodirettori)
Root Dir Sub Dir1 Sub Dir2
Web.config
Configurazione
file config.web
Formato XML Il file e contenuto nello stesso direttorio dellapplicazione Configurazione di default personalizzabile
Personalizzabile il file config.web Personalizzabile la configurazione dei section handler
classe WebServicesConfiguration
Contiene le informazioni sulla configurazione sezione <webservices> in config.web
13 Programmazione GIS - Vittorio Maniezzo - Universit di Bologna
Codice e sintassi
Direttiva WebService
Setting per compilatori ASP.NET <%@ WebService Language=value Class=value %>
10
Namespace System.Web.Services
WebService
Classe di base per i Web Services Fornisce le funzionalit di base
Es., WebService.Session
WebServiceAttribute
Classe opzionale per aggiungere informazioni addizionali
Namespace System.Web.Services
WebServicesConfiguration
Contiene informazioni sulla configurazione Sezione <webservices> in config.web
WebServicesConfigurationSectionHandler WebMethodAttribute
[ WebMethod ]
11
Si pubblica il contratto WSDL e la descrizione HTML I clienti del Web Service possono essere sia web application che browser
23 Programmazione GIS - Vittorio Maniezzo - Universit di Bologna
12
WebServiceUtil.exe
Crea delle classi proxy il client Input:
Contratto WSDL Linguaggio del proxy e protocollo
Output:
Un unico file sorgente nel linguaggio specificato, contenente: Proxy class Codice per linvocazione da rete e il marshalling
13
Modello applicativo
Sviluppatore di Web Service Sviluppatore di Web Application Web Server 1 asmx Service App .aspx
Web Server 2
Proxy
14
Click sul bottone Add Reference per aggiungere il riferimento nel progetto e creare la proxy class
Protocolli
HTTP-GET: nome e argomenti del metodo nellURL HTTP-POST: nome e argomenti del metodo nel corpo del POST HTTP-SOAP: XML per Accedere al web service Ritornare i risultati
15
HTTP-GET standard
Nome del metodo = PATHINFO Argomenti del metodo = stringa query nellURL
Query string key = nome del parametro Possibili parametri multipli Utilizzabili solo tipi di dati primitivi del.NET runtime
HTTP-POST
Simile a GET, ma con gli argomenti nel body della form
32 Programmazione GIS - Vittorio Maniezzo - Universit di Bologna
16
Invocazione: HTTP-SOAP
Sintassi XML per web service method, parametri dei metodi, risultati Supporta tutti I tipi dati standard .NET, in pi: classi, struct, dataset Marshalling di classi e struct
Serializzazione in formato XML
WSDL
Sintassi XML che definisce:
Servizi e porte che comunicano via messaggi Binding
Specifica un protocollo o un formato dati per un messaggio o una porta Estensioni per SOAP 1.1, HTTP GET/POST e MIME
Descrizione pubblica di un Web Service e dei suoi contenuti (contratto WSDL) Elementi essenziali del WSDL
service, port e portType operazioni e messaggi
34 Programmazione GIS - Vittorio Maniezzo - Universit di Bologna
17
WSDL
Struttura degli elementi WSDL
service_1 port_C port_B message port_D port_A message port type service_2
18
5
Programmazione GIS - Vittorio Maniezzo - Universit di Bologna
e inoltre
Gestione dello stato Sicurezza Transazioni Modello di esecuzione Applicazioni web distribuite
37
19
Sicurezza
Motivi della sicurezza
Prevenire laccesso a certe arree del web server Memorizzare dati semsibili dellutente
Transazioni
Come ASP.NET Web Forms Servizi COM+
Transazioni automatiche Atomiche, Consistenti, Isolate, Durevoli (ACID)
SQL Server Application Web Service Message Queuing Server
20
Transazioni
TransactionMode Property di un WebMethod Attributi:
[WebMethod(TransactionMode= TransactionMode.Required)]
Transaction Modes
Supported NotSupported Required RequiresNew
Modello di esecuzione
Sincrono
Come una qualsiasi altra chiamata ad un metodo normale
Asincrono
Scompone il metodo in due blocchi di codice
BeginMethodName EndMethodName
21
Esempio
.aspx
<%@ Import Namespace=MathServiceSpace %> <script language=C# runat="server"> public void Submit_Click(Object S, EventArgs E) { service.Add(operand1, operand2); ... </script> ... <input OnServerClick=Submit_Click runat="server" ...>
Il file .asmx implementa il metodo Add Il file WSDL, returnato dal runtime ASP.NET
22