jueves, 30 de abril de 2009

Integracion 'J2EE - JMF - BLOB' en 3 Motores de Datos Distintos.

Hola como están, en esta oportunidad estoy presentando un demo que muestra la integración de J2EE + JMF + BLOB (Archivos) en 3 diferentes motores de datos. La idea de este demo surgió hace un par de semanas ya que en mi ex-trabajo aparecieron los requerimientos de hacer un sistema que manejara un control de WebCam en tiempo real dentro de la misma aplicación web y yo buscando me encontré con JMF que permitía hacer todo esto y mas ya que es un API para manejo de multimedia, luego surgió otro requerimiento que las imágenes que para la webcam sean en guardadas no en una ruta del servidor sino en la misma BD. Y esto fue un problema ya que no todos los motores de datos manejan la misma clase para guardar el archivo BLOB. Y finalmente recuperar la imagen guardada y mostrarla. Bueno lo anteriormente explicado salio finalmente exitoso y me dio la idea de ir un poco más y preparar un demo como este:

EXPLICACIÒN:
La aplicación que he desarrollado y continuación explicare esta basada en J2EE, JMF, JSF (Tomahawk, Sandbox, Richfaces), trabaja con 3 motores de datos simultaneamente ( MySql, Postgres y Oracle ) y fue desarrollado en la IDE: 'Red Hat Developer Studio'( Que es un Eclipse v3.3 mejorado ). Esta aplicación en si consta de 3 demos:

1er Demo: Búsqueda BLOB 'Applet-Servlet', donde se aplica una lógica de programación basada en 'Applet-Servlet' y muestra un ambiente de consulta para obtener el objeto que trae consigo a mostrar el archivo guardado en la BD como blob. Para la consulta hay que escoger el código del registro y tipo de archivo que se obtendrá de la BD y que ya esta guardada como tipo de dato (Imagen, Música, Video, Documento). Esto será validado al momento de obtener dicho archivo para dependiendo de eso mostrarse en el navegador, en un Applet JMF ( Como 'Control Imagen' o Como 'Reproductor' ).

2do Demo: Búsqueda BLOB 'Jsf-Servlet', donde se aplica una lógica de programación basada en 'Jsf-Servlet' y muestra un ambiente de consulta para obtener el objeto que trae consigo a mostrar el archivo guardado en la BD como blob. Para la consulta hay que escoger el código del registro y tipo de archivo que se obtendrá de la BD y que ya esta guardada como tipo de dato (Imagen, Música, Video, Documento). Esto será validado al momento de obtener dicho archivo para dependiendo de eso mostrarse en el navegador, mediante un Servlet que utiliza un clase que desarrollé llamada 'ManejoContentType' que lee la extensión del archivo obtenido y automáticamente retorna el tipo de ContentType respectivo para que el Servlet retorne en el response.

3er Demo: Demo Mantenimiento BLOB, donde se muestra un mantenimiento completo (CRUD), utilizando las lógicas explicadas anteriormente.

4to Demo: Este demo no es propio de la aplicación web pero es importante ya que muestra el manejo de BLOB ejecutando una clase descomentando y comentando métodos (CRUD), dicha clase esta ubicada en: 'Manejo_Java_BLOB\src\org\java\main\Main.java', recuerda que para la ejecución de esta clase se tiene que haber hecho previamente 'Configuración Previa' y que luego de ejecutar los 4 métodos CRUD de la clase en orden, se tiene que copiar nuevamente el contenido de: 'Manejo_Java_BLOB\fuentes\imagenesPrueba' en: 'C:\Imagenes'.

Para visualizar como luce la aplicación pulsar:
[[ VISUALIZAR ]]


CONFIGURACIÒN PREVIA
Para configurar la aplicación hay que tener ya cargada la aplicación en 'Red Hat Developer Studio o en Eclipse v3.3. Luego hay que ver a cual de los 3 motores de datos que soporta la aplicación nos vamos a conectar, esto al igual que los paràmetros de conecciòn son configurables en el archivo: 'Manejo_Java_BLOB\src\org\java\conexion\jdbc.properties'
( 1=MySql, 2=Postgres, 3=Oracle ).
(Si tenemos los 3 motores de datos podemos acceder a los 3, alterando el archivo .properties y reiniciando el servidor para cada acceso), para la manipulaciòn de los datos de tipo BLOB, de en los 3 motores de datos, podemos usar esta muy buena herramienta DbVisualizer v6.5.1 . Luego, hay que crear la carpeta 'C:\Imagenes' y hay que pegar el contenido de 'Manejo_Java_BLOB\fuentes\archivosBlob' y de 'Manejo_Java_BLOB\fuentes\imagenesPrueba' ahí dentro (Estos serán los archivos que serán grabados como BLOB en los registros de prueba ). Después, ejecutaremos los scripts que serán soportados en los motores de datos, para ello accederemos a la ruta 'Manejo_Java_BLOB\fuentes\bd\ScriptBD.txt', dentro están los scripts para crear las tablas, secuenciales y inserts respectivos por motor de datos. Finalmente, Instalar la plataforma JMF v2.1 y luego el Plugin MP3 v3.1.0. (Recuerda que estos tienen que estar relacionados con el JDK o JRE que la aplicación este usando).

DESCARGAS:
Descarga Aplicación Demo Completa.
Descarga Plataforma JMF v2.1.
Descarga Java MP3 Plugin v3.1.0.