Openlaszlo: l’open tra le applicazioni RIA

Per chi non lo conoscesse Openlaszlo è una valida alternativa open source e multpiattaforma in ambito RIA.

Non voglio tratternermi molto sull’argomento RIA, occorre dire che nel panorama RIA non è facile scegliere tra i diversi framework: Adobe Flex, JavafX, Silverlight oltre a Google Web Toolkit e Echo che avevo già accennato in un precedente post.

A parte gli ultimi due che permettono di programmare direttamente in linguaggio Java, gli altri utilizzano nuovi tipi di linguaggi: Flex usa l’Mxml, JavaFx usa il JavaFx script, Silverlight Xaml mentre il nostro Openlaszlo usa Lzx.

Lzx è un misto tra Xml e Javascript, non c’è da preoccuparsi di imparare questo linguaggio perchè risulta di facile uso e vedrete il perchè. Lzx viene trasformato in SWF (file flash) poi interpretato dal browser e dal Flash player installati.

Openlaszlo, viene rilasciato con licenza Common Public License 1.0 e ha bisogno dei seguenti requisiti:

  • Java 1.4 o superiore
  • Un java servlet container, di cui viene già fornito con l’installazione
  • Flash Player 7 o superiore

Come ho detto dispone di un java servlet container che è Apache Tomcat che anche se non avete mai visto non avrete difficoltà ad usare.

Potete scaricare OpenLaszlo direttamente dal sito. Io ho scaricato la versione 4.0.9 per Linux che occupa circa 35MB.

Aggiornamento: per questioni di modularità alla fine ho preferito installare Tomcat 5.5.26 e la versione dev Kit di Openlaszlo (sempre 4.0.9) e non la sola servlet. Se preferite anche voi questo modo, scaricate Tomcat core e l’administration web application (che per chi non lo sapesse hanno solo reso tomcat più modulare staccando il pannello di amministrazione a sinistra). Sovrascrivete le cartelle contenute nell’administration web application in Tomcat e scegliete se copiare direttamente openlaszlo nella cartella webapps oppure fare l’upload del file war dal pannello di amministrazione.

Openlaszlo non fornisce pero’ un ambiente di sviluppo ed ecco che vi consiglio di scaricare Spket IDE che è un editor javascript che riconosce la sintassi Lzx che è gratuito per usi non commerciali mentre per uso commerciale costa 30$ a persona altrimenti potete usare un comune editor di testo magari che riconosca la sintassi xml e javascript.

Il file di installazione è un file jar che viene eseguito ovunque sia installato java, e la sua dimensione massima è circa 10MB (che ho scaricato) altrimenti potete scaricarlo come plugin per Eclipse poichè proprio su Eclipse si basa.

Aggiornamento: per altri tool vedere qui!

Torniamo a Openlaszlo. Una volta scaricato il file, estraetelo e vi ritroverete una cartella il cui nome è lps-4.0.9.1. All’interno troverete la cartella Server in cui è presente la cartella tomcat-5.0.24 dove si trova il nostro bel server.

Di Tomcat vi serve solo sapere il necessario in particolare la cartella bin e la cartella conf. Nella cartella bin trovate essenzialmente i file eseguibili startup.sh e shutdown.sh (e gli equivalenti bat per Windows) che avviano e fermano Tomcat. Nella cartella conf trovate il file di configurazione server.xml e il file per l’accesso agli utenti tomcat-users.xml. Esiste poi la directory logs dei file di log dove potete sbirciare in caso di problemi.

Il file di configurazione potete non toccarlo a meno che volete cambiare la porta su cui gira nel caso ci sono altri server che possono essere in ascolto sulla stessa. Al file degli utenti, vi consiglio di aggiungete la linea:

<user username=”admin” password=”admin” roles=”admin,manager”/>

Subito dopo le righe dei ruoli ma prima del tag </tomcat-users>. Questo perchè per ragioni di sicurezza il ruolo di amministratore viene disabilitato, ora lo abilitiamo ma ovviamente potete scegliere una qualunque password.

Siamo pronti per avviare Tomcat, ci serve un’ultima cosa, impostare la variabile d’ambiente JAVA_HOME dove Tomcat puo’ trovare la java virtual machine. Su Ubuntu, che è la distribuzione che uso, la java virtual machine dovrebbe stare in /usr/lib/jvm/ al cui interno ci sono le varie cartelle a seconda delle java virtual machine installate e il link simbolico a quella corrente (che potete determinare dando il comando java -version), ad esempio nel mio caso do il seguente comando:

export JAVA_HOME=/usr/lib/jvm/java-1.5.0-sun

Ora siamo effettivamente pronti, eseguiamo il file startup.sh che vi ho descritto prima e partirà Tomcat a cui potete accedere dal vostro browser andando all’indirizzo:

http://localhost:8080/

Nella colonna a sinistra cliccate su Tomcat Manager e dovrete mettere l’utente e la password che abbiamo visto prima. Vi compare l’elenco delle applicazioni che sono caricate tra cui OpenLaszlo Server a cui potete accedere semplicemente cliccando sul path “/lps-4.0.9.1“.

Ora l’accesso e la configurazione di Tomcat potevo anche risparmiarvelo ma per chi non lo conosce ne ho approfittato per descriverlo, bastava quindi digitare il path:

http://localhost:8080/lps-4.0.9.1/

Comunque sia ora dovreste trovarvi alla pagina iniziale di Openlaszlo e vi consiglio di cliccare direttamente sul link Welcome dove vi viene chiesto di eseguire Openlaszlo explorer in versione Flash o DHTML. Vi viene data questa opportunità anche perchè Openlaszlo non solo trasforma Lzx in formato SWF ma anche in DHTML permettendo quindi la visualizzazione su browser non dotati di Flash Player (direi più che altro nei dispositivi mobili). Il risultato in SWF e DHTML è sorprendentemente uguale!

Tra l’altro una applicazione lzx puo’ essere creata in modo proxies cioè colloquiando con il server e in modo SOLO cioè una applicazione standalone (il vostro flash da incorporare in una pagina html) più vincolante ma più performante.

In ogni caso lo avviate, sulla sinistra vi compare un menu dinamico che vi illustra le basi di OpenLaszlo e che vi consiglio di seguire passo per passo.

Nel menu a sinistra troverete alcune demo, dei tutorial per spiegarvi l’uso delle componenti, alcune piccole applicazioni, le componenti e la documentazione (senza andare on line). La documentazione è parzialmente aggiornata alla versione attuale (viene consigliato il rimando a quella della versione 3.4) tuttavia si presenta bene (potete vedere un esempio qui) dove per ogni oggetto viene mostrato un esempio, la descrizione della super classe e gli eventuali metodi ereditati, i propri metodi ed eventi e il confronto tra javascript e lzx.

Come avrete notato, Openlaszlo integra oggetti predefiniti quali pulsanti, liste, oggetti in generale e questi possono essere dotati di eventi. Esistono eventi predefiniti (al clic del mouse, ecc.) o eventi che potete definire voi (ad esempio particolari animazioni). Gli oggetti stessi poi possono essere racchiusi in una classe e quest’ultima puo’ essere estesa. Nel complesso quindi lzx si presenta come un linguaggio ad oggetti gestito ad eventi.

Openlaszlo aiuta anche con una console che puo’ essere usata per modificare l’applicazione in real time (modificando un oggetto o il modo in cui l’applicazione deve essere compilata), come debug scrivendo nel codice dei metodi che stampano un output su console e per esplorare lo stato di un oggetto all’interno della applicazione

Per quanto riguarda i dati, occorre dire che Openlaszlo, ha bisogno di ottenere dati in formato xml, caricando direttamente un file xml oppure mediante una pagina dinamica (JSP, ASP, PHP ecc.) che trasformi i dati presi da un database in formato xml. Un esempio:

<canvas>
<dataset name=”dset” src=”phonebook.xml”/>

<simplelayout axis=”y”/>

<view datapath=”dset:/rubrica/impiegato”>
<simplelayout axis=”x”/>
<text datapath=”nome/text()”/>
<text datapath=”cognome/text()”/>
<text datapath=”telefono/text()”/>
</view>
</canvas>

Come potete vedere con tag dataset si prende la sorgente di dati, che puo essere un indirizzo di una pagina dinamica, e con il tag datapath si estrae il contenuto che vogliamo. In particolar modo, per estrarre il contenuto si usa il linguaggio Xpath a cui vi rimando qui per una rapida occhiata.

Dopo aver visto tutto probabilmente vi verrà voglia di sperimentare e creare da voi stessi una applicazione lzx.

Una volta installato Spket IDE (noterete come sia stato ridotto al minimo Eclipse), potete creare un nuovo progetto e creare un nuovo file lzx. Mentre digitate vi viene consigliato il tag o l’attributo che ne fa parte, sotto vi compare una breve descrizione del tag, a destra troverete gli snippet (tag completi di attributi) che potete trascinare nel file mentre in basso a sinistra potete navigare nella struttura del file.

Nota: per poter poi eseguire l’applicazione in via rete questa va copiata all’interno della cartella lps-4.0.9.1 che si trova all’interno della cartella Server che abbiamo visto prima. Quindi con l’editor Spket quando create un file linkatelo direttamente nella cartella cosi’ non avrete necessita’ di spostarlo poi.

Supponiamo di avere creato all’interno della cartella lps-4.0.9.1 la cartella esempio in cui avete creato un file di nome prova.lzx dovrete digitare nel vostro browser:

http://localhost:8080/lps-4.0.9.1/esempio/prova.lzx

e vi comparirà la vostra applicazione.

C’è da dire che se mettete nel tag canvas l’attributo debug impostato a true (debug=”true”) vi compare la console di debug di base altrimenti potete spuntare la casella debug nella barra di Openlaszlo quando compilate.

Questo è un esempio fatto da un mio amico: http://lsnidero.altervista.org/Ecoles/index.lzx.html
Un grazie a Lorenzo per averla rilasciata in GPL e grazie per i consigli.

Per ulteriori chiarimenti vi faccio notare che è nata la comunità italiana su Openlaszlo a cui vi invito a partecipare.

Come trovo nuovi dettagli li aggiungo…

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s