CEIBO

domingo 27/abril/2008

¿Como empezar con SWT?

Filed under: General,Programación — Hernan Galante @ 7:49 pm

Introducción

Una de las principales tareas a realizar cada vez que comenzamos con un nuevo framework o herramienta es saber rápidamente algunos detalles de como manejarnos. Ejemplo de esto son entender la arquitectura básica, saber como realizar las tareas básicas (arrancar, suspender, o detener el proceso) y como obtener las actualizaciones. Mínimamente con estos tres conceptos claros sobre una herramienta podemos usarla y explotarla satisfactoriamente. En este artículo pretendemos dar estos tres conceptos al lector.

Arquitectura del SWT

Smalltalk Web Toolkit es un framework para la construcción de aplicaciones web. Sus principales diferencias con respecto a otros frameworks es su arquitectura basada en Comet y un ambiente Smalltalk cliente hecho en JavaScript a través de un traductor de código Smalltalk-JavaScript. Estas dos diferencias hacen que las aplicaciones web rompan la desincronización del protocolo HTTP (gracias a Comet) pudiendo el server enviar contenido a sus clientes conectados, y gracias al traductor, todo el JavaScript necesario se escribe en Smalltalk sin tener que manipular en un proyecto varios lenguajes y tecnologías, pudiendo el desarrollador enfocarse más en el núcleo de su problema y no tanto en el entorno de como resolverlo.

Tareas Básicas

Algunas de las tareas básicas que requerimos conocer para hacer uso del framework son las siguientes:

1) Como arrancar el ambiente y el servicio
2) Como monitorear el servicio
3) Un «Hola Mundo»

Arrancando Squeak (Linux)

Squeak es un Smalltalk multiplataforma, más allá del ejemplo que citaremos aquí puede correr en muchos otros operativos.

Running Squeak
Fig. 1 - Corriendo el ambiente

Una vez dentro del ambiente, debemos arrancar el servicio. Para ejecutar una expresión Smalltalk la seleccionamos (de manera que todo el texto quede pintado) y luego podemos ejecutarlo con la combinación de teclas ALT+d ó ALT+p.

Arrancando SWT

La manera más fácil de saber si el framework está corriendo es apuntar nuestro navegador a su dirección default: http://127.0.0.1:2222. Si nos muestra la página (Fig. 2) con todas las aplicaciones disponibles, entonces el framework está corriendo.

Presentation web page
Fig. 2 - Página principal de SWT con todas las aplicaciones

En caso de que no esté corriendo, presentamos una serie de expresiones útiles a ser evaluadas en un Workspace de Smalltalk.
Estas expresiones nos permiten parar, arrancar o resetear el servicio.

SWTApplicationRunner start.
SWTApplicationRunner stop.
SWTApplicationRunner reset.
SWTApplicationRunner cleanUp.

¿En que casos debemos hacer uso del reset?
En caso de que se esté produciendo algún error inesperado grave, el #reset para el framework, mata la instancia actual del servicio y lo arranca de nuevo.

¿Cuál es la diferencia con el #cleanUp y el #reset?
El #cleanUp para el servicio, y es un proceso más profundo, hace una limpieza de las instancias de todos los aplicativos y del traductor de Smalltalk-JavaScript. Aunque no vuelve a arrancarlo explícitamente al servicio. Este método es usado cuando queremos hacer alguna actualización o mantenimiento.

Monitoreando el Servicio

El framework loguea actualmente todos sus pasos importantes, la principal salida es el Transcript de Smalltalk. Como vemos en la figura a continuación, en este Transcript nos muestra que se ha «salvado» la imagen del ambiente, y que luego hemos arrancado el servicio con el #start. Allí nos muestra de donde está tomando los recursos (imágenes, sonidos, etc) y en donde está atendiendo el servicio.

SWTApplicationRunner start
Fig. 3 - Arrancando SWT

También podemos ver el log en la consola de Linux, como en la pantalla que continua

Linux console log
Fig. 4 - Log en la consola de Linux

El clásico «Hola Mundo»

No es el objetivo de este artículo como programar sobre SWT, pero explicaremos un simple «Hola Mundo» que nos puede servir como base para comenzar a entender al framework.
La arquitectura del framework para construir aplicaciones se base en una parte cliente (la que correrá sobre el navegador) y la parte servidora (la que correrá sobre el servidor web y será la encargada de manipular a los clientes y proveerlos de la información, eventos y actualizaciones). Las clases en cuestión son: SWTClientApplication y SWTServerApplication. Para crear un nuevo aplicativo solo necesitaremos crear una subclase para el cliente y otra para el server. Tomaremos como ejemplo al aplicativo de «Ping/Pong» el cual es una especie de «Hola Mundo».

Ping-Pong
Fig. 5 - El aplicativo Ping/Pong

El código del Ping/Pong es bastante simple, la idea detrás del aplicativo es que el cliente muestre una página muy simple, y al cliquear en el botón se envíe un mensaje #ping al servidor, y este le conteste al cliente, con un mensaje #pong.

Existe otro articulo llamado Mini aplicaciones sobre Smalltalk Web Toolkit (SWT) que abarca a este ejemplo de «Hola Mundo» en profundidad.

Actualizando SWT

¿Como mantener actualizado el código en SWT? Para responder esta pregunta, vamos a explicar como un proyecto en Squeak, en general, también se actualiza y mantiene. Existe un servicio, que es un repositorio de código para Squeak llamado SqueakSource.

Squeak Sourcepage
Fig. 6 - SqueakSource

En este sitio hay docenas de proyectos open source para la comunidad. SWT es un proyecto más publicado de esta manera. El sitio oficial dentro de SqueakSource es http://www.squeaksource.com/SWT.html. La mejor forma de mantenerse informado es apuntar nuestro lector de RSS favorito a http://www.squeaksource.com/SWT/feed.rss. Cada nueva versión que se publique será publicada de forma automática. Para actualizar nuestro ambiente Squeak a esta nueva versión usaremos una herramienta llamada Monticello. (Fig. 7)

Actualizando con Monticello 1
Fig. 7 - Creando un nuevo paquete en Monticello

¿Como actualizar usando Monticello?
Monticello se abre desde el menú principal de Squeak (dando click sobre el escritorio de Squeak se despliega un menú). En el menú, elegir las opciones «Open» y luego «Monticello browser».

Menu para abrir Monticello
Fig. 8 - Secuencia para abrir Monticello

Una vez que tenemos abierto el Monticello, debemos crear un nuevo paquete (Package), nos pedirá el nombre, al cual nombraremos como SWT o como nos sea útil. Luego, que tenemos el nuevo paquete, le vamos a indicar donde está el repositorio, dando click en el botón que dice «+Repository». Elegimos la opción HTTP, e ingresamos la dirección en el cuadro http://www.squeaksource.com/SWT.

Actualizando Monticello 2
Fig. 9 - Después de crear el paquete, creamos el repositorio, y seleccionamos el HTTP

Una vez creado el repositorio, lo seleccionamos y presionamos el botón «Open». Esto hará que se conecté al repositorio, y nos abra otra ventana donde nos mostrará las versiones disponibles para cargar desde el repositorio en nuestro ambiente.

Actualizando Monticello 3
Fig. 10 - El repositorio mostrando los distintos frameworks y sus versiones para ese proyecto

Para actualizar nuestra versión simplemente elegimos la versión, y luego apretamos el botón «Load» (cargar).
Cuando esta operación termine nuestro ambiente estará con la versión que hemos seleccionado. Si una versión es dependiente de otra versión, nos preguntará si también lo deseamos cargar.

Resumen

En este artículo hemos visto como arrancar el ambiente, como actualizarlo y como hacer los mantenimientos básicos.

Deja un comentario »

No hay comentarios aún.

RSS feed for comments on this post. TrackBack URI

Deja un comentario

Crea un blog o un sitio web gratuitos con WordPress.com.