|
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
|
|
|