ESERCITAZIONE DEL 05/06 :

In quest'esercitazione verra' illustrato i un'altro sistema per l'accesso ad oggetti remoti. Il sistema preso in considerazione e' il SOAP - Simple Object Access Protocol.

 Cerchiamo ora di spiegare l'interazione tra Client e Server con questo protocollo :

Essendo XML e HTTP degli Standard Internazionali e indipendenti dalle piattaforme, rendono questo protocollo di accesso ad oggetti remoti, un protocollo molto flessibile. Sia per la chiamata che per la risposta, i files XML devono avere delle "TAG" ben definite. Esiste un "Toolkit" che gestice ad alto livello l'utilizzo del protocollo SOAP. Di questo protocollo osserviamo le due classi di pił alto livello. Innanzitutto e' necessario un WebServer installato sulla macchina Server.

SOAP TOOL KIT MS :

Sul Server risiede, per ogni servizio che l'oggetto mette a disposizione, un file WSDL ( Web Services Description Language ). Esso descrive di quali metodi dispone il servizio, e quali parametri devono essere passati. E' in base a questo file che il Client passa il file XML.

In questo protocollo troviamo quindi 2 Oggetti di alto livello da poter gestire :

A basso livello invece ci sono le API.

Il Server e' un Server Generico. Ecco come utilizzare il SOAP:

<% Language = VbScript %>
<% Response.ContentType = "Text/XML" %>
   

'Significa che verrą istanziato un file XML di tipo testo.

<% Set SoapServer = CreateObject ("MSSOAP.SOAPSERVER")

wsdl = Server.MapPath("disponibilitą.wsdl")        'disponibilitą e' il nome del servizio che si

wsml = Server.MapPath ("disponibilitą.wsml")        'vuole utilizzare

call soapserver.init(wsdl,wsml)

call soapserver.SoapInvoke(request,response) %>

WSML e' un file che accompagna il wsdl. Nel ToolKit esiste un WSDL generator che permette di prendere l'oggetto (DLL), permette di selezionare i metodi che si vogliono esporre, e si preoccupa di generare i file WSDL,WSML. Nel Client, invece utilizzeremo questo codice per accedere al SOAP.

<%@Language = VbScript %>

<% Set Client = Server.CreateObject("MSSOAP.SoapClient")

Client.mssopinit "http:\\.......disponibilitą.wsdl"

str = Client.CercaAlbergo(DataInizio,DataFIne) %>