January 29, 2010

Interacción con JMS

Java Messaging Service es un middleware de comunicación a través de mensajes para Java muy utilizado a nivel mundial, con estandares definidos y varios proveedores.

Actualmente, yo requería utilizar múltiples proveedores de JMS en una aplicacion, entonces para no estar creando implementaciones independientes para cada tipo de proveedor, decidi hacer una interfaz que utilice los estandares JMS y me permita implementar mis clases de forma transparente al proveedor JMS, este es un diagrama de clase de mi diseño:


Patrones de diseño utilizados:

January 16, 2010

DAO - Data Access Object en Java - primera parte

El patrón de diseño DAO facilita el acceso a fuentes de datos a través de elementos transitorios denominados "transfer objects", estos objectos no son mas que simples clases. Una gran ventaja de este patrón, es de la separación exclusiva de las tareas de acceso de datos, dejando a los demas componentes involucrados hacer su trabajo de forma transparente.

Pueden revisar una introducción muy completa en: Patrones de diseño.

El artículo enlazado arriba es muy completo, no pretendo repetir lo que ahi indica, solamente agregar ciertos comentarios y modificaciones a las implementaciones de ejemplo.


Debido a que los objetos DAO proveen operaciones CRUD comunes, no es necesario escribir las operaciones en las interfaces de cada uno de los DAOs, por ejemplo:



Seria muy engorroso hacer esto para cada entidad que manipulemos, pero podemos simplificar las cosas de esta forma:



De esta forma, evitamos repetir la definicion de las operaciones (véa DRY).

Se puede hacer aún mas, utilizando clases abstractas, pero es algo que preferiría evitar, ... nunca me gustaron las herencias... pero tal vez para la segunda parte, nos vemos.

January 11, 2010

Nunca más

Estaba yo un dia leyendo un libro en mi Slackware Linux 13.0, sin preocuparme por nada en el mundo, escuchando buena música, en un estado de completa relajación.

Cuando apareció, el teclado parpadeó repentinamente, el mouse no respondía, la música dejó de sonar...

"Imposible" - dije. El primer cuelgue en mi Slackware Linux desde el 2005, inadmisible.

Intenté leer el log del sistema, pero cada el ordenador se reiniciaba aleatoriamente. Probe mi sistema Ubuntu (testing), instalado en el mismo disco. Fue aun peor, Ubuntu hasta la fecha no puede arrancar.

Al final, probe Windows, - ":-(" - todo bien, no hay problemas... esperen, ... pantallazo azul...

Comprobé la memoria del sistema, sus temperatura, componentes, conectores, ... nada.

Al final, como último intento, limpie el CMOS con un jumper. Y, maravilla, todo funciona de nuevo, no volvio a ocurrir nada inesperado, - al menos en Linux - Slackware no volvió a fallar.

Pero aún me pregunto, qué habra sido, pero algo sucedió. A pesar de haber sido un problema de hardware, Slackware cayó, mi mundo cambió, mi alma, del fondo de esa sombra que flota sobre el suelo, no podrá liberarse. ¡Nunca más!