Introduzione alla programmazione di servizi Web in codice gestito
I servizi Web rendono possibile lo scambio di dati a regime di controllo libero ("loosely-coupled") sotto forma di messaggi XML tra sistemi eterogenei. Sebbene l'accesso remoto ai dati e alla logica dell'applicazione non costituisca un concetto nuovo, la sua esecuzione a regime di controllo libero ("loosely-coupled") rappresenta una novità. Alcuni tentativi precedenti, quali DCOM, IIOP e Java/RMI, richiedevano una stretta integrazione tra il client e il server. Anziché il contratto basato su XML, che costituisce la base dei servizi Web, utilizzavano formati di dati binari specifici di un sistema operativo e di un'implementazione.
A differenza di DCOM, IIOP e Java/RMI, i servizi Web non richiedono una tecnologia specifica di componenti o una particolare convenzione per la chiamata degli oggetti. Nella comunicazione tra il client e il server si presuppone solo che i destinatari comprendano i messaggi ricevuti. In altre parole, è come se il client e il server fossero vincolati da un contratto, in questo caso descritto utilizzando WSDL e XSD, e comunicassero generando messaggi che rispettano le caratteristiche di tale contratto attraverso un trasporto specificato, ad esempio HTTP. Di conseguenza, ai servizi Web può accedere qualsiasi programma, indipendentemente dal linguaggio in cui è stato scritto, dal modello di componenti utilizzati e dal sistema operativo in cui viene eseguito. Inoltre la flessibilità garantita dall'utilizzo di un formato testo quale XML rende possibile nel tempo l'evoluzione dello scambio dei messaggi in modalità a regime di controllo libero ("loosely-coupled"). Questo tipo di accoppiamento è obbligatorio in ambienti in cui l'aggiornamento simultaneo di tutte le parti coinvolte nello scambio dei messaggi non è possibile.
Questa tecnologia è stata mantenuta per garantire la compatibilità con le applicazioni esistenti di versioni precedenti e non è consigliata per nuove operazioni di sviluppo. Per informazioni sulle alternative consigliate, vedere
Servizi Windows Communication Foundation e dati WCF in Visual Studio
Servizi Web e .NET Framework
Se si crea un servizio Web tramite codice gestito basato su ASP.NET e .NET Framework, non è necessario scrivere codice dell'infrastruttura per gestire dettagli quali i protocolli di comunicazione o i trasporti di messaggi. Inoltre, se si creano servizi Web che utilizzano il framework di pagina ASP.NET, tali servizi consentiranno l'accesso alle numerose funzionalità di .NET Framework, quali l'autenticazione, l'archiviazione nella cache e la gestione degli stati.
Nel modello di applicazioni ASP.NET le pagine Web utilizzano l'estensione ASPX. Per evitare che vengano confusi con le pagine ASP.NET standard, i servizi Web utilizzano l'estensione ASMX.
Per facilitare uno scambio bidirezionale di dati tramite i servizi Web, uno sviluppatore deve:
Creare un servizio Web. Quando si crea un servizio Web XML, viene creata un'applicazione che espone funzionalità ai client del servizio Web XML.
Accedere a un servizio Web. Quando si accede a un servizio Web, l'applicazione client individua e utilizza le funzionalità contenute all'interno di un servizio Web distinto e vi fa riferimento. Il client di un servizio Web XML è in genere un'applicazione. Tale applicazione è in grado di inviare, ricevere ed elaborare messaggi diretti e provenienti dal servizio Web.
Non è necessario che la creazione e il successivo accesso al servizio Web vengano eseguiti dal medesimo sviluppatore. Alcuni servizi Web possono essere creati da un'unica entità per poi essere utilizzati da vari siti Web esterni: ad esempio, un servizio di informazioni sul traffico creato dal Ministero dei Trasporti a cui accedano i siti Web delle società di trasporto merci.
I servizi Web possono essere applicazioni autonome o sottocomponenti di un'applicazione Web di maggiori dimensioni. Si supponga, ad esempio, di creare un'applicazione Web per la vendita di libri online. Tale applicazione può interagire con i servizi Web nel modo seguente:
Creare un servizio Web. L'applicazione espone la relativa logica di elaborazione degli ordini come servizio Web. I siti Web affiliati possono utilizzare il servizio nelle rispettive applicazioni Web per vendere i libri online.
Accedere a un servizio Web. L'applicazione accede a un servizio Web sviluppato da un'altra società online specializzata nella redazione e fornitura di recensioni letterarie per le società che vendono libri online. Quando un visitatore del punto vendita online visualizza il prezzo di un determinato libro, trova sulla stessa pagina anche delle recensioni relative a quel libro.
I servizi Web sono accessibili da vari tipi di applicazione, inclusi altri servizi Web, applicazioni Web, applicazioni Windows e applicazioni console. Tuttavia, il requisito minimo è che il client sia in grado di inviare messaggi al servizio Web.