Página Sistema: SINIR Integração LIFERAY X PENTAHO Projeto: Arquitetura da Informação da Gestão de Resíduos Sólidos do Governo Federal 1 / 11 Data Emissão 20/08/2013 INTEGRAÇÃO: LIFERAY X PENTAHO 1 Página Sistema: SINIR Projeto: Arquitetura da Informação da Gestão de Resíduos Sólidos do Governo Federal Integração LIFERAY X PENTAHO 2 / 11 Data Emissão 20/08/2013 2 Página Integração LIFERAY X PENTAHO Sistema: SINIR Projeto: Arquitetura da Informação da Gestão de Resíduos Sólidos do Governo Federal 3 / 11 Data Emissão 20/08/2013 Histórico da Revisão Data Versão Descrição Autor 20/08/2013 1.0 Criação do Documento. Bruno Pedroso 02/09/2013 1.1 Adição das instruções para mudar o banco de dados para postgres Bruno Pedroso 3 Página Sistema: SINIR Integração LIFERAY X PENTAHO Projeto: Arquitetura da Informação da Gestão de Resíduos Sólidos do Governo Federal 4 / 11 Data Emissão 20/08/2013 ÍNDICE ARQUITETURA DA INSTALAÇÃO 5 PASSO A PASSO DA INSTALAÇÃO 5 INSTALAÇÃO DO PENTAHO MUDANÇA DA PORTA PADRÃO PROXY REVERSO INSTALANDO O PENTAHO COMO SERVIÇO TORNANDO O RELATÓRIO PÚBLICO NO PENTAHO CONFIGURAÇÃO DO PORTLET DE IFRAME NOTAS TÉCNICAS CONCLUSÃO 5 6 ERROR! BOOKMARK NOT DEFINED. 9 10 11 ERROR! BOOKMARK NOT DEFINED. 11 4 Página Sistema: SINIR Integração LIFERAY X PENTAHO Projeto: Arquitetura da Informação da Gestão de Resíduos Sólidos do Governo Federal 5 / 11 Data Emissão 20/08/2013 Arquitetura da Instalação A arquitetura da instalação demonstrativa aqui descrita é bem simples. O Liferay e o Pentaho encontram-se instalados cada um em um servidor Tomcat a parte, e o Pentaho utiliza o banco de dados HSQLDB que vem junto com a versão demonstrativa. Passo a Passo da Instalação Instalação do Pentaho O Pentaho CE (Community Edition) pode ser baixado a partir do site http://community.pentaho.com/. Esse passo a passo foi redigido com base na versão 4.8 da ferramenta, mais especificamente com o arquivo disponível em: 5 Página Sistema: SINIR Integração LIFERAY X PENTAHO Projeto: Arquitetura da Informação da Gestão de Resíduos Sólidos do Governo Federal 6 / 11 Data Emissão 20/08/2013 http://sourceforge.net/projects/pentaho/files/Business%20Intelligence%20Server/4.8.0stable/biserver-ce-4.8.0-stable.zip/downloa A instalação do Pentaho em versão demonstrativa resume-se a descompactar esse arquivo e executar o script: biserver-ce/start-pentaho.sh Isso é o suficiente para ligar um servidor Tomcat com o Pentaho instalado. Mudança da porta padrão A versão de homologação instalada na SEA foi feita na mesma máquina em que já estava instalado o Liferay, em um outro servidor Tomcat. Para que os dois servidores executem na mesma máquina, é necessário modificar a porta padrão em que o Pentaho executa. Para tanto, basta editar o arquivo: biserver-ce/tomcat/conf/server.xml e alterar os seguintes elementos: <Server port="8005" shutdown="SHUTDOWN">... <Connector URIEncoding=n"UTF-8" port="8080" protocol="HTTP/1.1" ... Ambas as portas descatadas no texto acima precisam ser alteradas para não conflitarem com as do outro serviço. No caso da instalação no servidor de homologação da SEA, as portas usadas foram: 9005 e 9080. Mudando o banco de dados para Postgres Para uma instalação a ser utilizada em ambiente de produção, recomenda-se trocar o banco de dados padrão que vem com a distribuição do Pentaho (HSQLDB). No nosso caso, utilizamos o postgres. 6 Página Sistema: SINIR Integração LIFERAY X PENTAHO Projeto: Arquitetura da Informação da Gestão de Resíduos Sólidos do Governo Federal 7 / 11 Data Emissão 20/08/2013 Para tanto, foi seguido o seguinte roteiro: http://kirk.webfinish.com/2012/06/howto-configure-pentaho-bi-server-ce-manual-with-postgresql-9-1/ Para trocar o banco de dados, é preciso atualizar os seguintes arquivos com as configurações JDBC correspondentes à instalação do banco de dados utilizada: tomcat/webapps/pentaho/META-INF/contex.xml pentaho-solutions/system/applicationContext-spring-securityhibernate.properties pentaho-solutions/system/applicationContext-spring-security-jdbc.xml pentaho-solutions/system/simple-jndi/jdbc.properties pentaho-solutions/system/hibernate/postgresql.hibernate.cfg.xml pentaho-solutions/bidevelopers/datasources/HQL_Datasource_PostgreSQL.cfg.xml pentaho-solutions/system/quartz/quartz.properties alterar a linha que configura a seguinte propriedade, para o seguinte valor: org.quartz.jobStore.driverDelegateClass org.quartz.impl.jdbcjobstore.PostgreSQLDelegate = pentaho-solutions/system/hibernate/hibernate-settings.xml apontar a seguinte propriedade para o arquivo cfg do postgres: <config-file>system/hibernate/postgresql.hibernate.cfg.xml</config-file> 7 Página Sistema: SINIR Integração LIFERAY X PENTAHO Projeto: Arquitetura da Informação da Gestão de Resíduos Sólidos do Governo Federal 8 / 11 Data Emissão 20/08/2013 Esses três arquivos possuem SQLs que atualizam o banco. Eles possuem o nome do usuário do banco de dados para dar permissões e coisas do tipo. Caso o nome do usuário do banco de dados seja diferente do nome padrão, eles precisam ser atualziados também, antes de ligar o postgres pela 1a vez. data/postgresql/migration.sql data/postgresql/create_sample_datasource_postgresql.sql data/postgresql/create_repository_postgresql.sql Apagando os dados de exemplo Para apagar os dados de exemplo que vêm com a instalação padrão do Pentaho, é preciso seguir este roteiro: http://infocenter.pentaho.com/help/index.jsp?topic=%2Finstall_ziptar%2Ftask_remove_sa mple_data.html As instruções funcionam corretamente, mas é preciso ter cuidado, no momento de se apagar as configurações das servlets, e servlet-mappings para não excluir a servlet que serve o arquivo theme.js. Essa configuração se encontra misturada entre às que o roteiro manda apagar, então é preciso ter cuidado pra não apagá-la junto sem querer. Proxy Reverso Devido à configuração específica da rede e dos serviços da SEA, para que o Pentaho seja acessível pela internet foi necessário também configurar o servidor Apache que responde ao endereço ‘seatecnologia.com.br’ para redirecionar as chamadas feitas ao nome ‘unb-pentaho.seatecnologia.com.br’ para a máquina de homologação que executa os serviços. 8 Página Sistema: SINIR Integração LIFERAY X PENTAHO Projeto: Arquitetura da Informação da Gestão de Resíduos Sólidos do Governo Federal 9 / 11 Data Emissão 20/08/2013 Instalando o Pentaho como serviço Para instalar o Pentaho como serviço, basta seguir o procedimento padrão do Linux: 1. Criar o script /etc/ini.d/pentaho.sh com o conteúdo: #!/bin/bash CATALINA_HOME='/opt/pentaho/biserver-ce/tomcat' USER='liferay' case "$1" in start) ulimit -n 32768 su - $USER -c "/opt/pentaho/biserver-ce/start-pentaho.sh" -s /bin/sh ;; stop) su - $USER -c "/opt/pentaho/biserver-ce/stop-pentaho.sh" -s /bin/sh ;; *) echo "Usage: [start|stop]" ;; Esac 9 Página Sistema: SINIR Integração LIFERAY X PENTAHO Projeto: Arquitetura da Informação da Gestão de Resíduos Sólidos do Governo Federal 10 / 11 Data Emissão 20/08/2013 2. Configurar o serviço para ligar no boot, criando os links simbólicos: > link –s /etc/ini.d/pentaho /etc/rc.3/S99Pentaho > link –s /etc/ini.d/pentaho /etc/rc.3/K99Pentaho Tornando o relatório público no Pentaho Para que o Liferay possa apresentar um relatório em uma página web, publicamente, é necessário que o mesmo esteja publicamente acessível no Pentaho, o que pode ser feito seguindo-se as instruções constantes nas seguintes páginas: http://wiki.pentaho.com/display/ServerDoc2x/Opening+Up+Some+Action+Sequences+for+ Anonymous+Access http://forums.pentaho.com/showthread.php?56714-Anonymous-Access-to-a-report Em resumo: 1. Pela interface, escolher o relatório, clicar com o botão direito, report -> share -> add e adicionar a permissão ‘execute’ para a role ‘anonymous’; 2. Editar o arquivo pentaho-solutions/system/applicationContext-spring-security.xml e adicionar as seguintes linhas às definições de segurança do element objectDefinitionSource: \A/content/reporting.*\Z=Anonymous,Authenticated \A/.*.css\Z=Anonymous,Authenticated \A/.*.js.*\Z=Anonymous,Authenticated \A/.*i18n.*\Z=Anonymous,Authenticated \A/content/commonui/resources/web/formatter/.*\Z=Anonymous,Authenticated 10 Página Sistema: SINIR Integração LIFERAY X PENTAHO Projeto: Arquitetura da Informação da Gestão de Resíduos Sólidos do Governo Federal 11 / 11 Data Emissão 20/08/2013 Depois disso, é necessário reiniciar o Pentaho. Configuração do portlet de iFrame Uma vez que tanto o Liferay como o Pentaho estejam devidamente instalados e acessíveis pela internet, a integração entre os dois foi feita simplesmente adicionandose um portlet do tipo IFrame configurado com a URL: http://unbpentaho.seatecnologia.com.br/pentaho/content/reporting/reportviewer/report.html?s olution=steelwheels&path=/reports&name=Top%20N%20Analysis.prpt&sLine=[Product].[All%20Prod ucts].[Classic%20Cars]&sMarket=[Markets].[All%20Markets].[NA]&sYear=[Time].[All%20 Years].[2003]&TopCount=3&output-type=text/html&accepted-page=0&paginate=false Essa URL é de um relatório que compõe a solução de demonstração do Pentaho. Ela precisa ser adaptada para apresentar outros relatórios que forem criados. Conclusão A instalação aqui descrita demonstra que a integração entre Liferay e Pentaho é possível de forma via IFrame. Trata-se de uma integração simples, que não exige modificação das ferramentas nem desenvolvimento. Essa instalação é suficiente apenas para apresentar os relatórios do Pentaho publicamente no portal. Caso outros níveis de integração sejam necessários, será necessário nova investigação. Essa é uma instalação simples que deve ser usada apenas para fins demonstrativos. Para uma instalação pronta para produção, recomenda-se a utilização de um banco de dados mais robusto, como Postgres ou MySQL, e uma configuração mais complete, cujo procedimento de instalação complete deve ser verificado na documentação 11