SDWEB Solucións Dixitais, S.L., en el marco del programa ICEX Next, ha contado con el apoyo de ICEX y con la cofinanciación del fondo europeo FEDER. La finalidad de este apoyo es contribuir al desarrollo internacional de la empresa y su entorno.
Este artículo pretende ser una guía para definir, en el marco de una gran organización, cómo desarrollar, probar y publicar informes de Jasper Reports en los diferentes entornos de servidores JasperReports Server (desarrollo, preproducción, producción).
Revisando el material publicado por JasperSoft a este respecto, encontramos el tutorial “Driving Reports from Development to Production Tutorial” en la siguiente dirección:
https://www.jaspersoft.com/driving-reports-development-production
En él se detalla como exportar e importar informes utilizando las herramientas js-export y js-import en distintos entornos.
Sin embargo, a medida que avanzamos en el tutorial vemos que para que el proceso se realice satisfactoriamente se plantean algunos problemas:
Usualmente en una gran organización encontramos tres entornos de trabajo: desarrollo, preproducción y producción.
El siguiente esquema describe este escenario:
Donde cada nodo de JasperReports Server dispone de su propia base de datos interna (que será MySQL o Postgres según la configuración que establezcamos y la versión de JasperReports Server de que se trate 3.X o 4.X). Los informes de las aplicaciones acceden a bases de datos externas que pueden ser Postgres, Oracle, etc.
Por otra parte, es muy importante para la organización definir una forma estandarizada de crear los paquetes o lotes de informes de las aplicaciones, que especifique entre otras cosas cómo se organizan los informes, subinformes, recursos e imágenes en carpetas. Esta estandarización facilitará enormemente el mantenimiento de los informes de las aplicaciones.
En este punto sugerimos adoptar una estructura similar a la definida por la herramienta de código abierto JDeploy que podremos encontrar en:
http://sourceforge.net/projects/jaspertools/?source=directory
La herramienta JDeploy nos permite realizar operaciones sobre un servidor JasperReports Server desde la línea de comandos (desplegar lotes de informes, crear datasources, etc). JDeploy sugiere agrupar todos los informes de una aplicación en un archivo ZIP de acuerdo a la siguiente estructura:
Donde:
Dicho esto, los pasos que se deberán seguir en un proceso típico de desarrollo e implantación de informes son los siguientes:
Como se ha visto, aunque el despliegue de los informes resulta muy sencillo, las buenas prácticas de desarrollo de software aconsejan que los informes sean desplegados en primer lugar en el entorno de desarrollo, donde habitualmente los desarrolladores tienen permisos para crear datasources y desplegar informes directamente, y pueden probar sus informes antes de darlos por correctos y solicitar su publicación en preproducción.
Para crear los datasources se utiliza el comando createds de JDeploy. Un ejemplo de uso de este comando es el siguiente:
./createds.sh catalogo1DS -rd /datasources -drv oracle.jdbc.OracleDriver - url
jdbc:oracle:thin:@195.55.126.20:1521:PRUEBAS -dsusr root -dspwd root -t jdbc
–h localhost:8081
Donde los parámetros utilizados representan la siguiente información:
Una vez creado el datasource ya podemos desplegar el lote de informes (archivo ZIP) mediante el comando deploy de JDeploy. Un ejemplo de utilización de este comando sería:
./deploy.sh /opt/api/zip/catalogo1.zip -rd /aplicacion1 -ds catalogo1DS -h
localhost:8081
Donde los parámetros utilizados representan la siguiente información:
El resultado correcto de esta operación desplegará el lote de informes en la ubicación especificada con la estructura de directorios definida anteriormente. Se puede visualizar los cambios haciendo uso del comando list o desde la consola de administración de JasperReports Server.
Si utilizamos list (ver manual de usuario de JDeploy), obtendremos un listado como el que sigue:
Los mismos datos podremos observar desde la consola de administración de JasperReports Server:
Tras la ejecución exitosa del plan de pruebas de los informes en el entorno de desarrollo, el desarrollador remitirá el ZIP con el lote de informes al departamento de sistemas, que realizará este mismo proceso de despliegue en el entorno de preproducción. Y tras la ejecución exitosa del plan de pruebas en el entorno de preproducción, el departamento de sistemas ya puede desplegar los informes mediante este mismo proceso en el entorno de producción.
En este artículo hemos visto cómo desplegar de una forma eficaz los informes Jasper Reports en los distintos entornos de desarrollo, preproducción y producción, y todo ello gracias a una útil herramienta como es JDeploy.
En futuros artículos explicaremos cómo monitorizar y gestionar adecuadamente un entorno de producción de servidores JasperReports.