26/10/2007

Web Services in Lotus Notes/Domino.

Una delle caratteristice più belle per gli sviluppatori, secondo me , dall'introduzione della release 7, è l'aggiunta dei WEB SERVICES come oggetto di design. Trovo che la Lotus in questo senso abbia fatto proprio un buon lavoro.
L'implementazione di questi servizi è seplice e veloce. Vi è inoltre la possibilità di scegliere quale linguaggio di sviluppo (LotusScript o Java) da utilizzare per la costruzione della classe. Tutto ciò è molto comodo ma voglio SOTTOLINEARE LA SUPER-PRODUTTIVITA' che viene data attraverso questo strumento.
L'unico problema che rimane è : COME TESTARE IL SERVIZIO in maniera rapida e veloce ?
Ho provato varie soluzioni , ma per ora , quella che ritengo più veloce e pratica è il client SOAP di Microsoft , utilizzabile anche via COM.

Ecco come utilizzarlo in LotusScript:


'Memorizzo la posizione del WSDL
sWSDL = "http://indirizzoip/ws/dbnotes.nsf/nomeservizio?wsdl"

'Aggancio l'oggetto COM
Set Client =CreateObject("MSSOAP.SoapClient")

'Inizializzo la connessione attraverso la definizione del WSDL
Call Client.mssoapinit (sWSDL)

'Chiamo semplicemente la funzione specificata dal WS chiedendo il parametro
'all'utente
Parametro1 = "Prova"
App1 = Inputbox("Immetti il parametro","Parametro1",Parametro1)

'Ricordarsi di utilizzare set se il WS torna a sua volta un oggetto definito nel WS
result = Client.FunzioneDiProva(App1)

'Se il WS torna un oggetto allora result andrà utilizzato come tale
'(es.result.ogg(0))
Messagebox result, MB_OK, "Web Service"


Ciao a Tutti !!
Piero

3 comments:

Cristian D'Aloisio said...

Nella R7 si possono sviluppare servizi web, come descritti da Piter, con Java o LotusScript, per metterli a disposizione di altri clients che utilizzano i web services (scritti in qualsiasi linguaggio, su qualsiasi SO)
Nella R7 si parla di Domino come WEB SERVICE PROVIDER.

Nella R8 la "figata" è quella di poter utilizzare i web services messi a disposizione da terze parti (es. Google, ecc.)!
In questo diciamo che il Notes/Domino diventa un web service WEB SERVICE CONSUMER.

Nella R8, dal Designer si importa il file .WSDL messo a disposizione dal fornitore del web service specifico (es. Google): nel file .WSDL vengono specificati tutti le funzioni e relativi parametri messi a disposizione del web service specifico.
Dopo l'importazione del file .WSDL il Designer crea AUTOMATICAMENTE una classe LS con tutti i metodi messi a disposizione dal web service.

P.S.
Nella R7 non si poteva essere web services consumer, ma non in modo nativo, occorreva utilizzare tools di terze parti.

Cristian D'Aloisio said...

La comunità aspetta un tuo post sulla tua soluzione SMS fatta in casa ;-)


PS
non svelare segreti aziendali, mi raccomando: se vai in carcere ti porterò le arance... ;-)

parme said...

Avendo dovuto da sempre lavorare con xml e web services da un pezzo utilizzo XMLSpy che offre pure la possibilità di "debuggare" i web services e nache le trasformazioni XML/XSLT. Certo non è economico ma se lavora massivamente con XML e i suoi derivati è a mio avviso la soluzione migliore