CONFIGURAZIONI PC E RETI
ovvero... come abbiamo fatto dalla A alla Z.
 
HOME DOCUMENTI PROGETTI RISORSE DOMANDE ARTICOLI

 PHP & NUSOAP: CLIENT VISUAL BASIC 6
 ultimo aggiornamento: 24 aprile 2003 ore 16.00
 
 
PROBLEMATICA
Implementazione esempio client Visual Basic 6 su sistema operativo Windows.
 
PREREQUISITO: SERVIZIO USERLINUX INSTALLATO
L'esempio proposto in questo documento si riferisce all'implementazione di un client in Visual Basic 6 che interroga il servizio descritto nel documento

PHP & NUSOAP: INSTALLAZIONE ED ESEMPIO

Occorre, quindi, che sia stata installato nusoap e il file serversoap.php come descritto nel documento segnalato.
Naturalmente, occorre che Visual Basic 6 sia installato sul sistema Windows.

 
FUNZIONALITA' DEL PROGRAMMA
Il programma consistera' di un form con un pulsante "UserLinux", due campi di tipo testo ("user" e "how") e un campo di tipo testo "result" che riportera' le informazioni richieste.
Inserendo nel campo "user" l'utente per cui si vuole l'informazione, nel campo "how" SHELL o HOME, e cliccando su "UserLinux", nel campo "result" verra' riempito con il risultato della richiesta.

 
FASI
1) installazione di Soap Toolkit 3;
2) esempio file client in Visual Basic 6;
3) test del programma.

 
FASE 1: INSTALLAZIONE DI SOAP TOOLKIT 3
Per aggiungere le funzionalita' SOAP a Visual Basic 6 occorre installare SOAP Toolkit 3.0 della Microsoft.
SOAP Toolkit 3.0 puo' essere scaricato al seguente indirizzo

www.microsoft.com/downloads/details.aspx?FamilyId=C943C0DD-CEEC-4088-9753-86F052EC8450&displaylang=en

L'installazione di SOA Toolkit richiede che Windows Installer 2.0 o versione successiva sia installato sul PC. Windows XP contiene gia' Windows Installer 2.0.
Windows Installer 2.0 per Windows 95, 98, and Me puo' essere scaricato al seguente indirizzo

www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=CEBBACD8-C094-4255-B702-DE3BB768148F

Windows Installer 2.0 per Windows NT 4.0 e 2000 puo' essere scaricato al seguente indirizzo

www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=4B6140F9-2D36-4977-8FA1-6F8A0F5DCA8F

I passi per l'installazione sono i seguenti:
a) se non si ha Windows XP, prelevare e installare Windows Installer 2.0;
b) prelevare e installare SOAP Toolkit 3.0.

Una volta installato il prodotto, in Start--.Programmi--.Microsoft SOAP Toolkit Version3 e' possibile trovare la guida di riferimento.
In VIsual Basic 6 si potra' utilizzare gli oggetti SOAP e XML selezionando i riferimenti nel menu' Progetto--.Riferimenti.

 
FASE 2: ESEMPIO FILE CLIENT IN VISUAL BASIC 6
Il programma e' composto da un unico form.
Il form contiene i seguenti oggetti (omettendo le label):


- user: TextBox
- how: TextBox
- ExecButton: CommandButton
- result: TextBox
--> proprieta' MultiLine = True
--> proprieta' ScrollBars = 3 - Both
- led: Shape
--> proprieta' Shape = 3 -Circle
--> proprieta' FillStyle = 0 - Solid

Nel Menu' Progetto--.Riferimenti occorre selezionare
- Microsoft Soap Type Library v3.0
- Microsoft XML, v4.0

Questo permette di utilizzare gli oggetti relativi a SOAP e XML.

Il codice contenuto nel Form e' il seguente:

Option Explicit
Private Const END_POINT_URL = _
"http://192.168.0.64/nusoap/serversoap.php"
Private Const LANG_CUR = "it"


Private Function ExecuteUserLinux(user As String, how As String) As String
Dim Connector As HttpConnector30
Dim Serializer As SoapSerializer30
Dim Reader As SoapReader30

On Error GoTo errore

Set Connector = New HttpConnector30
Connector.Property("EndPointURL") = END_POINT_URL

Connector.Connect


Connector.Property("SoapAction") = ""
Connector.BeginMessage

Set Serializer = New SoapSerializer30
Serializer.Init Connector.InputStream

Serializer.StartEnvelope
Serializer.StartBody
Serializer.StartElement "UserLinux", , , "ns1"
Serializer.StartElement "user"
Serializer.WriteString user
Serializer.EndElement
Serializer.StartElement "how"
Serializer.WriteString how
Serializer.EndElement
Serializer.EndElement
Serializer.EndBody
Serializer.EndEnvelope

Connector.EndMessage

Set Reader = New SoapReader30
Reader.Load Connector.OutputStream

If Not Reader.Fault Is Nothing Then
ExecuteUserLinux = Reader.FaultString.Text
Else
ExecuteUserLinux = Reader.RpcResult.Text
End If

Exit Function

errore:
Debug.Print Err.Description

End Function


Public Function ResultUserLinux(user As String, how As String, result As String, language As String) As String
Dim mylang As String

If language = "it" Then
mylang = "IT"
ElseIf language = "en" Then
mylang = "EN"
Else
mylang = "EN"
End If

If mylang = "IT" Then
ResultUserLinux = "Il dato " & how & " richiesto per l'utente " & user & " ha prodotto il seguente risultato:" & vbCrLf & result
ElseIf mylang = "EN" Then
ResultUserLinux = user & "'s " & how & " is equal to:" & vbCrLf & result
End If

End Function

Private Sub ExecButton_Click()
Dim mytext As String

led.FillColor = RGB(255, 255, 0)
led.Refresh


mytext = ExecuteUserLinux(user, how)


result = ResultUserLinux(user, how, mytext, LANG_CUR)
led.FillColor = RGB(0, 255, 0)

End Sub

Private Sub Form_Load()
led.FillColor = RGB(0, 255, 0)
End Sub

Con la costante

Private Const END_POINT_URL = _
"http://192.168.0.64/nusoap/serversoap.php"

si definisce qual e' il server e il file che risponderanno alla chiamata SOAP (riferendoci sempre all'esempio descritto in PHP & NUSOAP: INSTALLAZIONE ED ESEMPIO).

Con la costante

Private Const LANG_CUR = "it"

definiamo il linguaggio che vogliamo utilizzare per visualizzare il risultato (ossia it per italiano o en per inglese).
La funzione ExecuteUserLinux(user As String, how As String) As String viene utilizzata per interrogare il server. Naturalmente, i parametri sono user e how (che puo' essere SHELL o HOME).
Vengono definiti gli oggetti

Dim Connector As HttpConnector30
Dim Serializer As SoapSerializer30
Dim Reader As SoapReader30

rispettivamente per eseguire la connessione, per creare il messaggio SOAP di richiesta e per leggere la risposta del server.

Con

Serializer.StartElement "UserLinux", , , "ns1"

si indica la funzione UserLinux (definita in serversoap.php) che si vuole richiamare.

Con

Serializer.StartElement "user"
Serializer.WriteString user
Serializer.EndElement
Serializer.StartElement "how"
Serializer.WriteString how
Serializer.EndElement

si definiscono i parametri richiesti dalla funzione UserLinux (sempre in serversoap.php).

Con

Reader.Load Connector.OutputStream

si inserisce la risposta del server nell'oggetto Reader.

Con

If Not Reader.Fault Is Nothing Then
ExecuteUserLinux = Reader.FaultString.Text
Else
ExecuteUserLinux = Reader.RpcResult.Text
End If

la funzione ritorna il risultato (o la stringa di errore in caso di problemi).

La funzione ResultUserLinux crea la risposta in italiano o in inglese.
Le funzioni ExecuteUserLinux e ResultUserLinux vengono richiamate dal codice contenuto in ExecButton_Click(), relativo al bottone sul Form.
La Shape led server soltanto a segnalare che il programma sta eseguendo la richiesta al server, cambiando il suo colore a verde a giallo e poi ritornando verde nel momento in cui l'esecuzione finisce.

 
FASE 3: TEST DEL PROGRAMMA
Eseguendo il programma con impostazione della lingua in italiano e richiedendo la HOME per l'utente root si ha il seguente risultato:


 
DOCUMENTI CORRELATI
APACHE-SSL + WEB SERVICES PHP-PERL + CONNESSIONE MSSQL7-2000: INSTALLAZIONE
PHP & NUSOAP: INSTALLAZIONE ED ESEMPIO
RIFERIMENTI
www.microsoft.com
CAMBIAMENTI
--. 24 aprile 2003 16:00: creazione documento
 
 
 redazione@retelinux.com