miércoles, 9 de diciembre de 2009

OnJ2EE

Hace unos días creé un nuevo blog enfocado al desarrollo en general pero más que nada a la plataforma Java (J2EE más que nada, JavaFX, JavaSE, etc.). OnJ2EE es el nombre de este blog, pero como ya comenté, este no se limita solo a esta plataforma. Entre los temas tratados en el blog, comienzo con la certificación SCWCD que es para lo que me estoy preparando actualmente.
En la barra izquierda del blog podrán encontrar los feeds del blog OnJ2EE.
Saludos y espero que les guste.
Cualquier aporte será bienvenido.

http://onj2ee.blogspot.com/

viernes, 31 de julio de 2009

Grupo OSUM - UTN MDP


Hace unos días cree un grupo en la red social de sun OSUM (Open Source University Meetup). Este sitio es una comunidad de estudiantes, desarolladores, etc. Los miembros de la comunidad tienen acceso a cursos gratuitos, eventos, y muchos otros recursos para perfeccionar sus habilidades.
Existen diferentes grupos de universidades de todo el mundo. Y como mi universidad (la UTN Centro de estudios Mar del Plata) no tenía un grupo, me decidí a crear uno.
La idea de este grupo es compartir investigaciones, inquietudes y todo tipo de información de utilidad sobre JAVA y cualquier otra tecnología open source. Los invito a participar y unirse al grupo, así creamos un lugar que permita compartir las experiencias tanto de los egresados como de los que hoy en día siguen estudiando en la UTN mdp.
De más esta decir que cualquier persona (ajena a la UTN) que se quiera unir esta invitado a compartir todo tipo de tecnologías y experiencias. Les dejo el link a continuación:
http://osum.sun.com/group/utn_mdp

jueves, 16 de julio de 2009

Aplicación cliente WebooksFX

En entradas anteriores (Servicio Web Webooks) explicamos la implementación del servicio web en php para la consulta de libros. Hoy vamos a explicar la aplicación cliente desarrollada en JavaFx.

La aplicación utiliza el patrón MVC con el fin de desacoplar la Vista del resto de las capas. Esto fue pensado así, debido a que JavaFX no es un 100% portable entre diferentes plataformas. Ciertos objetos del set de librerías no son compatibles en todas las plataformas, siendo la de Escritorio la que más cantidad de estos tiene. De manera que al utilizar este patrón, intentamos minimizar dicho problema problema, teniendo que reescribir solo las partes de la vista que necesitemos para la nueva plataforma.

En base a lo anterior, decidimos dividir la implementación en dos aplicaciones:
  • WebooksFX
  • WebooksFX_Desktop
La primera contiene el set de clases de las capas de Modelo y Controladora, y las clases abstractas de la Vista.

La segunda compone todo el set de clases correspondientes a la implementación de la Vista para una aplicación de escritorio. Todas estas heredan parte de su lógica de la Vista abstracta definida en WebooksFX.

En caso de necesitar desarrollar la aplicación para otra plataforma, tendríamos que crear una aplicación nueva, utilizando las librerías de WebooksFX, implementando la Vista Abstracta.

Puedes descargar el código de la aplicación desde el svn:
http://webooks.googlecode.com/svn/trunk/
Las aplicaciones fueron realizadas con la versión 1.1 de la SDK de JavaFX. No es compatible con la actual versión 1.2

Arquitectura de la aplicación


VISTA

Dentro de la vista se encuentran los componentes visuales. Estos permiten que la aplicación interactue con el usuario. Esta capa no contiene lógica de negocio, solo contiene los componentes visuales, y métodos para alterar sus estados. La lógica es manejada por la controladora.
CARGANDO
Esta es la pantalla que se muestra al comienzo de la aplicación, y es la encargada de mostrar un mensaje de espera mientras se establece la conexión con el servidor para obtener los servicios disponibles, contra los cuales la aplicación podrá interactuar más tarde. El resto de las pantallas se encuentran ocultas, de manera de dar un efecto de transparencia, para que solo sea visible la imagen del logo.
BÚSQUEDA
Esta pantalla es la que contiene las opciones para que el usuario pueda realizar una búsqueda de libros. Dentro de esta pantalla podemos encontrar: la barra de búsqueda, los resultados, y el paginador de resultados. La barra de búsqueda nos permite ingresar un texto como parámetro de búsqueda. También posee opciones de configuración avanzadas, permitiendo filtrar por un criterio en particular, y seleccionar dentro de los servicios disponibles, cual de los motores de búsqueda utilizar. Una vez que se realize una búsqueda, se muestra una ventana de carga para indicar que la petición ha sido enviada, y se está procesando. Cuando el procesamiento haya terminado, la ventana de carga desaparece, y se generan varios elementos gráficos, conteniendo los resultados de la petición. A partir de este punto se puede realizar otra petición de búsqueda, o acceder al detalle de un libro. En el primer caso, se repite el proceso anterior. En el segundo, se vuelve a mostrar la ventana de carga, y se envía una petición para obtener el detalle de un libro.
DETALLE
Esta pantalla refleja todos los datos detallados de un libro en particular (Imagen, nombre, autor, editorial, sinopsis, cantidad de páginas).

CONTROLADORA

La controladora es la encargada de procesar las acciones iniciadas en la vista, y desencadenar un evento para las mismas, ya sea, derivando el proceso al modelo, y/o modificando el estado de la vista. Por cada vista implementada, hay una controladora, de manera que en el proyecto existen 3 controladoras: ControladoraVista, ControladoraModelo y ControladoraDetalle. A su vez, algunas controladoras pueden derivar el proceso ellas.
Las controladoras también atienden la respuesta que el modelo haya procesado, alterando el estado de la vista en base al resultado obtenido.

MODELO

Capa que contiene el modelo de negocio. En el caso de la aplicación WebooksFX, es la que se encarga de realizar las peticiones al Servicio Web Webooks, y parsear la respuesta obtenida, devolviendo objetos de tipo: Libro, Servicio, o ColeccionLibros.