GroovyWS…web service con groovy e Java

Vi spiego con un semplice esempio come è semplice invocare i webservice utilizzando Groovy e la libreria GroovyWS, diretta discendente della obsoleta GroovySoap, di cui mantiene l’incredibile semplicità di approccio.

I Web Service sono un modo per consentire di invocare oggetti remoti attraverso un semplice protocollo basato su HTTP (SOAP). Per far ciò normalmente si invoca il WSDL dell’oggetto remoto (una sorta di interfaccia scritta in XML) e la si da in pasto ad una qualche utility che crea delle classi fittizie (stub) a cui accedere localmente per richiamare gli oggetti remoti. Quindi, in soldoni, un oggetto remoto HelloWorld, sarà importato tramite WSDL e ci consentirà di ottenere un HelloWorld.java più eventuali classi accessorie. Nel nostro codice Java importeremo la classe e la potremo utilizzare al pari delle altre. Fin qui tutto semplice.

Ma cosa succede se non vogliamo mettere mani al codice ma vogliamo ugualmente essere in grado di richiamare un Web Service attraverso la sola URL? In questo caso abbiamo bisogno di un sistema che automaticamente faccia i passaggi di sopra. Ma anche così il codice dovrebbe incorporare automaticamente la classe generata.

Ecco allora scoprire (per me almeno) la potenza dei linguaggi dinamici di nuova generazione (di cui Groovy, Ruby, Python sono solo alcuni degli esempi più celebri). Un linguaggio dinamico contiene meccanismi di very late binding, ossia meccanismi che consentono la compilazione senza conoscere molto delle variabili in gioco. Solo a runtime è possibile conoscere cosa una variabile rappresenta, di che classe è e quali metodi e attributi incorpora.

Volendo richiamare un web service in groovy abbiamo bisogno di utilizzare la libreria groovyws che andrà posta nella cartella lib di groovy oppure del nostro progetto java: ecco un esempio formidabile (copiate ed incollate nella vostra GroovyConsole dopo aver installato la libreria)

import groovyx.net.ws.WSClient
def proxy = new WSClient("http://saintbook.org/MightyMaxims/MightyMaxims.asmx?WSDL", this.getClass().getClassLoader())
print proxy.ForToday() //il metodo ForToday() del webservice che solo con la riga precedente si scopre esistere

La seconda riga di codice inizializza un WSClient, che attualmente non presenta nessun altro metodo ma, magia, dopo l’inizializzazione vediamo, nella terza riga, che la variabile definita presenta il metodo ForToday() che, per inciso, restituisce una stringa con la massima del giorno.

Mi sarebbe piaciuto scrivere qualcosa in più ma è davvero tutto qui.

Ovviamente possiamo incorporare il tutto in una classe, compilare lo script groovy in un .class ed utilizzarlo nei nostri progetti Java in modo del tutto analogo. L’importante è aggiungere le reference a groovy, groovyws e ant 1.7 (che serve a compilare lo stub scaricato automaticamente).

Il prossimo step sarà quello di fare un po di reflection sulla classe proxy per vedere le proprietà esposte.

Maggiori informazioni qui.

Zac

Diventare ricchi in un garage…

Tempo fa vi parlai di tre giovani che, facendo una “colletta”, misero su una compagnia per la realizzazione di un Next Generation 3D engine, ossia un motore per muovere i mondi virtuali dei videogiochi, ma non quelli che giochiamo adesso, ma che vedremo fra qualche anno :). Dopo un pò di gavetta i 3 sono arrivati a raccogliere i primi successi ed a sviluppare sotto sotto il loro engine chiamato Offset Engine.



Come molto poco raramente succede, di questi tempi, un grande dirigente di un colosso quale la Intel, leggendo keepintech.it (see…magari), si è accorta della validità di questo progetto e dei suoi autori e ne ha proposto l’acquisizione, per la gioia dei tre che, per ora, dicono che il gioco in questione avrà una grossa spinta grazie a questo big sponsor. Ma immagino che la loro gioia sia riposta in qualche altro motivo.

Ancora una volta si è dimostrato che l’informatica ha bisogno soprattutto di idee liberamente circolanti e di gente di buona volontà per realizzarle ed ancora una volta iniziare in un garage è stato beneaugurante per chi pensava sin dall’inizio di essere destinato a lasciare un piccolo segno nel nostro mondo (informatico)…mi toccherà armarmi di scopa e fare un pò di ordine nel mio…

Zac

JoikuSpot: l’hotspot nel tuo Symbian

Vi presento uno Zac tool un pò particolare: per utilizzarlo infatti dovete essere dotati di un cellulare Symbian S60 v3rd che al contempo sia dotato di connettività Wi-Fi ed inoltre essere in possesso di una conveniente tariffa per la connessione UMTS. Soddisfatti questi requisiti minimi JoikuSpot vi consente di condividere a chiunque sia nel raggio del Wi-Fi del cellulare la connessione ad internet di quest’ultimo. In pratica trasforma il cellulare in un comodo HotSpot.

La cosa simpatica di questo sistema è che connettersi con un PC o un Mac sfruttando il cellulare diventa molto più semplice ed immediato (anche se il consumo della batteria è maggiore) visto che non occorre installare PC Suite, drivers e altre diavolerie del genere. La soddisfazione per me è stata ancora maggiore visto le intrinseche difficoltà che avevo a sfruttare la connessione UMTS/HSDPA con il Leopard utilizzando un Nokia E51. Adesso tutto è particolarmente immediato.

Il software è in versione beta e non consente di impostare le opzioni di sicurezza e manca il supporto ad alcuni protocolli come FTP ed IMAP, ma gli autori garantiscono che saranno presenti nella versione finale. L’interfaccia inoltre si presenta con un comodo contatore di bytes inviati e trasferiti per tutti coloro che utilizzano tariffe a consumo.

Zac

Quando il gioco si fa duro…

…vi scrivo dal mio cellulare per segnalarvi la scesa in campo di Google in difesa di Yahoo (come saprete Microsoft ha offerto 44 miliardi $ per l’acquisto di Yahoo). Sul suo blog ufficiale la grande G indica lei e big Y come i paladini dell’apertura di Internet e della sua innovazione. Yahoo in mano alla Microsoft vorrebbe dire (forse) lasciare il mercato dei browser, degli IM e delle web mail in mano di coloro che sono sempre stati contrari agli standard aperti ma piuttosto ai monopoli.

Insomma Google paladina delle libertà degli utenti della rete e Microsoft, al solito, la cattiva di turno con la sua ostile offerta che, di fatto, taglia fuori qualsiasi possibile avversario. E voi? Da che parte state?

Zac

L’angolo del giapponesino

Leggendo il futuribile Technology Review del MIT sono venuto a conoscenza dei progressi nell’ambito delle memorie non volatili (chi ha fatto il gesto del gabbiano?). In particolare Intel ha presentato lo stato dell’arte delle memorie phase change, differenti dalle memorie a stato solido in quanto memorizzano le informazioni nella modalità di aggregazione degli atomi e non negli elettroni (maahh!).

Finora la ricerca aveva individuato due possibili stati di aggregazione: amorfo (scarsamente organizzati) e cristallino. Ma in un lavoro presentato ad un conferenza sui circuti a stato solido si è evidenziato come esistano due ulteriori stadi intermedi che possono essere utilizzati per la memorizzazione delle informazioni.

Senza portarla troppo alle lunghe pare che il divario prestazionale (in termini di capacità di immagazzinamento) tra flash e phase-change sia stato colmato ma, a quanto si legge, le memorie phase-change avrebbero prestazioni di accesso ai dati paragonabili a quelle dell DRAM/SRAM (GULP!). Beh questo lascia intravedere potenzialità enormi al mobile computing prossimo venturo.

Vedremo cosa saprà fare il giapponesino che, piccolo com’è, nascosto nelle nostre vicinanze negli angoli più impensabili, sappiamo, ascolta da sempre i nostri astrusi discorsi tecnologici (e da un pò di tempo legge anche il nostro blog).

Zac

Un balzo nel futuro prossimo…

Riprendendo un articolo del blog FuturoProssimo, non potevo non presentarvi quest’incredibile prodotto che sta per arrivare nei mercati a brevissimo con un costo che va da 100€ a 140€. La penna è in grado di registrare ciò che scrivete sincronizzando la scrittura con l’audio: immaginate di prendere appunti durante una lezione; sareste in grado di trasferire quello che scrivete e, per ciascuna parola scritta, ascoltare quello che diceva il prof. in quel momento! WOW!

Oltre a questo, la penna è in grado di tradurre quello che scrivete e può essere configurata attraverso fogli speciali (eventualmente stampabili in proprio) che possono indicare alla penna di compiere alcune azioni (utilizzabili tramite pc) come muovere un cursore e configurare i parametri della penna. Un software su PC consentirà di effettuare un’OCR di ciò che si è scritto per ritrovare velocemente la parte di appunti desiderata.

Ovviamente la penna funziona in maniera stand-alone. Un video vale più di mille parole.

Zac