jueves, 31 de mayo de 2012

Apache Tapestry

Hoy traemos al blog de Fórum Técnico otro de los frameworks para programación en Java, en este caso de la conocida Fundación Apache.

Apache Tapestry es un framework Java de código abierto para la implementación de aplicaciones web mediante la arquitectura Modelo-Vista-Controlador (MVC). Fué creado en 1999 por Howard Lewis Ship, y posteriormente fue adoptado por la Fundación Apache. Actualmente se encuentra en la versión 5.

Se distribuye bajo la licencia Apache Software Licence 2.0.

Tapestry sigue el enfoque de desarrollo basado en componentes y orientado a eventos,frente al desarrollo basado en acciones que emplea por ejemplo Apache Struts.

Arquitectura

Apache Tapestry implementa el paradigma Modelo-Vista-Controlador (MVC) para la separación total de la lógica y la presentación a nivel de framework y también en sus componentes individuales. Su enfoque MVC es, por tanto, más fuerte que en otros frameworks. Muchos de los componentes principales se implementan en términos de interfaces públicas para dar a los desarrolladores una gran flexibilidad en el uso.





Tapestry trata de ocultar la API de los servlets a los desarrolladores. Incluye una línea precisa de informes de errores y plantillas HTML fáciles de usar. Las plantillas de Tapestry suelen ser archivos HTML, pero también pueden ser WML o XML.

Uso con otros lenguajes 

Es posible utilizar Tapestry con otros lenguajes, como Groovy y Scala, siempre que se puedan ejecutar en la máquina virtual Java. Esto nos da una gran versatilidad y es poco habitual en los frameworks.

En el caso de Groovy, además de compilar con groovyc lo único especial que se debe hacer es incluir en la aplicación la librería groovy-all-x.x.x.jar para que las clases groovy funcionen correctamente.

Ejemplo

Preparamos una clase Java denominada HolaMundo:

package pruebas.tapestry.helloWorld.components;
import org.apache.tapestry5.MarkupWriter;

public class HolaMundo {
   protected boolean beginRender(MarkupWriter writer) {
      writer.write("Hola mundo!");
   return false;
   }
}
Ahora sólo necesitamos insertar dicha clase en una plantilla hecha con Tapestry:

<html xmlns:t="http://tapestry.apache.org/schema/tapestry_5_1_0.xsd">
<head>
   <title>Hola mundo Tapestry !!!</title>
</head>
<body style="font-family: Verdana; font-size: 10px;">
   < b ><t:holaMundo/>< /b >
</body>
</html>
 

jueves, 5 de abril de 2012

Descubriendo el Google Web Toolkit

Google Web Toolkit (GWT) es un framework de desarrollo en Java al que vale la pena acercarse.  Sirve para desarrollar clientes ricos en AJAX sin necesidad de programar en el tedioso Javascript. El desarrollo se hace en Java, para posteriormente traducir el código automáticamente a Javascript y HTML.
Ha sido desarrollado por Google para algunas de sus propias aplicaciones, y publicado como software libre.

Cómo se usa

  1. Se desarrollar la aplicación en Java. Es muy interesante que la aplicación se puede ejecutar y depurar directamente en cualquier máquina virtual de Java y casi cualquier entorno de desarrollo. ¡No hace falta navegador!
  2. Se usa el compilador del GWT para convertir el código a Javascript y HTML.
  3. Ya se puede desplegar en un servidor web.

Ventajas 

Este enfoque tan poco habitual tiene sus ventajas. La fase de desarrollo es más fácil al prescindir de Javascript. Las llamadas al servidor están completamente manejadas por GWT. Se ocultan las diferencias entre navegadores. GWT se encarga de compatibilizarse con casi cualquier navegador.
A cambio, todo no pueden ser ventajas. Resulta un poco más complicado adaptar detalles de diseño, accesibilidad, etc.

Plugin para Eclipse


Google ha desarrollado un plugin para Eclipse que incluye la Google App Engine (permite crear y alojar aplicaciones web en los servidores de Google) y el GWT. Se instala desde http://dl.google.com/eclipse/plugin/3.7 usando el Eclipse update manager.

Una vez instalado, se pueden ajustar las preferencias en Window -> Preferences -> Google -> App Engine / Web Toolkit.

Para saber más


martes, 14 de febrero de 2012

Entorno Oracle preconfigurado en VirtualBox

Una de las mayores dificultades para iniciarnos en la programación J2EE es la dificultad para montar el entorno adecuado de desarrollo/pruebas. Con excepción de aquellos que tienen la suerte de trabajar en un CPD (centro de proceso de datos), difícilmente en nuestro equipo casero podemos montar con facilidad los gestores de bases de datos, servidores de aplicaciones y demás bestias necesarias. En el caso de Oracle, el montaje y configuración tradicionalmente ha sido mucho más críptico de lo que la mayoría se podía permitir, y con el problema de las licencias privativas aún más.
Lo que os presentamos es el sueño de cualquier estudiante o profesional independiente que quiera experimentar, desarrollar y probar un auténtico entorno Oracle ya configurado y funcionando. Las técnicas de virtualización nos permiten acceder a cosas que antes eran ciencia ficción. Recientemente, Oracle ha puesto a disposición del público un conjunto de máquinas virtuales ya preconfiguradas con distintos entornos, todas ellas licenciadas para poder usarse libre y gratuitamente en tareas de investigación y desarrollo (evidentemente no en producción). Podemos acceder a todo ello en la página de Oracle Technology Network. Sólo hay que tener una cuenta de usuario gratuita para descargar y usar libremente cualquiera de estas máquinas virtuales.

Para aquellos que no sepan cómo utilizar máquinas virtuales les recomendamos el curso de Introducción a la Virtualización con VirtualBox en forumtecnico.com.
El entorno en el que vamos a centrarnos contiene, nada más y nada menos que los siguientes productos:
  • Oracle Enterprise Linux 5 Update 5
  • Oracle Database 11g Release 2 Enterprise Edition (11.2.0.1)
  • Oracle WebLogic Server (10.3.4.0)
  • Oracle WebCenter Portal Framework 11gR1 (11.1.1.4.0)
  • JDeveloper (11.1.1.4)
  • Oracle WebCenter Portal Extension for JDeveloper (11.1.1.4.0)
  • Oracle Universal Content Management 11g R1 (11.1.1.4.0)
Se trata de un conjunto de software excepcional que nos permite tener el estado del arte del desarrollo J2EE y de portlets, que hasta ahora era tan difícil de conseguir y montar. Todo un tanto que se apunta Oracle para dar difusión a sus plataformas.
Descarga
Para descargar esta máquina virtual accedemos al siguiente enlace:
http://www.oracle.com/technetwork/middleware/webcenter/portal/downloads/owcs-portalfw-vbox-284132.html
ACTUALIZACIÓN: El enlace ha cambiado. Ahora es este:
http://www.oracle.com/technetwork/community/developer-day/vbox-jdev-webcenter-410901.html


Buscamos la sección Setup Instructions donde están los enlaces a 16 archivos, que son fragmentos de la imagen de la máquina virtual. Además hay un enlace a un archivo OVF, que es la configuración de la máquina, y un MD5, que contiene las sumas de verificación para comprobar la integridad de los archivos.
Para facilitar la descarga podemos usar cualquier gestor de descargas o bien la opción por defecto del navegador. En nuestro caso, hemos usado DownThemAll sin problemas (con la salvedad de que debemos estar identificados con la cuenta Oracle antes de lanzar el gestor).
Una vez tengamos todos los archivos, hay que juntarlos en dos mayores con la herramienta gratuita 7-Zip. (p7zip en Linux, 7zX en Mac). Una vez concluido el proceso debemos asegurarnos de tener:
  • Un archivo de imagen virtual REAVDD-HOL-WC-disk1.vmdk (3 GB)
  • Otro archivo de imagen REAVDD-HOL-WC-disk2.vmdk (11 GB)
  • Un archivo de configuración REAVDD-HOL-WC.ovf (170 KB)
Si por alguna razón no hemos obtenido esto, es posible que uno o varios archivos no se hayan bajado bien. Podemos usar las opciones de verificación del propio 7-Zip para verificar su integridad, o usar las sumas MD5 que mencionamos antes.
Importación en VirtualBox
Por supuesto, debemos asegurarnos de tener el espacio necesario en disco. Concretamente hacen falta como mínimo 30 GB libres. Otros requisitos evidentes son los de procesador y memoria. Con un procesador de menos de 2 GHz, menos de 4 GB de RAM, o un sistema operativo de 32 bits la cosa puede ser bastante impracticable.
Otro prerrequisito es que debemos tener instalado el Extension Pack de VirtualBox. Arrancamos VirtualBox y seleccionamos la opción Archivo->Importar servicio virtualizado.

Se nos muestra un asistente:

El uso del asistente es trivial. Seleccionamos el archivo OVF y dejamos todo por defecto. El resultado, después de un largo proceso de importación será una nueva máquina virtual en nuestra consola de VirtualBox.
Configuración
Ya sé que estás impaciente por arrancar ese monstruito que acabas de instalar, pero antes necesitamos asegurarnos de que la configuración es la correcta para nuestro equipo. Concretamente, tenemos que fijarnos en dos detalles:
  • La memoria de la máquina virtual, como siempre, no debe superar más o menos la mitad de la memoria del equipo anfitrión. Como ya sabes por nuestro curso, VirtualBox nos señala la zona roja que no debemos superar.
 
  •  La configuración de red debe adaptarse a nuestras necesidades. Por defecto, en esta máquina viene configurada con NAT y ciertos puertos abiertos, necesarios para los servicios que vienen instalados. Siempre que sea posible, en este tipo de sistemas "laboratorio", lo mejor es poner el adaptador puente y que la máquina tenga su propia dirección IP para interactuar con ella fácilmente y no entrar en conflictos con los puertos del sistema anfitrión.

  • Si estamos usando un anfitrión Windows de 32 bits (o XP de 32/64), debemos seguir las instrucciones especiales que se indican en la propia página de descarga de Oracle.

¡Por fin! Ejecutando la máquina
Lanzamos la máquina virtual con redoble de tambores y ¡tachán! se arranca una flamante máquina Oracle Linux funcionando.
Recordemos que Oracle Linux es una distribución basada en Red Hat que incorpora una versíón del núcleo de Linux adaptada por Oracle bajo el imponente nombre de Unbreakable Enterprise Kernel (literalmente Núcleo Empresarial Indestructible).

El sistema entra en el escritorio sin pedir clave. En todo caso, la contraseña por defecto es "oracle" para los usuarios root y oracle (superusuario y propietario del software respectivamente) y "welcome1" para el resto de claves.