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.
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.
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.
Fig. 3 - Arrancando SWT
También podemos ver el log en la consola de Linux, como en la pantalla que continua
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».
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.
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)
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».
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.
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.
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