Integrar Liferay Portal 5.2.1 con Pentaho BI 2.0.0 sobre MySQL 5.1

3
27153

Integrar Liferay Portal 5.2.1 con Pentaho BI 2.0.0 sobre MySQL 5.1

  1. Integrar Liferay Portal 5.2.1 con Pentaho BI 2.0.0 sobre MySQL 5.1
    1. Introducción
    2. Preparación del entorno
    3. Paso 1. Instalación de Liferay 5.2.1
    4. Paso 2. Instalación de Pentaho BI 2.0.0
      1. Paso 2.1. Descarga del código fuente de Pentaho BI
      2. Paso 2.2. Compilar Pentaho BI
      3. Paso 2.3. Preparar la base de datos y los datasources
      4. Paso 2.4. Desplegar Pentaho en el servidor
    5. Paso 3. Probando la integración
    6. Conclusión

Introducción

En este tutorial vamos a mostrar paso a paso cómo integrar con éxito el gestor de portales Liferay Portal 5.2.1 con la herramienta de Business Intelligence Pentaho BI 2.0.0, en un servidor Apache Tomcat 5.5 y configurando para todo ello una base de datos MySQL 5.1.

Algunos tutoriales relacionados, publicados hasta la fecha:

Preparación del entorno

El software utilizado en este tutorial es:

La plataforma de ejecución está basada en:

  • Pc portátil C2Duo, 1.5GHz, 3GB Ram
  • Windows Vista Home Premium SP1

Con las versiones de software antes indicadas, se asegura el correcto funcionamiento de este tutorial. Los usuarios con experiencia pueden intentar la integración con versiones diferentes.

Paso 1. Instalación de Liferay 5.2.1

Para ello seguimos el tutorial de Rubén: Primeros Pasos con Liferay 5.2.1 (manteniendo el puerto 8080). Al finalizar, detenemos el servidor.

Paso 2. Instalación de Pentaho BI 2.0.0

Vamos a compilar nuestra propia distribución de Pentaho para Tomcat y MySQL. Para ello:

Paso 2.1. Descarga del código fuente de Pentaho BI

Utilizando un cliente SVN, por ejemplo Tortoise, accedemos a svn://source.pentaho.org/svnroot

Arbol de carpetas del repositorio de codigo SVN de Pentaho
Árbol de carpetas del repositorio de código SVN de Pentaho

y hacemos checkout del código en un directorio (que denominaremos %PENTAHO_SRC% y será C:\Tutoriales\pentaho2.0.0):

  • svn://source.pentaho.org/svnroot/legacy/pentaho/branches/liferay-demo en %PENTAHO_SRC%\liferay-demo
  • svn://source.pentaho.org/svnroot/legacy/pentaho-preconfiguredinstall/trunk en %PENTAHO_SRC%\pentaho-preconfiguredinstall
  • svn://source.pentaho.org/svnroot/legacy/pentaho-solutions/trunk en %PENTAHO_SRC%\pentaho-solutions
  • svn://source.pentaho.org/svnroot/legacy/pentaho-data/trunk en %PENTAHO_SRC%\pentaho-data

Checkout del codigo de pentaho-solutions
Checkout del código de pentaho-solutions

Paso 2.2. Compilar Pentaho BI

En primer lugar establecemos la ruta absoluta de nuestro compilador de java en el fichero %PENTAHO_SRC%\liferay-demo\build.properties. Cambiamos:

# override this dir with the real location of your compiler
javac.path=javac.path not set

por:

# override this dir with the real location of your compiler
javac.path=C:/Herramientas/Java/jdk1.5.0_16/bin/javac

A continuación accedemos por línea de comandos al directorio %PENTAHO_SRC%\liferay-demo y ejecutamos el comando:

ant war-all-pentaho-tomcat

Dejo en este fichero: log_ant_pentaho.txt el resultado de la compilación a modo de ejemplo. Veremos que ha generado diversos ensamblados war bajo el directorio %PENTAHO_SRC%\liferay-demo\build\pentaho-wars\tomcat, uno por cada tipo de bases de datos HSQLDB, MySQL5, Oracle10G y PostgreSQL. En este tutorial utilizamos el de MySQL.

Paso 2.3. Preparar la base de datos y los datasources

Para crear los usuarios, los esquemas y las tablas para el funcionamiento de Pentaho, así como para poblarlas con un conjunto inicial de datos, lanzaremos el siguiente script iniciando una sesión en MySQL con el usuario root:
%PENTAHO_SRC%\pentaho-data\mysql5\SampleDataDump_MySql.sql

Mediante las MySQL GUI Tools podemos observar que se han creado:

  • Los usuarios pentaho_admin y pentaho_user:

    Nuevos usuarios pentaho_admin y pentaho_user en MySQL

  • Los esquemas sampledata, quartz e hibernate:

    Nuevos esquemas sampledata, quartz e hibernate para Pentaho

A continuación definimos las fuentes de datos en el servidor para que Pentaho disponga de ella como repositorio. Editamos %LIFERAY_TOMCAT_HOME%\conf\server.xml y añadimos entre las etiquetas <Host></Host>:

<Context path="/pentaho" docbase="webapps/pentaho/">
  <Resource name="jdbc/SampleData" auth="Container" type="javax.sql.DataSource" maxActive="20"
    maxIdle="5" maxWait="10000" username="pentaho_user" password="password"
    factory="org.apache.commons.dbcp.BasicDataSourceFactory" driverClassName="com.mysql.jdbc.Driver"
    url="jdbc:mysql://localhost:3306/sampledata?autoReconnect=true" />
    
  <Resource name="jdbc/Hibernate" auth="Container" type="javax.sql.DataSource" maxActive="20"
    maxIdle="5" maxWait="10000" username="hibuser" password="password"
    factory="org.apache.commons.dbcp.BasicDataSourceFactory" driverClassName="com.mysql.jdbc.Driver" 
    url="jdbc:mysql://localhost:3306/hibernate?autoReconnect=true" />
    
  <Resource name="jdbc/Quartz" auth="Container" type="javax.sql.DataSource"
    factory="org.apache.commons.dbcp.BasicDataSourceFactory" maxActive="20" maxIdle="5"
    maxWait="10000" username="pentaho_user" password="password" driverClassName="com.mysql.jdbc.Driver" 
    url="jdbc:mysql://localhost:3306/quartz?autoReconnect=true"/>

  <Resource name="jdbc/SampleDataAdmin" auth="Container" type="javax.sql.DataSource" maxActive="20"
    maxIdle="5" maxWait="10000" username="pentaho_admin" password="password"
    factory="org.apache.commons.dbcp.BasicDataSourceFactory" driverClassName="com.mysql.jdbc.Driver"
    url="jdbc:mysql://localhost:3306/sampledata?autoReconnect=true" />
</Context>

Paso 2.4. Desplegar Pentaho BI en el servidor

Realizamos los siguientes pasos para el despliegue manual de Pentaho:

  • Copiar el directorio %PENTAHO_SRC%\pentaho-solutions en %LIFERAY_TOMCAT_HOME% (pentaho-solutions y webapps serán carpetas hermanas). Esta operación se debe a que pentaho-solutions es requisito para Pentaho, como se define en las líneas 7-10 del web.xml del pentaho.war generado:
    <context-param>
       <param-name>solution-path</param-name>
       <param-value>pentaho-solutions</param-value>
    </context-param>
    
  • Copiamos %PENTAHO_SRC%\liferay-demo\build\pentaho-wars\pentaho-portal-layout.war, pentaho-style.war y sw-style.war en %LIFERAY_TOMCAT_HOME%\..\deploy\
  • Copiamos %PENTAHO_SRC%\liferay-demo\build\pentaho-wars\tomcat\mysql5\pentaho.war en %LIFERAY_TOMCAT_HOME%\..\deploy\

Levantamos el servidor y en la consola veremos las trazas de carga de base de datos y despliegue de Pentaho. Aparecerán muchas de error, puesto que los ensamblados anteriores tienen interdependencias en la definición de datasources.

Consola del servidor Tomcat con trazas de Pentaho y Liferay
Una vez levantado el servidor Tomcat (se abrirá un navegador con Liferay), comenzará el despliegue de los war de Pentaho

El depliegue de Pentaho tardará unos 5 minutos (se verá la traza «Pentaho BI Server Listo.«). Detenermos el servidor Tomcat, y volvermos a iniciarlo. No aparecerá ahora ningún volcado de pila de error, y ahora sí que estará completa y correctamente desplegado Pentaho. Vamos a comprobarlo.

Paso 3. Probando la integración

Accedemos a la pantalla de login de Liferay en http://localhost:8080 (si no estamos ya), y accedemos con el usuario Bruno. En el deplegable superior derecho añadimos nueva aplicación:

Nueva aplicacion en Liferay
Agregar aplicación en Liferay

En el panel flotante que se instancia, aparecerá Pentaho como una aplicación más. Deplegando el árbol, accedemos a sus portlets:

Desplegable con portlets de Pentaho disponibles desde Liferay
Desplegable con portlets de Pentaho disponibles desde Liferay

Pulsamos sobre Add del GettingStartedExamplesPortlet y, tras unos instantes de carga (aparecerán numerosas trazas en la ventana de Tomcat), veremos el portlet embebido en Liferay:

Portlet en Liferay con caracteristicas basicas de Pentaho
Portlet con características básicas de Pentaho

donde podremos realizar acciones varias con Pentaho, como comprobar la integración mediante el tradicional saludo Hola Mundo:

Respuesta de Pentaho BI a la accion invocada desde Liferay
¡Integración de Liferay con Pentaho conseguida!

Podemos también probar la capacidad de envío de correo electrónico (configurando debidamente los parámetros de SMTP en email_config.xml), o ver unos datos de ejemplo almacenados en base de datos (comprobamos así la concetividad con el repositorio en MySQL):

Respuesta de Pentaho BI a la accion invocada desde Liferay
Regiones obtenidas de sampledata.department_managers

Conclusión

Con este tutorial hemos logrado integrar los portlets de Pentaho en Liferay, y vemos que el lanzamiento de las acciones del primero se instancian en una pestaña nueva del navegador web, y que requiere de un inicio de sesión propio. Para mejorar éste y otros aspectos, así como la ejecución de ciertas aplicaciones, será necesaria ya una configuración a medida de las necesidades que nos vayan surgiendo.

 

3 COMENTARIOS

  1. Hola, no entiendo bien el paso 2.4. He copiado la carpeta \\\»pentaho-solutions\\\» en ….\\\\liferay-portal-5.2.1\\\\tomcat-6.0.18\\\\ (en el mismo lugar donde está la carpeta \\\»webapps\\\»).–> Es ahí donde hay que copiarla?
    Y donde hay que copiar los war?
    Si los copio en ….\\\\liferay-portal-5.2.3\\\\deploy cuando arranco el Tomcat, y se me abre el portal, cuando me voy a \\\»Aplicaciones\\\», no me sale ninguna carpeta \\\»Pentaho\\\», solo una llamada \\\»Undefined\\\» con tres iconos dentro (las 3 carpetas de las war de pentaho generadas, pentaho-portal-layout, pentaho-style y sw-style)
    No me sale lo que se ve en el paso 3.
    Alguien me puede decir que estoy haciendo mal?. Se lo agradecería mucho.

  2. Hola,

    muy bueno el tutorial. Quería preguntaros, ¿es posible integrar pentaho en Liferay 6.1? Nosotros lo hemos intentado durante semanas sin éxito.

    Cualquier ayuda/guia/consejo será bienvenido.

    Gracias!!!

  3. Buenos días ,
    Primero que todo felicitarle por el tutorial, esta muy completo en su descripción.
    en algun momento se presenta este error:
    ERROR 1067 (42000) at line 391: Invalid default value for ‘REQUIREDDATE’
    es al momento de ejecutar el SampleDataDump_MySql.sql
    Saludos

DEJA UNA RESPUESTA

Por favor ingrese su comentario!

He leído y acepto la política de privacidad

Por favor ingrese su nombre aquí

Información básica acerca de la protección de datos

  • Responsable:
  • Finalidad:
  • Legitimación:
  • Destinatarios:
  • Derechos:
  • Más información: Puedes ampliar información acerca de la protección de datos en el siguiente enlace:política de privacidad