UNIVERSIDADE FEDERAL DE SANTA CATARINA

UNIVERSIDADE FEDERAL DE SANTA CATARINA Pesquisa e Seleção de Ferramentas Livres e Baseadas em Padrões de Sistemas Abertos para a Elaboração de Interf...
0 downloads 0 Views 1MB Size
UNIVERSIDADE FEDERAL DE SANTA CATARINA

Pesquisa e Seleção de Ferramentas Livres e Baseadas em Padrões de Sistemas Abertos para a Elaboração de Interfaces OLAP sobre a Web

Giovani Caruso MacDonald, João Rafael Rubik

Florianópolis – SC 2007 / 1

1

UNIVERSIDADE FEDERAL DE SANTA CATARINA DEPARTAMENTO DE INFORMÁTICA E ESTATÍSTICA CURSO DE SISTEMAS DE INFORMAÇÃO

Pesquisa e Seleção de Ferramentas Livres e Baseadas em Padrões de Sistemas Abertos para a Elaboração de Interfaces OLAP sobre a Web

Giovani Caruso MacDonald, João Rafael Rubik

Trabalho de conclusão de curso apresentado como parte dos requisitos para obtenção do grau de Bacharel em Sistemas de Informação

Florianópolis – SC 2007 / 1

2

Pesquisa e Seleção de Ferramentas Livres e Baseadas em Padrões de Sistemas Abertos para a Elaboração de Interfaces OLAP sobre a Web

Giovani Caruso MacDonald, João Rafael Rubik

Trabalho de conclusão de curso apresentado como parte dos requisitos para obtenção do grau de Bacharel em Sistemas de Informação

Orientador(a): Renato Fileto

Banca examinadora José Leomar Todesco Wemerson Delcio Parreira

3

RESUMO

A utilização de OLAP (On-Line Analytical Processing) tem estado restrita a grandes organizações, devido ao alto custo do desenvolvimento das aplicações e das ferramentas de software necessárias. Todavia, o recente aparecimento de ferramentas livres e de fácil utilização para a construção de interfaces OLAP tem viabilizado a adoção de soluções baseadas em OLAP para apoio à tomada de decisão em pequenos e médios empreendimentos. Este trabalho apresenta uma análise de ferramentas livres e baseadas em padrões de sistemas abertos disponíveis atualmente para facilitar a construção de interfaces OLAP sobre a Web. Essas ferramentas são avaliadas segundo os seguintes critérios: linguagem de programação utilizada no desenvolvimento, sistema operacional suportado, SGBDs suportados, licença adotada, padrões de interoperabilidade, e compatibilidade entre ferramentas de diferentes funcionalidades. As ferramentas analisadas são o servidor OLAP Mondrian, os clientes Jpivot e OpenI, e as suítes de ferramentas Pentaho, SpagoBI e BEE Project. O objetivo é que este trabalho sirva de apoio para a seleção das ferramentas mais adequadas para atender diferentes tipos de demandas.

4

ABSTRACT

The use of OLAP (On-Line Analytical Processing) has been restricted to large companies and organizations due to the high costs of development and tools. However, recently a number of open source and user friendly interface building tools had been made available, making possible the adoption of OLAP bases solutions by medium and small companies. This paper presents an analisys of various open source, free tools that help building OLAP interfaces over the web. This tools are analised by the following criterias: programming language used in development, oprational systems suported, DBMS supported, license adopted, communication patterns and their funcionalities. The tools analised are the Mondrian OLAP server, JPivot and OpenI clients, and the suites of tools Pentaho, SpagoBI and BEE Project. The goal is for this paper to help developers to choose the best possible tools for their specific enviroment.

5

LISTA DE ABREVIATURAS E SIGLAS

API - Application Programming Interface BI - Business Intelligence DW - Data Warehouse DM - Data Mart DOLAP - Desktop On-Line Analytical Processing DW - Data Warehouse HOLAP - Hybrid On-Line Analytical Processing J2EE - Java2 Platform Enterprise Edition JSP - Java Server Pages JVM - Java Virtual Machine MDX - Multidimensional Expressions MOLAP - Multidimensional On-Line Analytical Processing OLAP - On-Line Analytical Processing RDBMS - Relational Data Base Management System ROLAP - Relational On-Line Analytical Processing SGBD - Sistema de Gerenciamento de Banco de Dados SQL - Structured Query Language WCF - Web Component Framework WOLAP - Web On-Line Analytical Processing XML - eXtensible Markup Language XMLA - XML for Analysis

6

Índice de Figuras Figura 2-1 Drill Down..........................................................................................14 Figura 2-2 Roll Up...............................................................................................15 Figura 2-3 Pivoting..............................................................................................15 Figura 2-4 Slice and Dice...................................................................................16 Figura 4-5 Arquitetura do Mondrian....................................................................29 Figura 4-6 Menu de Navegação do JPivot.........................................................38 Figura 4-7 Tabela gerada sobre os dados do Vestibular...................................39 Figura 4-8 Drill Down na dimensão candidato....................................................40 Figura 4-9 Editor MDX........................................................................................40 Figura 4-10 Gráfico gerado pelo framework WCF.............................................41 Figura 4-11 Gráfico de Pizza Gerado pelo WCF................................................42 Figura 4-12 Arquitetura OpenI............................................................................44 Figura 4-13 Tela Inicial OpenI............................................................................47 Figura 4-14 Configurações do projeto no OpenI................................................48 Figura 4-15 Acesso ao servido OLAP................................................................48 Figura 4-16 Criação de analises no OpenI.........................................................49 Figura 4-17 Resultado da análise.......................................................................50 Figura 4-18 Gráfico curso x nota máxima..........................................................51 Figura 4-19 Arquitetura SpagoBI........................................................................53 Figura 4-20 Operações OLAP através do JPivot no SpagoBI...........................58 Figura 4-21 Ferramenta de análise Geográfica: Geo.........................................59 Figura 4-22 Componente Integrado JPivot.........................................................64 Figura 4-23 apresentação dos dados por divisão geográfica no Pentaho.........65 Figura 4-24 Esquema de etapas da análise OLAP. Fonte: [BEE, 2007]...........67 Figura 4-25 Exemplos de gráficos gerados pelo BEE Project...........................68

7

Sumário INTRODUÇÃO....................................................................................................10 CONCEITOS FUNDAMENTAIS.........................................................................12 2.1 Data Warehouse.......................................................................................12 2.2 OLAP.........................................................................................................12 2.3 Formas de implementação de OLAP........................................................16 2.3.1 ROLAP................................................................................................16 2.3.2 MOLAP ..............................................................................................17 2.3.3 HOLAP................................................................................................17 2.3.3 Implementações pouco utilizadas......................................................17 2.4 Padrões para conexão com ferramentas OLAP.......................................19 2.4.1 XMLA..................................................................................................19 2.4.2 MDX ...................................................................................................20 2.4.3 JOLAP................................................................................................21 CATEGORIZAÇÃO DE FERRAMENTAS E TECNOLOGIAS OLAP.................22 3.1 Ferramentas de ETC ................................................................................22 3.2 Servidores OLAP .....................................................................................23 3.3 Clientes OLAP ..........................................................................................24 3.4 Suíte de Ferramentas ..............................................................................25 3.5 Licenças de Software Livre.......................................................................25 DESCRIÇÃO DAS FERRAMENTAS OLAP.......................................................27 4.1 Mondrian...................................................................................................27 4.1.1 Arquitetura do Mondrian.....................................................................27 4.1.2 Esquema XML para definição do Cubo.............................................29 4.1.3 Elementos de um esquema................................................................30 4.1.4 Instalação e configuração do Mondrian.............................................32 4.1.5 Sistemas de gerenciamento de bancos de dados compatíveis.........33 4.2 Jpivot.........................................................................................................34 4.2.1 Arquitetura JPivot...............................................................................35 4.2.2 Tipos de conexão com servidores de dados OLAP utilizando biblioteca de tags:........................................................................................36 4.2.3 Menu de navegação ..........................................................................37 4.3.4 Imagens da biblioteca JPivot sobre a base do dados do vestibular: 39 4.3 OpenI.........................................................................................................42 4.3.1 Arquitetura OpenI...............................................................................43 4.3.2 Instalação e Configuração do OpenI..................................................44 4.3.3 Imagens do OpenI sobre a base do vestilbular:.................................47 4.4 SpagoBI.....................................................................................................51 4.4.1 Estrutura da arquitetura funcional......................................................51 4.4.2 Ferramentas de código livre utilizadas pelo Spago BI.......................57 5.4.3 Funcionalidades.................................................................................58 4.4.4 Instalação...........................................................................................60 4.5 Pentaho.....................................................................................................60 4.5.1 Recursos Disponíveis da Plataforma.................................................61 4.5.2 Estrutura da Arquitetura.....................................................................62 4.5.3 Demonstração da Plataforma.............................................................64 4.5.4 Instalação...........................................................................................65 4.6 BEE Project...............................................................................................65

8

4.6.1 Arquitetura do BEE.............................................................................66 4.6.2 Instalação...........................................................................................68 CRITÉRIOS PARA COMPARAÇÃO DAS FERRAMENAS OLAP.....................69 5.1 Critérios para todas as categorias de ferramentas...................................69 5.2 Critérios para ferramentas de ETC...........................................................70 5.3 Critérios para Servidores OLAP................................................................71 5.4 Critérios para Clientes OLAP....................................................................72 5.5 Critérios para Suítes de Ferramentas de BI ............................................73 5.6 Tabela dos critérios relacionados por categoria.......................................73 ANÁLISE DAS FERRAMENTAS SEGUNDO OS CRITÉRIOS ESTABELECIDOS..............................................................................................75 6.1 Mondrian...................................................................................................75 6.2 JPivot.........................................................................................................76 6.3 OpenI.........................................................................................................77 6.4 SpagoBI.....................................................................................................78 6.5 Pentaho.....................................................................................................79 6.6 BEE Project...............................................................................................80 6.7 Tabela comparativa das ferramentas.......................................................80 Entre as ferramentas pesquisadas existe uma grande reutilização de bibliotecas e componentes, inclusive sendo algumas ferramentas praticamente únicas na sua categoria, como é o caso do servidor Mondrian, que é usado em todas as suítes pesquisadas e ainda pode ser usado com os dois clientes analisados. O mesmo acontece com o cliente JPivot, que é usado pelas duas suítes desenvolvidas em Java, assim como pelo OpenI....................................83 Entre as Suítes o SpagoBI se destaca pela apresentação mais rica e intuitiva, enquanto o Pentaho por sua maior maturidade, também o maior número de desenvolvedores e da comunidade de usuários faz com que ele tenha uma maior capacidade de adaptação a novas tecnologias e correção de eventuais bugs. A suíte BEE Project teve a sua análise prejudicada principalmente devido a sua documentação deficiente. Seu grande mérito é o desenvolvimento de absolutamente todas as etapas e componentes necessários sem a utilização de componentes existentes................................................................................83 Quanto à usabilidade foram usadas classificações de acordo com a facilidade que um usuário leigo e, possivelmente, sem noções de programação teria para instalar e começar a utilizar as ferramentas, sem a intervenção de um especialista. Na configuração dos servidores é inevitável a definição dos schemas sendo assim necessário certo conhecimento de programação, já para a utilização, principalmente das suítes, foi verificado que elas são extremamente intuitivas e simples de operar.....................................................83 TRABALHOS CORRELATOS............................................................................84 CONCLUSÕES E TRABALHOS FUTUROS......................................................87 REFERÊNCIAS BIBLIOGRÁFICAS ..................................................................89 ANEXO I - ARTIGO............................................................................................93

9

INTRODUÇÃO Apresentação As ferramentas de BI (Business Inteligence) são bastante difundidas entre empresas de grande porte, porém têm aplicação limitada entre as empresas de pequeno e médio porte, devido ao alto custo dessas ferramentas e do desenvolvimento de aplicações sobre as mesmas. Com o surgimento de ferramentas de código aberto, que podem ser obtidas gratuitamente, as pequenas e médias empresas passam se beneficiar da utilização dessa tecnologia. Motivação A motivação inicial deste trabalho partiu da solicitação de implementação de um sistema de BI pela direção do Banco do Estado de Santa Catarina (BESC), associada à política incentivada pelo governo federal, atual administrador da empresa, de utilização de softwares livres. Esse estudo ajudaria a escolha de uma ferramenta a ser adotada pela empresa. Infelizmente, a empresa acabou optando pelo uso de uma ferramenta proprietária que, sendo parte de um pacote previamente adquirido pela empresa, anulava uma das maiores vantagens das ferramentas livres: o custo. Objetivos O objetivo deste trabalho é analisar algumas ferramentas disponíveis gratuitamente, licenciadas como código aberto, a partir de critérios definidos no próprio trabalho. Os principais critérios considerados são a linguagem de programação utilizada no desenvolvimento, sistema operacional suportado, SGBDs suportados, licença adotada, padrões de interoperabilidade e

10

compatibilidade entre ferramentas de diferentes funcionalidades. O intuito é que este trabalho se torne um guia que auxiliar os usuários na escolha das ferramentas que mais se adaptam ao seu ambiente de desenvolvimento, assim como às necessidades do seu negócio. Organização O trabalho está organizado da seguinte maneira. A Seção 2 apresenta os conceitos fundamentais para o entendimento da tecnologia OLAP e a aplicação utilizada como estudo de caso. A Seção 3 apresenta uma categorização das ferramentas e da tecnologia OLAP. A Seção 4 descreve as ferramentas coletadas e analisadas no trabalho. A Seção 5 propõe critérios para avaliação de ferramentas OLAP, baseados na classificação das mesmas e em necessidades apuradas na aplicação escolhida como estudo de caso. A Seção 6 analisa as ferramentas de acordo com os critérios estabelecidos na Seção 5 e sintetiza os resultados em uma tabela comparativa das ferramentas analisadas. A Seção 7 discute os trabalhos relacionados. Finalmente, a Seção 8, sintetiza todos os resultados obtidos e enumera possíveis trabalhos futuros.

11

CONCEITOS FUNDAMENTAIS

2.1 Data Warehouse

Um data warehouse (DW) é um banco de dados que integra informações de diversas fontes e é projetado especificamente para suporte à decisão. Esses bancos de dados dão subsídio de informações aos gerentes e diretores de empresas, entre outros membros dos níveis tático e estratégico, para analisarem tendências históricas dos seus clientes e com isso definirem iniciativas e processos que viabilizem seus negócios, aumentando a lucratividade, a satisfação e fidelidade dos clientes, entre outros benefícios. Segundo Inmon (INMON, 2006), um Data Warehouse (DW) é uma coleção de dados orientados por assuntos, integrados, variáveis com o tempo e não voláteis, para dar suporte ao processo de tomada de decisão. Kimball (Kimball, 2006) define um conjunto de ferramentas e técnicas de projeto, que quando aplicadas às necessidades específicas dos usuários permitirá que planejem e construam um DW. Os dados de um DW são usualmente organizados e analisados segundo o modelo dimensional. Nesse modelo cada unidade de dado refere-se a um assunto ou a um fato. Os assuntos são organizados em hierarquias tais como tempo, espaço e produto, cada qual com assuntos específicos em diferentes granularidades (e.g., ano-mês, dia, país, estado, cidade).

2.2 OLAP

12

OLAP (On-Line Analytical Processing) é uma categoria de processamento para a exploração de informação em grandes volumes de dados organizados em data warehouses segundo o modelo multidimensional. Uma interface OLAP permite a visualização da informação em diferentes focos e níveis de detalhamento, funcionando como um relatório dinâmico. É

comum

associarmos

a

tecnologia

OLAP

à

manipulação

multidimensional dos dados. O modelo de dados multidimensional permite que as informações sejam apresentadas e analisadas sob a ótica do gerente ou do tomador de decisão, facilitando a análise, através de sumarizações por clientes, vendedor que atendeu, região geográfica ou qualquer outro qualificador relevante da informação, aliando esta análise à possibilidade de visualizar qualquer intervalo de tempo definido no DW. Estas visualizações são possíveis porque o modelo de dados é projetado para contemplar o formato de dimensões, as quais refletem a representação da realidade destes dados sob a ótica de quem irá analisá-los. As mais freqüentes funções oferecidas pelas ferramentas OLAP são descritas a seguir. •

Drill-Down: É usado para solicitar uma visão mais detalhada de um conjunto de dados. Pode-se dizer que o usuário "mergulha" nos dados. Por exemplo, na figura 2.1, os dados das notas máximas e do número de candidatos estão armazenados na dimensão Candidato e o usuário deseja informações mais detalhadas. Realiza-se então um drill-down para que os dados sejam mais específicos.

13

Figura 2-1 Drill Down



Roll-Up: Consiste na operação inversa ao drill-down, ou seja, apresenta os dados cada vez mais agrupados ou sumarizados, como na tabela da parte esquerda da figura 2.2. Os dados das notas máximas e do numero de candidatos estão específicados de acordo com o Local de origem dos Candidatos. Se o usuário desejar informações mais agrupadas, realiza-se então um roll-up para que os dados sejam mais sumarizados.

14

Figura 2-2 Roll Up



Pivoting: serve para adicionar ou rearranjar as dimensões das tabelas, por exemplo, na figura 2.3, as dimensões Curso e Candidato sofrem uma alteração de posição, ocorrendo uma troca de lugares entre as dimensões, enquanto que a medida num permanece no mesmo lugar:

Figura 2-3 Pivoting

15



Slide and Dice: é a função que faz fixar uma informação de dimensão ou reduzir as dimensões de apresentação dos dados, como na figura 2.4, através da análise dos Candidatos pertencentes a um subconjunto de estados, selecionando assim apenas uma parte do cubo para analise.

Figura 2-4 Slice and Dice

2.3 Formas de implementação de OLAP

2.3.1 ROLAP

Abreviação de “Relational On-Line Analytical Processing”, trabalha diretamente com bancos de dados relacionais, sendo assim, os dados e as tabelas de dimensões são armazenadas como tabelas relacionais e novas tabelas são criadas para receber a informação agregada, nesse caso a consulta é enviada ao servidor de banco de dados relacional e processada no mesmo.

16

2.3.2 MOLAP

Abreviação de “Multidimensional On-Line Analytical Processing”, é a forma clássica do OLAP e algumas vezes é referida como simplesmente OLAP, essa forma usa as estruturas de bancos de dados que são otimizadas para atributos, tais como: período de tempo, localidade, produto ou código de conta. A forma como cada dimensão vai ser agregada é definida a priori por uma ou mais hierarquias, nesse caso o acesso aos dados ocorre diretamente no banco dimensional, ou seja, o usuário trabalha, monta e manipula os dados do cubo diretamente no servidor.

2.3.3 HOLAP

Abreviação de “Hibrid On-Line Analytical Processing”, forma hibrida que combina características das duas formas anteriores, e divide os dados entre armazenamento relacional e dimensional. Para alguns fornecedores, um banco de dados HOLAP usa tabelas para manter grandes quantidades de dados detalhados, e um armazenamento especializado para pelo menos alguns aspectos dos dados das quantidades menores, que são mais agregados e menos detalhadas.

2.3.3 Implementações pouco utilizadas.

17

DOLAP: Abreviação de “Desktop OLAP”, são as ferramentas que, a partir de um cliente qualquer, emitem uma consulta para o servidor e recebem o cubo de informações de volta para ser analisado na estação cliente. Os ganhos com essa arquitetura é o pouco tráfego que se dá na rede, visto que todo o processamento OLAP acontece na máquina cliente e a maior agilidade de análise, a desvantagem é que o tamanho do micro-cubo não pode ser muito grande, caso contrário a análise passa a ser demorada.

WOLAP: Abreviação de “Web On-Line Analytical Processing” é a utilização de uma ferramenta OLAP a partir de um navegador Web browser, sendo que a arquitetura das ferramentas WOLAP é uma variação da cliente/servidor. A diferença está na utilização de uma camada intermediária do lado do servidor, com objetivo de esconder os detalhes das camadas inferiores e que será responsável pela comunicação entre o cliente e uma aplicação servidora.

RTOLAP: Abreviação de “Real Time OLAP” é diferente dos servidores que armazenam consolidações pré-calculadas de dados e elementos calculados para otimizar a análise, o RTPOLAP faz os cálculos em tempo de execução, sempre que solicitado. A característica principal é que ele armazena os dados na memória RAM, para tornar as operações mais eficientes, esse armazenamento gera limitações quanto à quantidade de dados que pode ser usada, e a execução de requisições ‘on the fly’ pode fazer com que as respostas sejam mais demoradas.

18

Como não é necessário o armazenamento de valores pré-calculados, os sistemas RTOLAP podem ser consideravelmente menores, economizando espaço, além disso, a execução instantânea de requisições torna o sistema mais flexível.

2.4 Padrões para conexão com ferramentas OLAP

2.4.1 XMLA

XMLA (eXtensible Markup Language for Analysis) é um padrão de API para OLAP e BI, o que diferencia o XMLA de tentativas anteriores de criação de um padrão é o apoio que ela tem de empresas como Hyperion, Microsoft, SAP e SAS. Como o IBM DB OLAP é baseado no Essbase da Hyperion - que suporta o XMLA - a única grande empresa que não está participando deste esforço é a Oracle. XMLA é um padrão que permite que aplicações cliente se comuniquem com bases de dados dimensionais ou OLAP. A transmissão das mensagens é feita utilizando padrões da Internet, como HTTP e SOAP. A linguagem de pesquisa é a MDX, que é a linguagem mais utilizada atualmente, sendo utilizada por aplicações como o Analisis Services da Microsoft, o Essbase da Hyperion e o Business Warehouse da SAP. O XMLA é uma especificação de um conjunto de interfaces para mensagens XML que usam o padrão SOAP para definir o acesso à informação entre a aplicação cliente e o analizador de dados utilizando a Internet. O XMLA

19

também inclui um esquema XML para retonar os resultados do servidor para o cliente. Assim, clientes e servidores podem ser implementados em diferentes plataformas de hardware, sistemas operacionais e linguagens de programação. O uso do XMLA, juntamente com os formatos e protocolos padronizados da Internet (basicamente XML, SOAP e HTTP), garante a interoperabilidade desses módulos, com a possibilidade de troca de módulos por módulos correpondentes de outros fabricantes. A especificação XMLA define dois métodos de acesso aos serviços, definidos abaixo: - Discover: É usado para obter informações e metadados de um Web service. Essa informação pode ser a lista de fontes de dados disponíveis ou dados sobre uma fonte específica. - Execute: É usado para executar uma consulta MDX ou outro comando específico do servidor XMLA.

2.4.2 MDX

A linguagem MDX (multi-dimensional expressions – expressões multidimensionais), de consulta a cubos de dados multidimensionais, foi introduzida pela Microsoft com o Microsoft SQL Server OLAP Services por volta de 1998, como o componente de linguagem do OLE DB para API OLAP. Mais recentemente, o MDX apareceu como parte do XML for Analysis API (XMLA). A Microsoft propôs que o MDX se tornasse um padrão, e sua adoção entre desenvolvedores de aplicação e provedores de ferramentas OLAP tem

20

sido crescente, e se tornou um padrão para expressões de consulta multidimensionais. Segue um exemplo da sintaxe MDX.

SELECT {[Measures].[Unit Sales], [Measures].[Store Sales]} ON COLUMNS, {[Product].members} ON ROWS FROM [Sales] WHERE [Time].[1997].[Q2]

Esta consulta retorna uma visão do cubo multidimensional Sales, com as medidas Unit Sales (unidades vendidas) e Store Sales (unidades em estoque) nas colunas, relativas ao segundo trimestre de 1997, discrimidadas por produto nas diferentes linhas da visão.

2.4.3 JOLAP

JOLAP é uma interface para a programação de aplicações orientadas a objeto em J2EE, ela disponibiliza um conjunto de classes de objetos padrão para programadores Java no desenvolvimento de projetos de BI. A especificação do JOLAP (JSR 69 http://jcp.org/en/jsr/detail?id=069) é uma extensão do trabalho feito na Java Metadata Interface (JSR 40 http://jcp.org/en/jsr/detail?id=040) para o Common Warehouse Metamodel (CWM http://www.omg.org/cwm), que disponibiliza definições padrões de estruturas de dados, objetos, aplicações e regras de negócio no DW.

21

CATEGORIZAÇÃO DE FERRAMENTAS E TECNOLOGIAS OLAP

A classificação de ferramentas OLAP é uma tarefa imprecisa e gera alguma perplexidade por parte dos profissionais envolvidos na escolha e aquisição de uma ferramenta analítica, uma vez que não existe nenhuma característica peculiar que dite como a ferramenta deva ser construída, qual tecnologia

deva

ser

usada

em

sua

construção,

nem

mesmo

que

funcionalidades devem ser implementadas. Para tornar o processo de classificação mais complexo, muitos fornecedores

anunciam

características

que

tornam

suas

ferramentas

compatíveis com funcionalidades OLAP, sem que estas sejam sequer ferramentas OLAP, outros oferecem suítes de produtos que são conhecidos como “os melhores do mercado”. Neste trabalho, classificamos as ferramentas de BI de acordo com o tipo de funcionalidade que oferecem, nas quatro categorias descritas nas seções subseqüentes.

3.1 Ferramentas de ETC

Extração, Transformação e Carga (ETC)1 é o processo de extrair das fontes de dados (muitas vezes bancos de dados de sistemas legados), transformá-los para serem acomodados em uma representação padronizada e inseri-los em outro banco de dados integrado, especificamente desenvolvido para o apoio à tomada de decisão, o Data Warehouse (DW). A transformação 1

Em inglês ETL de Extraction, Transformation and Loading.

22

pode ser uma limpeza dos dados, alteração de acordo com regras de negócios, tradução etc. Um sistema de ETC é um software que oferece recursos para implementar um processo ETC. ele precisa ser capaz de se comunicar com as bases de dados e ler diversos formatos de arquivos utilizados por toda a organização. Essa pode ser uma tarefa não trivial, e muitas fontes de dados podem ser difíceis de ser acessadas (ETL WIKIPEDIA, 2007). Como o processo de ETC envolve várias fontes de dados e diferentes sistemas

legados,

as

ferramentas

disponíveis

são

desenvolvidas

especificamente para determinados ambientes, o que as torna bastante heterogêneas, e dificulta a sua análise como um conjunto com características semelhantes. Além disso, os ambientes almejados pelos desenvolvedores dificilmente são iguais aos ambientes encontrados na prática, o que força a utilização de outras ferramentas, assim como a programação em baixo nível.

3.2 Servidores OLAP Os

servidores

OLAP

armazenam

e

manipulam

dados

multidimensionalmente, como tabela de fato e dimensões descritivas, provendo acesso rápido a dados pré-sumarizados, gerados a partir de grandes quantidades de dados detalhados existentes nas fontes de dados. Os servidores OLAP têm como objetivo apresentar as informações multidimensionais para as ferramentas de acesso, análise, geradores de relatórios, planilhas e ferramentas de mineração de dados. Basicamente, o servidor OLAP interpreta as consultas dos usuários, convertendo-as em

23

instruções adequadas, muitas vezes complexas, para o acesso ao data warehouse. Segundo Inmom (INMON, 2006), servidores OLAP suportam operações analíticas como consolidation (agregação de dados em uma ou mais dimensões), drill-down (detalhamento dos dados em níveis mais baixos), rollup (agregação da informação detalhada a níveis superiores) e slicing e dicing (visualização do conteúdo dos dados sob diferentes pontos de vista, aplicando diferentes critérios de filtragem).

3.3 Clientes OLAP

Os clientes recebem as requisições, executando as operações OLAP de forma amigável, normalmente sem a necessidade da escrita de requisições em MDX (apesar de a opção de a edição de requisições em MDX estar presente na maioria dos clientes). Essas requisições são feitas normalmente de forma gráfica, traduzidas pela aplicação cliente a consultas MDX que são então submetidas a servidores OLAP. O cliente OLAP também é responsável pela apresentação dos dados de forma amigável e de fácil interpretação, através de tabelas, gráficos de tipos variados e até mesmo mapas apresentando a distribuição geográfica das medidas. Os clientes, associados a componentes de geração de relatórios como o JasperReports e o BIRT, podem gerar diferentes tipos de relatórios, que podem ser exportados para vários formatos de arquivo.

24

3.4 Suíte de Ferramentas

As suítes de ferramentas são distribuições que agrupam diferentes ferramentas, com configurações pré-definidas que facilitam a instalação, configuração e utilização. As suítes utilizam ferramentas já consolidadas e em estado de desenvolvimento avançado, o que garante maior confiabilidade e também garante a compatibilidade das diversas ferramentas. A

utilização

de

suítes

significa uma grande economia de tempo com a escolha de ferramentas individuais e a configuração de cada uma individualmente.

3.5 Licenças de Software Livre

Existem diferentes licenças de software livre, e as ferramentas utilizam licenças distintas, portanto é importante conhecer os principais tipos de licenças, que são descritos a seguir.

GNU General Public License (GPL): É a licença mais clássica. Qualquer usuário é livre para fazer alterações no código fonte. Se a versão modificada é utilizada apenas privadamente, não é necessária a divulgação do código fonte, mas se o resultado da modificação for distribuído de alguma maneira, então o código deve ser divulgado também, utilizando a mesma licença. É importante notar que qualquer software que utilize uma biblioteca com licença GPL terá que ser distribuído com licença GPL.

25

GNU Library General Public License (LGPL): A LGPL é uma licença específica para bibliotecas, se diferenciando da GPL exatamente por não tornar obrigatória a distribuição do produto final sob licença GPL apenas pela utilização da biblioteca.

Common Public License (CPL): Desenvolvida pela IBM, assim como a GPL torna obrigatória a divulgação do código fonte se o código modificado for distribuído de alguma maneira. Programas e bibliotecas que utilizam a CPL podem ser utilizados integrados com aplicações e bibliotecas que possuem outro tipo de licença.

Mozilla Public License: Obriga a divulgação fonte do código modificado. Permite a utilização de códigos e bibliotecas com outras licenças, inclusive com códigos proprietários.

Apache License: Permite que o código seja usado tanto em programas de código aberto como em programas proprietários. O código pode ser modificado e distribuído comercialmente, desde que observadas algumas condições como a indicação de autoria do código original.

BSD License: É a mais liberal das licenças. Permite a utilização dos códigos para aplicações comerciais proprietárias, devendo apenas respeitar eventuais direitos autorais. Não existe qualquer restrição quanto à distribuição do código modificado.

26

DESCRIÇÃO DAS FERRAMENTAS OLAP

4.1 Mondrian

O Mondrian é uma máquina para suportar consultas OLAP, executa consultas a ele submetidas na linguagem MDX, lendo dados de um sistema de gerenciamento de banco relacional e apresentando o resultado no formato multidimensional definido pelo padrão XMLA. Este formato de saída é processado por seus clientes OLAP, clientes que são responsáveis pela interface OLAP com os usuários. O Mondrian é escrito na linguagem Java e utiliza JDBC para conexões com o SGBD (Sistema de Gerenciamento de Banco de Dados) utilizado para manter os dados do DW.

4.1.1 Arquitetura do Mondrian.

A arquitetura do Mondrian consiste em quatro camadas: a camada de apresentação, camada dimensional, a camada estrela e a camada de armazenamento. A camada de apresentação determina o que o usuário final vê em seu monitor, e como ele pode interagir para fazer novas consultas. Há muitas maneiras de apresentar conjuntos de dados multidimensionais, incluindo Pivot Tables (um recurso que permite a uma tabela fazer um agrupamento dinâmico), gráficos estáticos em diversos formatos (pizza, linha, barra, etc.) e

27

ferramentas avançadas de visualização, tais como mapas interativos e gráficos dinâmicos. Estas ferramentas podem ser escritas em interface Java Swing (Usado para criação de aplicativos gráficos em Java) ou JSP (Java Server Pages). Os gráficos podem ser montados em formatos como JPEG ou GIF. A segunda camada, camada dimensional, analisa gramaticalmente, valida e executa consultas MDX. Um transformador de consultas (query transformer) permite que a aplicação manipule as consultas existentes, ao invés de construir uma nova instrução MDX para cada solicitação. A terceira camada é a camada estrela, que é responsável por apresentar valores relacionados a determinados níveis de informação. Estes valores podem ser resultados de uma consulta ao banco de dados, ou ser o resultado de muitas consultas armazenadas em memória. É responsabilidade desta camada obter os valores, seja qual for a sua origem. A camada do armazenamento é um sistema de gerenciamento de banco de dados relacional. Ela é responsável por fornecer os dados referenciados nas consultas. Todos estes componentes podem existir em uma mesma máquina, ou podem ser distribuídos entre várias máquinas, sendo que as camadas dimensional e estrela, que compreendem o servidor Mondrian, devem estar na mesma máquina. A camada de armazenamento pode estar em uma outra máquina, acessada através de conexão remota, com o uso de drivers JDBC (Conjunto de classes e interfaces para interação com qualquer banco de dados relacional).

28

A Figura 4-5 ilustra a arquitetura de camadas do Mondrian e sua comunicação com clientes e sistema de gerenciamento de bancos de dados relacionais (Fonte: documentação do MONDRIAN).

Figura 4-5 Arquitetura do Mondrian

4.1.2 Esquema XML para definição do Cubo

O esquema do cubo multidimensional define a base lógica para o Mondrian acessar os dados do DW, ele inclui o esquema multidimensional lógico da aplicação e o mapeamento deste para a base de relacional da DW. Esse esquema é descrito por um documento XML, que obedece a regras bem definidas, atualmente, uma das maneiras de criar um esquema dimensional é editar manualmente o arquivo XML em um editor de texto. Existe

29

também um plugin para o ambiente Eclipse (Ferramenta de desenvolvimento Java) que facilita a edição do esquema.

4.1.3 Elementos de um esquema

Um esquema, conforme exemplo abaixo, é definido através da tag que inclui um valor no atributo name para definir seu nome, possui uma tag , que é uma coleção de medidas e dimensões, e uma descrição da tabela de fatos usando a tag .

...

Cada medida tem um nome, uma coluna na tabela de fatos e um agregador. O agregador é geralmente o operador "sum", mas "count", "min", "max", "avg" e "distinct count" também são permitidos. O exemplo abaixo ilustra a descrição da medida nota_maxima da tabela fato desempenho do cubo vestibular. O atributo “formatString” é opcional e especifica como o valor deve ser exibido, no exemplo abaixo, o formato de apresentação resultante é “#0.00”



A especificação de uma outra medida da tabela de fatos de desempenho do cubo de dados do vestibular, número de alunos, é apresentada abaixo.



Uma dimensão de um cubo é uma coleção de hierarquias de membros, organizados de maneira conveniente para análise. Um membro é um ponto em uma hierarquia de uma dimensão, determinado por um conjunto particular de valores de atributo. Um nível da hierarquia é uma coleção de membros que possuem a mesma distância da raiz da hierarquia. Cada hierarquia de dimensão está associada a um atributo da tabela de fatos. O exemplo abaixo define a dimensão disciplinaprova da tabela desempenho. O atributo hasAll define se o Mondrian deve manter um registro com a soma das notas e alunos de todas as provas. O elemento primaryKey denota

o

campo

usado

como

chave

primária

na

tabela

dimensão

disciplinaprova, conforme exemplo abaixo:



31



4.1.4 Instalação e configuração do Mondrian

O Mondrian está disponível em diferentes formas, primeiro como um pacote WAR que inclui o JPivot, um cliente OLAP e exemplos que podem ser carregados em um banco de dados, qualquer utilizando um utilitário de carga disponibilizado pelo Mondrian. Segundo como um pacote WAR que inclui o JPivot, um cliente OLAP e uma base de teste pré-configurada, é um demo para os usuários testarem as suas funcionalidades, nesta versão não é necessário alterar nada para funcionar, bastando apenas coloca-lo em um servidor WEB. Usaremos a primeira versão, que pode ser customizada de acordo com nossa necessidade, pois não utilizaremos a base pré-configurada, mas a base do Vestibular organizado pela COPERVE – UFSC. Para instalação, é preciso ter na maquina o Java SDK (1.4.2 ou superior), fazer o download da ultima versão estável do Mondrian, o arquivo vem sempre nomeado no formato “mondian-version.zip” e pode ser achado no SourceForge. A distribuição possui arquivos de configuração, o código fonte e bibliotecas necessárias para compilar o projeto e gerar o arquivo WAR. O Mondrian pode fornecer acesso através do padrão XMLA, para disponibilizar acesso aos clientes que usam XMLA, para isso basta configurar o arquivo datasources.xml, como no exemplo abaixo:

Arquivo datasources.xml:

32

MondrianTCC Base

do

Vestibular http://localhost:8080/mondrian/xmla
Provider=mondrian;Jdbc=jdbc:odbc:TCC;JdbcDrivers=sun.jdbc.odbc

.JdbcOdbcDriver;Catalog=/WEB-INF/queries/TCC_mondrian.xml ]]> Mondrian MDP Unauthenticated

As tags mais significativas são e , onde se colocam respectivamente o endereço do serviço Web para saída do XMLA, no exemplo http://localhost:8080/mondrian/xmla, e as informações de conexão e configuração do esquema dimensional do banco a ser conectado. Para finalizar a configuração, e preciso gerar o pacote Mondrian.war com as atualizações e colocar no servidor WEB, se necessário, adicionar o driver JDBC utilizado e a biblioteca xalan.jar no lib do servidor e reinicia-lo, para acessar o site digite: http://localhost:8080/mondrian.

4.1.5 Sistemas de gerenciamento de bancos de dados compatíveis

33

Pelo fato do Mondrian utilizar a forma de armazenamento ROLAP, ou seja, armazena em uma base de dados relacionais o modelo dimensional, é importante ter conhecimento dos SGBDs compatíveis. Como o Mondrian está escrito na linguagem Java, possui implementação do Driver JDBC para quase todos os bancos de dados relacionais existentes no mercado, segue uma lista com todos os bancos suportados pelo Mondrian: 1. Apache Derby 2. Firebird 3. hsqldb 4. IBM DB2 5. Informix 6. Ingres 7. Interbase 8. LucidDB 9. Microsoft Access 10. Microsoft SQL Server 11. MySQL 12. Oracle 13. PostgreSQL 14. Sybase 15. Terada

4.2 Jpivot

34

É uma biblioteca JSP que permite a interação do usuário através de paginas WEB com servidores de dados OLAP, permite gerar relatórios e gráficos dinamicamente usando um menu de navegação, sendo capaz de exportá-los em diferentes formatos, como Portable DocumentFormat (PDF) e Microsoft Excel. O Jpivot permite aos usuários explorar a resposta obtida do servidor de dados OLAP, podendo interagir com o modelo dimensional através de uma interface gráfica, fornecendo aos usuários a possibilidade de navegar, expandir, reduzir e mover elementos de dados.

4.2.1 Arquitetura JPivot

O Jpivot pode suportar diversos servidores OLAP, especialmente Mondrian, através do acesso no padrão XMLA. O Jpivot não utiliza a API do Mondrian diretamente, ele define sua própria interface OLAP. Para fazê-lo funcionar com o Mondrian, estas interfaces precisam ser implementadas usando as APIs do Mondrian. Utiliza o framework WCF (Web Component Framework), que é um conjunto de componentes com o objetivo de construir a Interface com o usuário via XML e XSLT, possibilitando através dos componentes a geração de gráficos, tabelas, menu de navegação, escrever consultas na linguagem MDX, executar operação OLAP (Drill Down, Pivoteamento, etc.), e exportar as analises para vários formatos.

35

4.2.2 Tipos de conexão com servidores de dados OLAP utilizando biblioteca de tags:

O primeiro exemplo mostra uma pagina JSP que acessa o servidor de dados OLAP Mondrian através de um driver JDBC e executa uma consulta MDX, sendo que o JPivot possui uma interface OLAP própria que implementa as interfaces do Mondrian, ao invés de acessar diretamente o servidor. No topo da pagina é definida qual será o prefixo para o uso da biblioteca, no exemplo as tags serão acessadas utilizando o “prefix=jp”. A tag é usada para criar um atributo de sessão para executar consultas no Mondrian, os demais atributos definem o nome do atributo de sessão “id=query01”, e os parâmetros para conexão com a base de dados relacionais e o esquema XML que define o modelo multidimensional. A consulta escrita na linguagem MDX dentro da tag é passada como parâmetro do atributo de sessão query01, o Mondrian ira processar e retornar os dados, porem de uma forma indefinida, o JPivot será usado então para visualização dos dados.

Arquivo1 .jsp: select

{[Measures].[soma], [Measures].[maxima], [Measures].[minima]}

on columns, {([curso].[All cursos], [disciplinaprova].[All disciplinaprovas], [Candidato].[All Candidatos] )} ON rows from Desempenho

36



O segundo exemplo mostra uma pagina JSP que acessa o servidor de dados OLAP Mondrian através da interface XML/A e executa uma consulta MDX. A tag é usada para criar um atributo de sessão para conexão usando XMLA, o atributo uri="http://localhost:8080/mondrian/xmla" define

o

endereço

do

servidor,

a

tag

dataSource="Mondrian"

catalog="Vestibular"> especifica em qual dataSource e catálogo os dados se encontram, esses atributos são melhor explicados na configuração Mondrian. Os outros aspectos já foram explorados no exemplo acima

Arquivo2 .jsp: select

{[Measures].[num], [Measures].[maxima], [Measures].[minima]}

on columns, {([curso].[All cursos], [disciplinaprova].[All disciplinaprovas], [Candidato].[All Candidatos] )} ON rows from Desempenho

4.2.3 Menu de navegação

37

O JPivot possui um menu de navegação que o facilita a interface com o usuário para poder fazer suas consultas. A seguir serão descritas as funcionalidades do menu de navegação, onde o cada botão é indicado por um número e é descrita a sua funcionalidade.

Figura 4-6 Menu de Navegação do JPivot

1- Detalhamento do cubo, onde é possível selecionar exatamente as dimensões e medidas desejadas, própria para a melhoria da visualização; 2- Linguagem MDX, para usuários mais avançados e que desejam analisar ou modificar a linguagem de acesso ao cubo; 3- Configuração do modo de ordenação das consultas; 4- Mostra ou não os membros superiores, considerados pais dentro da estrutura hierárquica; 5- Oculta registros vazios; 6- Mostra as propriedades das dimensões do cubo, caso existam; 7- Suprime colunas ou linhas vazias; 8- Inversão de eixos, comumente chamado de pivoteamento; 9- Drill Member: Abre todas as ocorrências daquele item na árvore; 10- Drill Position: Abre apenas a ocorrência selecionada daquele item na árvore; 11- Drill Replace: Substitui a raiz da dimensão atual pelo item selecionado; 12- Drill Through: explica de onde foi que aquele dado foi calculado; 38

13- Mostrar Gráfico: exibe ou não o gráfico dos dados que estão sendo exibidos para o usuário; 14- Configuração do Gráfico: tipo (linhas, barra vertical, barra horizontal, 3D), altura e largura, título e demais opções. 15- Configura propriedades para impressão. 16- Exporta as tabelas e gráficos para formato PDF 17- Exporta as tabelas para o excel.

4.3.4 Imagens da biblioteca JPivot sobre a base do dados do vestibular:

Figura 4-7 Tabela gerada sobre os dados do Vestibular

Tabela gerada sobre os dados do Vestibular, foram selecionados as medidas máxima e num, que indicam a nota mais alta e numero de candidatos e as dimensões Curso (Nome da área e Nome do Curso), disciplinaprova (Tipos de provas) e Candidato (Estado e cidade onde o candidato reside).

39

Figura 4-8 Drill Down na dimensão candidato

Foi feito uma operação de Drill-down na dimensão Candidato, para ter um maior detalhamento na consulta, assim é possível visualizar alguns estados e municípios.

Figura 4-9 Editor MDX

40

Local onde é possível fazer consultas na linguagem MDX, no exemplo foi selecionado para as colunas as medidas “soma, máxima e mínima” e para as linhas as dimensões “Cursos, disciplinaprova e canditado”.

Figura 4-10 Gráfico gerado pelo framework WCF

Gráfico gerado pelo framework WCF, mostrando a nota máxima obtida por cada estado, foram selecionados dentro da dimensão Candidato os estados “Parana, Rio de Janeiro, Rio Grande do Sul, Santa Catarina e São Paulo”

41

Figura 4-11 Gráfico de Pizza Gerado pelo WCF

Gráfico gerado pelo framework WCF, mostrando a nota máxima obtida por cada estado em um formato de pizza.

4.3 OpenI

OpenI é uma aplicação BI Open Source baseada em tecnologia J2EE para analise OLAP, é compatível com servidores OLAP que utilizam o protocolo XML/A, tais como Mondrian e o Microsoft Analysis Services. Tem o propósito de ser uma ferramenta fácil e intuitiva para executar operações OLAP.

42

O OpenI é uma aplicação Web que funciona em qualquer servidor de aplicação J2EE, mas vem com a implementação padrão para o Apache Tomcat Web. É possível construir e publicar relatórios extraídos através de alguns servidores de dados, como servidores de banco de dados relacionais, servidores OLAP e servidores de Data Mining. O OpenI é distribuída como Código Aberto através da OpenI Public License Version 1.0 ("OPL"). A OPL é similar a Licença Pública do Mozilla V1.1, com exceção de um atributo adicional. 4.3.1 Arquitetura OpenI

Arquitetura do OpenI é composta por alguns componentes: O componente de conexão é o responsável em conectar o OpenI ao servidor de dados. Na versão atual a conexão é possível apenas com servidores OLAP que utilizam o protocolo XML/A. As outras versões são a conexão com servidores de banco de dados relacionais através de JDBC, e a conexão com servidores de Data Mining. O componente de Relatório é implementado com linguagens específicas de definição de relatório (RDL - Report Definition Language) para definir e explorar os relatórios criados na plataforma. Para relatórios OLAP ele implementa sua própria RDL baseada em XML. Componente de interface com o usuário utiliza componentes dos projetos Jpivot e JfreeChart (Biblioteca Java para relatórios), unificando-os como um consistente framework Web de navegação, tornando fácil e intuitivo para qualquer usuário técnico ou não técnico

43

O Componente de Segurança utiliza à estrutura de segurança da plataforma J2EE, podendo integrá-la à camada de segurança da base de dados de origem, permitindo desta forma um completo controle de permissão de acesso a informação. A Figura 4-12 ilustra a arquitetura do OPenI e sua comunicação com servidores (Fonte: documentação do OPENI).

Figura 4-12 Arquitetura OpenI

4.3.2 Instalação e Configuração do OpenI

A segurança do OpenI é baseada na segurança do servidor de aplicação J2EE que for utilizado. Existe três regras de autorização configurado para o OpenI, são elas, regras para administrador da aplicação (app admin), administrador do projeto (project admin) e usuário do projeto (user project), a tabela abaixo mostra as ter roles de autorização:

44

Role

Project visibility

App all projects in Admin subdomain Project admin must be declared for each project Project must be declared User for each project

Project Administration YES

Save Public YES

Save Private YES

Configurar Datasource YES

YES

YES

YES

YES

NO

NO

YES

YES

Tabela 1 - Principais atribuições para cada Role (Fonte: documentação do OPENI).

Portanto é preciso definir no servidor J2EE um role chamado admin e um usuário chamado admin, que recebera a role de administração da aplicação pré-configurado no OpenI. Esse login com role de “App Admin” poderá criar novos usuários e delegar o tipo de acesso que esse usuário terá aos projetos, que pode ser um administrador de projeto ou usuário do projeto. O OpenI utiliza o conceito de projetos para definir uma coleção específica de relatórios OLAP. Cada projeto tem suas configurações visuais, lista de relatórios e hierarquia de segurança. Nos contextos do servidor de aplicação, existe uma pasta chamada openi-projects. Cada diretório define um projeto diferente. Cada projeto tem a seguinte estrutura: project.xml – este arquivo tem propriedades específicas do projeto, a maioria delas são configuráveis pela interface do OpenI no site do projeto. images – pasta contendo arquivos de imagens específicas do projeto. public – pasta que armazena as análises públicas, ou seja, análises que são visíveis para todos os usuários do projeto. Adicionalmente, há uma pasta para cada usuário do projeto que criarem análises privadas. Essas análises são visualizadas apenas pelo usuário que as criou, e elas são mantidas dentro de uma pasta com o nome do usuário. 45

Criamos uma pasta chamada Vestibular embaixo da pasta openiprojects seguindo as especificações acima. O arquivo de configuração project.xml contém as seguintes configurações mais relevantes:

Vestibular Vestibular .... openidemo.css images/logoVestibular.PNG images/vestibular-splash.PNG .... mondrian http://localhost:8080/mondrian/xmla Vestibular msas http://localhost/xmla/msxisapi.dll Local

Analysis

Server FoodMart 2000 ....

As tags e servem para a identificação do projeto. A tag , e alteram a aspecto visual do site, modificando o estilo CSS e imagens dos logos. A tag 46

identifica o endereço do serviço web para o envio de consultas MDX e recebimento dos pacotes XMLA e o esquema dimensional que estaremos consultando. No exemplo esta configurada uma entrada para o servidor Mondrian e outra para o Microsoft Analisys Services. Para acessar a aplicação utiliza-se a URL http://localhost:8080/openi/ e a conta de administrador do projeto (admin).

4.3.3 Imagens do OpenI sobre a base do vestilbular:

Figura 4-13 Tela Inicial OpenI

Tela inicial após ter efetuado o Login no site do OpenI, conforme o esquema de autorização do servidor WEB, o usuário poderá ver todos ou parte dos projetos cadastrados, de acordo com seu nível de acesso.

47

Figura 4-14 Configurações do projeto no OpenI

Tela onde é possível alterar as configurações do projeto, algumas propriedades já foram descritas acima na criação do arquivo project.xml.

Figura 4-15 Acesso ao servido OLAP

48

Configuração de acesso a um servidor de dados OLAP, no exemplo o acesso está sendo feito ao servidor OLAP Mondrian através do protocolo XML/A.

Figura 4-16 Criação de analises no OpenI

Tela onde é possível criar uma nova analise, primeiro é selecionado um datasource que foi configurado na figura acima, segundo é selecionado o cubo onde será feito as analises, por ultimo é escolhido entre as medidas e dimensões, quais irão fazer o papel de colunas, linhas e filtros. Podemos fazer escolhas dentro de cada dimensão e das medidas, para visualizar somente os registros que nos interessar.

49

Figura 4-17 Resultado da análise A figura mostra uma tabela gerada com a nota máxima conseguida por cada estado, foram selecionados as dimensões Curso (Nome da área e do curso), Canditado (Origem do candidato) e a medida máxima (Indica a nota máxima alcançada). Foi executada uma operação de Drill-down na dimensão candidato para ter uma visão mais especifica com os estados. A tabela é gerada através da biblioteca de tags JPipot integrada ao projeto OpenI

50

Figura 4-18 Gráfico curso x nota máxima

Gráfico gerado selecionando no cubo a dimensão Curso na horizontal e a nota máxima na vertical.

4.4 SpagoBI

4.4.1 Estrutura da arquitetura funcional

A Aplicação de BI suporta a base analítica da plataforma. Ela gerencia de maneira parecida os ciclos de validação, ativação de parâmetros, a navegação, o controle de versões e o armazenamento, entretanto todo objeto de BI mantém suas características distintas. Disponibiliza uma estratégia padrão para o gerenciamento de parâmetros, a ativação e interação de

51

modalidade, a visibilidade e autorizações das políticas e regras de segurança, organização e navegação através de diferentes documentos. As máquinas de BI são as interfaces para os componentes que produzem os documentos analíticos. As Bases de dados e integração de ferramentas são relacionadas aos sistemas usados como fonte de dados e a todos os aspectos das muitas ferramentas utilizadas para obter-se uma integração de dados e metadados. A Administração disponibiliza suporte para o gerenciamento das funcionalidades da plataforma como um todo, como o agendamento, controle de acesso e serviços de auditoria, interface para classificação de usuários e assim por diante. As ferramentas de desenvolvimento são produtos específicos utilizados para desenhar os documentos de BI. O SpagoBI não tem um conjunto pré-definido de ferramentas de desenvolvimento, o usuário pode escolher as ferramentas que preferir. A parte analítica, como um modelo temático (como CRM, HR, Budget, etc), está fora do escopo do projeto, assim como as ferramentas de desenvolvimentos. Ela será o resultado de projetos específicos que podem evoluir para um modelo genérico. Então, excetuando-se as ferramentas de desenvolvimento e a parte analítica, as camadas da arquitetura funcional pode ser representada como:

- Camada de apresentação fazendo integração da aplicação de negócio - Camada analítica contendo as aplicações de maquinas de BI

52

- Camada de dados e metadados responsável pelas bases de dados e ferramentas de integração.

Figura 4-19 Arquitetura SpagoBI

4.4.1.1 Camada de Apresentação

Os principais objetivos da camada de aplicação são fazer com que os serviços de BI possam ser utilizados de diferentes maneiras e disponibilizar para aplicações externas a capacidade de interagir com o SpagoBI. Ele suporta diferentes canais de comunicação e protocolos: - Portlet. Expondo os serviços de BI gerenciados pelo SpagoBI - Web Services (sobre o protocolo SOAP/HTTP) para a utilização dos serviços a partir de portais e aplicações - JMS para a integração de plataformas pela interação de mensagens JMS

53

Essas implementações são baseadas nos adaptadores do SpagoBI: AdapterPrtlet, AdapterSOAP e AdapterJMS A camada de apresentação é composta por quatro módulos de aplicação: BIPortlet, responsável pela disponibilização de serviços via portler; BIService responsável pelos serviços via web service; BIXCube, simplifica o envio e recebimento de informações através de um modelo XML e BIMessage responsável pelos serviços via mensagel JMS

4.4.1.2 Camada Analítica

A camada analítica é o core da plataforma que coordena todas as atividades analíticas alimentando as ferramentas de suporte. Seus componentes principais são os módulos de Relatórios, OLAP, Data Mining e Scorecard, cada um deles corresponde a uma funcionalidade especifica da mesma configuração da arquitetura, essa camada permite um rápido aprendizado e a utilização modular. Alguns

componentes

de

serviço

maximizam

a

efetividade

do

funcionamento do core preparando o ambiente nos seus apsectos secundários: gerenciamento de parâmetros, filtros e domínios, estruturas e categorias de classificação de documentos e etc. O controlador é responsável pela coordenação dos componentes do core com os componentes de serviço.

Componentes de serviço

54

Na camada analítica, os componentes de serviço não corresponde diretamente a tarefas analíticas, mas eles dão condições e facilitam o processo. Os componentes de serviço são:

BIParamenter – é responsável pelo gerenciamento dos valores de entrada para a inicialização dos módulos analíticos, ele também gerencia a visibilidade da informação de acordo com os perfis do usuário, ele permite a escolha do tipo de entrada (manual, lista de valores, valores padrão e etc), contém as regras de validação dos parâmetros e o comportamento dos parâmetros de acordo com o perfil do usuário BIProfiling – é responsável pelo registro dos documentos analíticos, cada modulo analítico pode ser executado com diferentes ferramentas e utilizar diferentes maquinas para rodas. Por exemplo, pode-se ter relatórios rodando com JasperReport juntamente com outras ferramentas como o CrystalReport. BIFuncionality – é responsável pela definição e gerenciamento dos serviços de BI realizados sobre a plataforma. Em um portal comercial, os serviços oferecidos são claros, como por exemplo, um portal de um banco oferece serviços como ‘transferência’ ou ‘pagamento’. Em um portal de BI não são tão claras, pode-se definir serviços como ‘analise de vendas’, ‘orçamento’. Cada um deles contém uma gama maior de documentos. Permite a criação e manutenção de arvores de serviços, produção de documentos analíticos genéricos, gerenciamento de visibilidade e autorizações para os perfis sde usuário, a aprovação e certificação de documentos . BISearch – É uma ferramenta de busca de documentos.

55

BINotify – Um componente de geração de alertas e notificações automatizadas.

4.4.1.3 Componentes do Core

A alma do SpagoBI e seu centro analítico são os módulos direcionados diretamente a realização da analise das informações armazenadas. Os componentes principais que formam o core do SpagoBI são: Geração de relatórios (reporting), Análise OLAP, Data Mining, Dashboards e Scorecards. Eles possuem uma camada de interface e uma arquitetura coumum e gerenciam sua camada de aplicação de maneiras específicas. - Geração de relatórios, gera a visualização estruturada da informação, podendo ser gerado em vários formatos, que tornam a apresentação estática (.pfd, .xls, csv, etc). O SpagoBI permite a navegação entre diferentes documentos, herdando as configurações escolhidas. - A estrutura multi-dimensional para a analise OLAP agrega uma maior grau de liberdade e variabilidade nas analises. O eixo da analise e as medidas de observação são estruturadas. Isso permite o exame das informações em vários níveis de detalhe e de várias perspectivas, através das operações de drill-down, drill-across e slice and dice, já explicadas anteriormente. - Processos e algoritmos de Data Mining como redes neurais e arvores de decisão permitirão a analise dos dados com o objetivo de encontrar informações ‘escondidas’ nos dados armazenados. O SpagoBI permite a realização da mineração de dados através de outros objetos de BI.

56

- No contexto de gerenciamento de performance, o SpagoBI disponibiliza vários widgets para a estruturação de dashboards e para avaliação dos parâmetros de scorecards.

4.4.1.4 Camada de dados e metadados

A camada de dados e metadados se localiza no nível do datawarehouse. O projeto do datawarehouse está fora do escopo do SpagoBI porque cada DW é específico ao universo de necessidades do usuário, então o SpagoBI preocupa-se apenas com os metadados, dando uma meta-descrição para os aspectos técnicos, para os significados da informação no escopo do negócio e para o processamento da informação. Esses metadados são implementados a partir de padrões do CWMI.

4.4.2 Ferramentas de código livre utilizadas pelo Spago BI

- Framework da aplicação: Spago - Repositório de conteúdo: JackRabbit - Ferramenta de busca: Lucene - Ferramenta de geração de relatórios: JasperReport - Cliente/OLAP: JPivot - Servidor OLAP: Mondrian - Ferramenta de mineração de dados: Weka - Suporte QbE: Hibernate 57

- ETL: BIE, OCTOPUS - Administração/Agendador: Quartz - Ambiente de Portal: Plataforma eXo

5.4.3 Funcionalidades

As operações OLAP são realizadas pelo Jpivot, que já teve o funcionamento explicado anteriormente, o Jpivot é adicionado como um componente dentro do portal:

Figura 4-20 Operações OLAP através do JPivot no SpagoBI

58

A realização das operações OLAP como Drill Down e Pivoting na plataforma SpagoBI são realizadas pelo Jpivot, que é adicionado ao portal como um componente, a figura mostra que a maneira de realizar as operações é exatamente igual à execução das mesmas no JPivot, já explicado anteriormente.

A plataforma SpagoBI disponibiliza também uma ferramenta de análise geográfica:

Figura 4-21 Ferramenta de análise Geográfica: Geo

Nesse gráfico estão representadas as vendas de bebidas de acordo com os estados americanos. Essa análise foi feita sobre a base de dados disponível junto com o pacote de instalação do SpagoBI para demonstração.

59

Estão também disponíveis através do portal diversos tipos de gráficos e relatórios, que podem ser exportados para diversos formatos através do JasperReport ou do BIRT.

4.4.4 Instalação

O SpagoBI disponibiliza um arquivo executável (SpagoBIInstaller.jar) que contém todas os componentes necessários para o seu funcionamento, sendo necessário para isso apenas a instalação anterior do eXo Portal. Feito isso, para utilizar a base de dados que acompanha o pacote para a demonstração basta fazer o login no portal com usuário e senha ‘staff_gen’. Na análise dessa ferramenta os testes foram feitos com a própria base que acompanha o pacote e não com a base do vestibular, devido à escassez de tempo.

4.5 Pentaho

A plataforma Pentaho BI tem o objetivo de fornecer soluções para os problemas em Business Intelligence (BI), para isso contempla as principais áreas de BI através de uma arquitetura orientada a serviços e centrada em processos, que engloba componentes responsáveis por relatórios, análises, mineração de dados, ETC, entre outros. O elemento principal na arquitetura é a característica de ser centrado em processos cujo controle é realizado através de um mecanismo de workflow, ou seja, que faz a automação do processo de negocio, na totalidade ou em partes.

60

Este mecanismo utiliza definições de processos para determinar os processos de BI que serão executados na plataforma. (PENTAHO, 2007) A plataforma Pentaho de BI é distribuída como Código Aberto através da Licença Pública da Pentaho (PPL, do inglês, Pentaho Public License). Uma cópia desta licença está disponível em http://www.pentaho.org/license. A PPL é similar a Licença Pública do Mozilla V1.1, com exceção de um atributo adicional.

4.5.1 Recursos Disponíveis da Plataforma.

A seguir são descritos os principais recursos disponíveis nos componentes da plataforma Pentaho de BI, que podem ser inseridos em qualquer solução de uma forma customizada. Os relatórios fazem a integração da plataforma com relatórios BIRT, Jasper e JFReeReport. Podem ser gerados em conteúdo HTML ou PDF usando tanto relatórios parametrizados como não-parametrizados. Outros relatórios são elaborados a partir de um processo de análise em tempo real das bases de dados. (PENTAHO, 2007) Existem dois tipos de regras de negócios suportados pela plataforma Pentaho de BI, regras de consulta e regras em Java Script. As primeiras são simplesmente consultas em SQL suportadas pela plataforma Pentaho, retornando linhas de dados que podem ser manipuladas por outros componentes. As regras em Java Script permitem desenvolver funcionalidades adicionais e customizadas à plataforma. (PENTAHO, 2007)

61

Bursting permite separar uma tarefa grande, como a entrega de relatórios para gerentes, em simples processos que podem ser repetidos para cada contexto individual. As regras que determinam os contextos e os seus respectivos processos podem ser customizadas para atender os requisitos específicos de cada situação. (PENTAHO, 2007) As fontes de dados são conjuntos de dados que são retornados de diferentes fontes OLAP e RDBMS de dados. São varias maneiras de acessar esses dados, através de consultas MDX, consultas SQL e consultas XML (XQuery) para dados. Existem vários tipos de gráficos que podem ser construídos pela plataforma sobre os dados. São incluídos gráficos de barras, de linhas, de “pizza”, de torta e dashboards. (PENTAHO, 2007) Os pivôs podem ser integrados na plataforma Pentaho usando JPivot. Pivôs permitem aos usuários explorar um conjunto de dados de uma forma multi-dimensional. Usuários podem navegar, expandir, reduzir e mover elementos de dados. (PENTAHO, 2007) Dados podem ser apresentados graficamente através do SGV, mas para isso é necessário que o navegador tenha um plugim para visualizar os mapas. É possível também executar uma seqüência de ações como um serviço web, uma regra de consulta é executada e o resultado retorna como uma mensagem SOAP.

4.5.2 Estrutura da Arquitetura.

62

A arquitetura é a combinação de códigos fontes originais e componentes maduros, que integrados formam uma plataforma de BI. Muitos destes componentes são projetos consolidados em código aberto, porém podem ser facilmente substituídos por outros produtos. As soluções são conjuntos de ferramentas e não uma solução integrada. (PENTAHO, 2007) A plataforma Pentaho de BI é composta do Servidor Pentaho, o servidor roda em acordo com o padrão de servidor web J2EE Server, tais como Apache, JBoss, ou qualquer outro que implemente esse padrão. Os repositórios de dados são armazenados em um RDBMS, que é externo a plataforma Pentaho, a API de persistência da plataforma é construída em Hibernate, um framework para persistência dos dados, o qual simplifica a inclusão da maioria de SGDBs. Inclui um mecanismo de OLAP em código aberto, o mondrian, mas qualquer servidor de OLAP que segue o padrão MDX pode ser usado. (PENTAHO, 2007) A plataforma integra componentes desenvolvidos em código aberto, alguns são analisados neste trabalho, como o Servidor OLAP Mondrian e Cliente web JPivot, a seguir a lista completa:

Servidor OLAP Mondrian e Front-End jPivot Analysis Shark e JaWE Workflow Kettle EII e ETL Servidor de aplicação JBoss, Hibernate e Portal Weka Data Mining Eclipse Workbench e BIRT reporting components JOSSO single sign-on and LDAP integration

63

Mozilla Rhino Javascript Processor

4.5.3 Demonstração da Plataforma.

As operações OLAP são realizadas pelo Jpivot, portanto a apresentação do Pentaho é muito parecida, conforme visto na figura 4-22:

Figura 4-22 Componente Integrado JPivot

O Pentaho também possibilita a analise com base em dados geográficos, como visto na figura 4-23:

64

Figura 4-23 apresentação dos dados por divisão geográfica no Pentaho

4.5.4 Instalação.

O Pentaho Open BI Suite disponibiliza um arquivo executável (pentahoversao-windows-opensource-installer.exe) que contém todas os componentes necessários para o seu funcionamento, bastando a execução do arquivo para realizar as instalação. A base de dados distribuída como demonstração pode ser acessada sem a necessidade de configuração.

4.6 BEE Project

O BEE Project é um conjunto de ferramentas para o desenvolvimento de um projeto de BI em empresas de médio porte. A arquitetura é baseada na 65

metodologia ROLAP visando o suporte de projetos que comportem até 50 GB de informação. O projeto é licenciado sob a licença GPL e as versões estáveis estão também disponíveis comercialmente com a inclusão do suporte técnico (em um sistema parecido com o utilizado pela base MySQL) É composto de uma ferramenta ETC, baseada no serviço de 'daemons' simples. Todo o ambiente de desenvolvimento é administrado por uma aplicação centralizada de supervisão. também possui um Servidor Rolap que disponibiliza suas funcionalidades através de uma aplicação SOAP que pode ser utilizada por uma grande quantidade de aplicações cliente. A interface primária de apresentação de relatórios é uma aplicação Web, tendo como requisitos apenas os necessários para a estrutura da rede.

4.6.1 Arquitetura do BEE

A maior parte do projeto foi escrita na linguagem Perl, com a utilização de DBD/DBI e SOAP, partes menores foram desenvolvidas e C. O repositório do DW pode estar uma base de dados relacional comum, atualmente o MySQL tem se mostrado o mais apropriado para a arquitetura do projeto, levando em consideração o volume de dados suportado. A plataforma do BEE abrange todas as fases do processo de BI:

66

Figura 4-24 Esquema de etapas da análise OLAP. Fonte: [BEE, 2007]

Com exceção do armazenamento dos dados, o BEE project realiza as oprações de ETC através do BEE ETL que faz a transação do ETC para o DW, possui também um servidor OLAP, o BEAR e a camada de apresentação é executada pelo BEE Web Analiser. O Bee permite a produção de uma série de analises através de gráficos, que incluem gráficos de pizza, de barras, distribuições geográficas, gráficos tridimensionais e etc:

67

Figura 4-25 Exemplos de gráficos gerados pelo BEE Project

4.6.2 Instalação

A instalação do BEE Project é a mais complexa entre as ferramentas analisadas, e exige, entre outros, a compilação do código fonte PERL. Além disso a documentação é muito deficiente o que dificulta e toma muito tempo. Por esses motivos esse trabalho analisou o BEE project apenas através da documentação disponível e a instalação não foi realizada.

68

CRITÉRIOS PARA COMPARAÇÃO DAS FERRAMENAS OLAP

Existem no mercado diversas soluções OLAP. Tal fato gera uma situação muitas vezes contraditória no momento da escolha da ferramenta mais adequada às necessidades de uma organização. Por isso é importante saber quais critérios devem ser levados em consideração pelos profissionais de tecnologia da informação ou qualquer outro usuário no processo de escolha. Os critérios selecionados para comparação das soluções OLAP foram definidos através de vários fatores. A maioria foi definida pelas necessidades apuradas no estudo de caso; outros vieram de trabalhos correlatos e também através da leitura da documentação das ferramentas. A seguir são apresentados os critérios para comparação relacionados de acordo com as categorias das ferramentas. Primeiro são descritos os critérios que se aplicam a todas as ferramentas, seguindo com uma especialização dos critérios para cada categoria. Ao final, uma tabela mostra a relação entre todos os critérios definidos e as categorias de ferramentas.

5.1 Critérios para todas as categorias de ferramentas

Ao analisar as diversas categorias de ferramentas, percebe-se que os aspectos se repetem e assim alguns critérios podem ser aplicados de uma forma geral, como por exemplo, a compatibilidade com diferentes sistemas operacionais, licença e linguagem de desenvolvimento da ferramenta. Abaixo segue uma descrição mais aprofundada de cada critério.

69

Ao decidir entre diferentes produtos, o usuário normalmente vai escolher um produto compatível com o seu sistema operacional e seu hardware, então para todos os produtos é importante analisar para quais plataformas de software a ferramenta está disponível. Este projeto avalia apenas ferramentas de código aberto, porém existem vários tipos de licenças de código aberto. Então também é feita uma análise das permissões e restrições de cada licença. A linguagem de desenvolvimento deve ser analisada em todos os produtos, pois é importante na manutenção e possível adequação ao domínio do negócio via customização. É importante também levar em consideração a interface com os usuários técnicos e não técnicos, tornando possível executar tarefas de análise e configuração de uma forma fácil e intuitiva. Para isso é definido o critério de usabilidade, que foi categorizada em três níveis, muito amigável, amigável ou não amigável.

5.2 Critérios para ferramentas de ETC

A analise de ferramentas ETC está fora do escopo deste trabalho, mas os critérios a seguir podem ser usados para comparamos ferramentas classificadas nesta categoria. Primeiro devemos considerar quais bases de dados a ferramenta suporta. Aqui deve ser analisado se a ferramenta é para carregar dados em um sistema MOLAP, ROLAP, HOLAP, etc., ou seja, em cubos multidimensionais

70

ou tabelas relacionais. Em muitas aplicações práticas, pode ser possível extrair dados de fontes diferentes e combina-las de maneiras diferentes. Também deve ser analisado que tipos de fontes podem ser extraídos e se a ferramenta suporta a carga automatizada de dados. Além disso, é importante saber como o processo de ETC é especificado pelo usuário, se existe uma interface gráfica ou uma linguagem para a especificação. Outra característica importante é a capacidade da ferramenta efetuar a limpeza dos dados.

5.3 Critérios para Servidores OLAP

Os servidores de dados OLAP são responsáveis por manipular os dados multidimensionais, que podem ser armazenados em um banco de dados dimensional ou como tabelas de fatos e dimensões (esquema estrela ou floco de neve) em um SGBD relacional. Sendo assim é importante avaliar esses aspectos. Ao decidir entre os vários servidores de dados OLAP, o usuário normalmente vai escolher um produto compatível com o seu SGBD. Então para todos os produtos é importante analisar para quais SGBDs a ferramenta está disponível. O método de armazenamento deve ser analisado, pois cada método possui uma função específica e deve ser utilizado quando melhor atender às necessidades de análise. Para isso é importante saber se a ferramenta é ROLAP, MOLAP, HOLAP, etc.

71

A linguagem de consulta que o servidor suporta e o protocolo de acesso disponível para os clientes deve ser avaliado, isso porque um produto que utiliza padrões conhecidos é mais versátil em termos de composição que um que não utiliza.

5.4 Critérios para Clientes OLAP

Os clientes permitem aos usuários explorar a resposta obtida do servidor de dados OLAP de uma forma multidimensional, podendo navegar, expandir, reduzir e mover elementos de dados e exportar as respostas para vários formatos. A seguir são definidos os critérios associados com esses aspectos. Ao decidir entre os vários clientes OLAP, é importante saber com quais servidores eles podem ser usados e como podem fazer as consultas. Então para todos os produtos é importante analisar quais são as formas de conexão com os servidores de dados e a linguagem de consulta utilizada. Isso porque um produto que utiliza padrões conhecidos permite acoplamento com mais servidores que um que não utiliza. Também é levado em consideração o fato de um cliente poder administrar as análises, oferecendo um ambiente onde é possível criar, alterar e publicar os relatórios gerados e controlar o acesso a esses documentos através de regras de autorização. Outras características especificas são tratadas somente na descrição das ferramentas, como por exemplo, operações OLAP permitidas, tipos disponíveis para exportação de relatórios, tipos e qualidade de gráficos, geração de mapas, etc.

72

5.5 Critérios para Suítes de Ferramentas de BI

Uma suíte de ferramentas é um conjunto de componentes maduros que integrados formam uma plataforma de BI. Por essa característica é necessário avaliar critérios como, quais componentes estão integrados, gerenciamento das análises e acesso aos dados no modelo relacional. Suítes possuem servidores de dados integrados à plataforma, e costumam trabalhar juntamente com um SGBD. Sendo assim, como nos servidores OLAP, é importante avaliar os SGBDs suportados. Como nos clientes, é necessário avaliar o fato de um cliente poder administrar as análises, tendo um ambiente onde é possível criar, alterar e publicar os relatórios gerados e controlar o acesso a esses documentos através de regras de autorização ou portais. Saber quais servidores de dados e clientes web estão integrados na plataforma é importante, pois é possível analisar tais componentes segundo os critérios estabelecidos nas suas categorias específicas.

5.6 Tabela dos critérios relacionados por categoria.

A Tabela 5.1 apresenta os critérios que podem ser aplicados para cada categoria de ferramentas OLAP. Nas linhas estão todos os critérios definidos e nas colunas estão todas as categorias de ferramentas, a menos de ETC, por não estar contemplada neste trabalho.

73

Primeiro estão os critérios gerais, ou seja, aqueles que podem ser aplicados em todas as categorias, seguindos dos critérios específicos de cada categoria. Servidores de Dados OLAP X

Clientes OLAP X

Suíte

Licença

X

X

X

Linguagem de desenvolvimento

X

X

X

Usabilidade

X

X

X

SGBDs suportados

X

Método de Armazenamento

X

Formas de Conexão com Clientes

X

Linguagem de Consulta OLAP

X

Sistema Operacional

X

X

X

Formas de Conexão com Servidor

X

Gerência de Análises

X

Componentes Cliente Web Componentes Servidor

X X X

Tabela 5.1 – Critérios relacionados por categoria

74

ANÁLISE DAS FERRAMENTAS SEGUNDO OS CRITÉRIOS ESTABELECIDOS

Esta seção tem por objetivo comparar as características das ferramentas analisadas, segundo os critérios apresentados na Seção 5. Os objetivos dessa seção são validar os critérios de comparação, demonstrando a sua utilização em um conjunto de ferramentas OLAP e mostrar as vantagens e desvantagens de cada uma, para ajudar na escolha da melhor solução OLAP em diferentes situações.

6.1 Mondrian

O Mondrian foi o único servidor de dados OLAP analisado dentre todas as ferramentas. Não foi encontrada nenhuma outro servidor OLAP de código aberto absolutamente maduro para ser analisado. O Mondrian é um software desenvolvido na linguagem Java, e pode ser instalado em qualquer sistema operacional que possui a maquina virtual Java (JVM). Pode ainda ser acoplado a diversos SGBDs relacionais, devido a fato dos principais fornecedores possuírem uma implementação para o driver JDBC. A característica de realizar consultas OLAP em dados armazenados em um banco de dados relacional e retornar consultas em forma multidimensional classifica-o como um software ROLAP.

75

A

definição

do

esquema

XML

e

dataSource.xml

responsáveis

respectivamente pela construção do modelo multidimensional e configuração do Mondrian para ser acessado através de XMLA, não possuem uma interface de programação amigável para o desenvolvedor, dificultando sua escrita e entendimento à medida que os arquivos vão crescendo. Esta dificuldade pode ser revertida em parte utilizando um plugin para a ferramenta de desenvolvimento Eclipse, onde é possível programar o esquema XML de uma forma visual e clara. O Mondrian executa consultas MDX, lendo os dados de um banco de dados relacional, e pode ser acessado por qualquer cliente que utiliza XMLA. Internamente, o Mondrian converte uma consulta MDX em consultas SQL submetidas ao SGBD relacional e compõe as respostas retornadas pelo SGBD em uma visão de cubo de acordo com o padrão XMLA, para ser retornada a cliente OLAP.

6.2 JPivot

O Jpivot foi a única biblioteca de código aberto encontrada para o propósito de renderizar o retorno obtido do servidor de dados OLAP em uma pagina Web no formato dimensional. O fato de buscar os dados no servidor para apresentar ao usuária da aplicação OLAP sobre a Web classifica o Jpivot na categoria de cliente OLAP. O Jpivot é um software desenvolvido na linguagem Java, e assim pode ser instalado em qualquer sistema operacional que possui a maquina virtual Java (JVM).

76

Ele utiliza componentes do framework (WCF) para a criação de gráficos, tabelas, opções de navegação e impressão dos relatórios em vários formatos. Graças a esses componentes, o usuário final pode navegar de uma forma fácil e intuitiva pelo modelo dimensional. Porém, o Jpivot não oferece nenhuma interface de programação para o desenvolvedor configurar o acesso ao servidor de dados ou escrever consultas. O Jpivot envia para o servidor de dados OLAP consultas linguagem MDX confeccionadas de acordo com a interações do usuário com a interface OLAP no cliente Web. . Pode acessar diretamente a base de dados relacional usando a implementação da interface específfica do Mondrian, ou fazer a conexão ao servidor OLAP através do padrão XMLA. Atualmente o JPivot vem integrado a várias ferramentas de código aberto para OLAP, como o próprio servidor OLAP Mondrian, o clientes OLAP OpenI e as suítes

Pentaho e SpagoBI. Além disso, pode ser integrado a

qualquer projeto Web Java, bastando para isso adicionar as tags pertinentes ao Jpivot na pagina JSP do projeto.

6.3 OpenI

OpenI é uma aplicação WEB desenvolvida com tecnologia J2EE e pode ser instalada em qualquer sistema operacional com a maquina virtual Java (JVM). Ele faz a gestão dos projetos cadastrados em seu ambiente, gerenciando usuários, arquivos, conexão com servidores de dados OLAP, seleção de cubos, criação e publicação de relatórios. A característica de ser

77

uma aplicação que busca informações no servidor de dados OLAP o classifica como um cliente OLAP O OpenI possui uma interface amigável para usuários técnicos e não técnicos, tornando simples executar tarefas básicas de análise sobre um modelo dimensional, como por exemplo, configurar um acesso ao servidor de dados OLAP usando protocolo XMLA, escrever consultas na linguagem MDX ou criar análises sobre um cubo e publicar os resultados na Web. O OpenI conta com componentes dos projetos Jpivot e JfreeChart para renderizar o retorno obtido do servidor de dados OLAP, unificando-os como um consistente framework Web de navegação. Além disso, utiliza recursos de segurança do servidor Web, como por exemplo, o controle de acesso aos projetos usando definições de papéis (roles). O OpenI utiliza o protocolo XMLA para acessar o servidor de dados OLAP, ou seja, pode ser cliente de qualquer servidor que implementa esse protocolo. As consultas são escritas na linguagem MDX, que é a linguagem usada pelos principais servidores OLAP.

6.4 SpagoBI

O SpagoBI é uma suíte de ferramentas livres desenvolvidas em Java. A apresentação é feita através da plataforma de portal eXo Portal, via browser, o que torna a parte cliente independente de sistema operacional. O lado do servidor é suportado por qualquer sistema operacional através de um servidor de aplicação web.

78

A suíte traz consigo o servidor Apache Tomcat para a hospedagem do portal que dá suporte à execução das outras ferramentas. O servidor OLAP utilizado é o Mondrian, e para a renderização e apresentação das informações é feita pelo Jpivot – ambos já foram analisados nos itens anteriores. Outras ferramentas disponibilizadas pela suíte incluem a ferramenta de busca Lucene, o JasperReport para a geração de relatórios, o JackRabbit como repositório de conteúdo, a ferramenta de ETC OCTOPUS, a ferramenta de administração Quartz e a ferramenta de mineração de dados Weka. Todas são desenvolvidas em Java e possuem código aberto.

6.5 Pentaho O Pentaho é uma suite de ferramentas desenvolvidas em Java. Na camada de apresentação ele utiliza o Jpivot associado a ferramentas de geração de gráficos e relatórios como o JasperReports e BIRT. A comunicação utiliza os padrões XMLA para conexão e MDX para executar as consultas. Utiliza o Mondrian como servidor OLAP, suportando portanto todos os SGBDs por ele suportados. Sendo todas estas ferramentas desenvolvidas em Java, o suporte aos sistemas operacionais é feito através das maquinas virtuais, portanto a plataforma é suportada por todos sistemas operacionais que possuem JVM. O elemento principal na arquitetura é a característica de ser centrado em processos cujo controle é realizado através de um mecanismo de workflow. O Pentaho possui uma licença própria, a PPL (Pentaho Public License). A PPL é similar a Licença Pública do Mozilla V1.1, com exceção de um atributo adicional.

79

6.6 BEE Project

O BEE é a única das ferramentas encontradas que não teve o desenvolvimento feito em Java – foi feito em Perl e C. Com isso é um suíte que tem todas as ferramentas desenvolvidas especialmente para ele e não aproveita bibliotecas de nenhuma outra ferramenta estudada. Também resultado da linguagem diferente é a limitação quanto aos bancos de dados suportados pelo servidor OLAP, que não tendo a liberdade da utilização de JDBCs ficam restrito apenas aos SGBDs previstos na implementação. Apesar de ter sido inicialmente desenvolvido para UNIX, uma versão para Windows também é distribuída. A instalação do BEE project é a mais complexa entre as ferramentas estudadas, pois exige a compilação do código fonte, ação que exige a instalação de um ambiente específico de desenvolvimento.

6.7 Tabela comparativa das ferramentas

A tabela 6.1 sintetiza os critérios apurados para cada ferramenta. A primeira linha lista as ferramentas selecionadas para Analise e as demais fazem o relacionamento de cada critério com essas ferramentas, começando pela classificação dessas ferramentas. Na primeiras linhas estão os critérios aplicados a todas as categorias. Eles são seguidos pelos critérios específicos, que são utilizados para avaliar uma categoria ou mais de uma, de acordo com a abrangência das características analisadas.

80

Em alguns casos o critério em questão não pode ser associado à ferramenta na tabela, como por exemplo, não faz sentido associar um servidor a uma ferramenta que é um servidor. Ferramenta

Mondrian

OpenI

Jpivot

Pentaho

Bee Project

Spago BI

Categoria

Servidor

Cliente

Cliente

Suíte

Suíte

Suíte

POSIX Sistema Operacional

(Linux/BSD/U Varias (JVM) Varias (JVM) Varias (JVM) Varias (JVM)

NIX similares),

Varias (JVM)

Linux Linguagem de desenvolvimento

Java

Java

CPL (Common Licença

Public License

Java

CPL OPL (OpenI Public LIcense)

(Common

PPL (Pentaho

Public

Public License)

License)

v 1.0) Usabilidade

Java

Pouco

Muito

Amigável

Amigável

Amigável

C, Perl

GPL (General Public License)

Muito

Pouco

Amigável

Amigável

Java GPL (General Public License) Amigável

Perl DBI/DBD, SGBD suportado JDBC (todos) JDBC (todos)

-

JDBC (todos)

MySQL,

JDBC

Oracle,

(todos)

PostgreSQL (pgsql) Método de Armazenamento

Rolap

Rolap

-

Rolap

Rolap/Holap

Formas de Conexão Disponíveis Linguagem de Consulta Formas de

XMLA, JDBC XMLA, JDBC Não se Aplica XMLA, JDBC

MDX

MDX

MDX

MDX

Conexão com

-

Servidor Gerencia Analises Componente

-

Sim

Não

Sim

-

-

-

JPivot

-

-

-

Mondrian

Web Componente Servidor

XML/A, JDBC XML/A, JDBC XML/A, JDBC

-

-

Sim BeeWeb Analyzer BEAR

Rolap

XMLA, JDBC MDX XML/A, JDBC Sim JPivot Mondrian

Tabela 6.1 Comparação de ferramentas OLAP de domínio público

81

82

Entre as ferramentas pesquisadas existe uma grande reutilização de bibliotecas e componentes, inclusive sendo algumas ferramentas praticamente únicas na sua categoria, como é o caso do servidor Mondrian, que é usado em todas as suítes pesquisadas e ainda pode ser usado com os dois clientes analisados. O mesmo acontece com o cliente JPivot, que é usado pelas duas suítes desenvolvidas em Java, assim como pelo OpenI. Entre as Suítes o SpagoBI se destaca pela apresentação mais rica e intuitiva, enquanto o Pentaho por sua maior maturidade, também o maior número de desenvolvedores e da comunidade de usuários faz com que ele tenha uma maior capacidade de adaptação a novas tecnologias e correção de eventuais bugs. A suíte BEE Project teve a sua análise prejudicada principalmente devido a sua documentação deficiente. Seu grande mérito é o desenvolvimento de absolutamente todas as etapas e componentes necessários sem a utilização de componentes existentes. Quanto à usabilidade foram usadas classificações de acordo com a facilidade que um usuário leigo e, possivelmente, sem noções de programação teria para instalar e começar a utilizar as ferramentas, sem a intervenção de um especialista. Na configuração dos servidores é inevitável a definição dos schemas sendo assim necessário certo conhecimento de programação, já para a utilização, principalmente das suítes, foi verificado que elas são extremamente intuitivas e simples de operar.

83

TRABALHOS CORRELATOS

O artigo de Christian Thomsen e Torben Bach Pedersen (CHRISTIAN THOMSEN, 2005) tem uma proposta muito semelhante à deste trabalho, mas sendo um artigo e tendo por isso um espaço reduzido para a analise das ferramentas, ele faz uma analise mais superficial das mesmas, não chegando a analisar suas arquiteturas. Além disso, o artigo analisa ferramentas que estavam ainda em estágio inicial de desenvolvimento, muitas vezes com implementações incompletas e não funcionais. Atualmente, as ferramentas encontram-se em um estagio mais avançado de desenvolvimento, com versões estáveis disponíveis e inclusive tendo pacotes de instalação que facilitam a sua instalação. O artigo analisa ferramentas de ETC como o CloverETL e o Octopus. Esse tipo de ferramenta não foi analisado neste trabalho, a não ser quando essas ferramentas fazem parte dos suítes, como por exemplo a plataforma SpagoBI que utiliza o Octopus como ferramenta ETC. Entre os servidores, o artigo analisou o Mondrian, que também foi analisado aqui, e o Lemur, que à época ainda não possuía implementação disponível, e que agora possui uma versão em formato de biblioteca, sendo assim não pode ser considerado uma ferramenta e portanto não foi analisado. Entre os clientes este trabalho adiciona o OpenIà lista de ferramentas já composta por Jpivot e Bee Project. Para este trabalho, as ferramentas tiveram a sua arquitetura analisada com um grau maior de detalhamento, e sua instalação foi superficialmente descrita para melhor ambientar as necessidades e requisitos para a utilização das mesmas. 84

O projeto de diplomação (FELBER 2006) apresenta uma proposta para análise das informações do departamento comercial de uma empresa do setor de calçados, através da elaboração e construção de um Data Mart e uso de ferramentas OLAP para análise dos dados. O trabalho aborda conceitos sobre as tecnologias adotadas em softwares de distribuição gratuita, entre eles, o Mondrian, JPivot, OpenI e Pentaho. Ele mostra como essas ferramentas podem auxiliar no processo de tomada de decisão. O trabalho apresenta os conceitos principais referentes a sistemas de apoio a decisão, como características de DW e Data Mart, metadados, extração, transformação e carga de dados, modelagem dimensional, arquitetura e operações OLAP e uma visão técnica mostrando funcionalidades, padrões e características da arquitetura de cada ferramenta. São analisadas algumas soluções baseadas na documentação fornecida pelas ferramentas, dentre elas, um servidor de dados OLAP, dois clientes OLAP e uma plataforma de BI, sendo que todas são Open Source. Nosso trabalho abrange todas as soluções apresentadas e também faz uso da documentação disponível com cada ferramenta, devido à falta de material didático disponível, por serem soluções ainda pouco conhecidas. O projeto de diplomação (Rosa 2005) apresenta soluções que utilizam a tecnologia OLAP, com o objetivo de

testa-las em bancos de dados de

empresas, fazendo uma extração dos dados para ajudar em tomada de decisões, que muitas vezes, pelo custo e complexidade de ferramentas disponíveis no mercado, não atraem as empresas para a implantação destas.

85

O trabalho apresenta os principais conceitos sobre DW, desde modelos de banco de dados, arquitetura OLAP e sistemas de apoio a decisão, seguindo com um estudo de caso, que mostra as principais etapas da elaboração e construção de um DW, juntamente com a aplicação de ferramentas OLAP sobre o modelo dimensional do caso de uso. Por último são exibidas as características do servidor de dados OLAP da Microsoft, o Analysis Services, e do Mondrian com o Jpivot, para realizar uma comparação entre as duas. O trabalho faz a comparação de servidores de dados OLAP. Para isso analisa as funcionalidades de duas soluções existentes no mercado, sendo que uma é software proprietário e outra é Open Source. Nosso trabalha estuda somente uma solução na categoria de servidores de dados OLAP, pois se propõe a estudar apenas aquelas que sejam gratuitas, atualmente existe apenas uma ferramenta madura e reconhecida que atende esse critério.

86

CONCLUSÕES E TRABALHOS FUTUROS

Fica evidente com a análise apresentada neste trabalho que a linguagem Java é predominante no desenvolvimento de ferramentas de código aberto para OLAP. Também pode-se perceber que a reutilização de bibliotecas e módulos de ferramentas, resultado do paradigma da orientação a objetos, é muito utilizada nesta área. Assim como a reutilização de código, a “reutilização de conceitos”, através da criação de padrões para protocolos de comunicação e apresentação de resultados e relatórios eliminou grande parte do retrabalho, além de permitir uma maior compatibilidade entre as ferramentas. No que se refere a sistemas operacionais, apesar da preferência dos desenvolvedores de aplicações de código aberto por sistemas operacionais também de código aberto, como o Linux, todas as ferramentas analisadas possuem versões para Windows. O suporte

a

diferentes

SGBDs

também

é

bastante

difundido

principalmente via JDBC, o que é o caso da grande maioria das ferramentas analisadas, com exceção apenas do BEE Project. As

ferramentas

analisadas



estão

em

estado

avançado

de

desenvolvimento, algumas com distribuições tão amigáveis que podem facilmente ser instaladas e configuradas sem conhecimento algum de linguagens de programação, como é o caso do SpagoBI. Algumas apresentam algumas dificuldades principalmente na edição dos arquivos de configuração que não são muito instintivos. Avanços nessa área podem encorajar a

87

utilização dessas ferramentas em ambientes de produção.

Trabalhos Futuros: Algumas ferramentas que não foram analisadas neste trabalho por estar em fase de desenvolvimento inicial poderiam ser adicionadas, como é o caso do Bizgres que ainda está na sua versão 0.9. Assim como uma análise de ferramentas ETC, que ficaram de fora do escopo deste trabalho. Esse grupo inclui ferramentas como o Enhydra Octopus, o JetStream e o Clover ETL. Um outro passo próximo pode ser analisar também as ferramentas de mineração de dados (data mining). Algumas delas inclusive já fazem parte de pacotes analisados, mas como estavam fora do escopo não tiveram critérios de análise definidos e não foram testadas. O mesmo vale para as ferramentas de análise geográfica, campo que está em expansão.

88

REFERÊNCIAS BIBLIOGRÁFICAS

APACHE SW LICENSE v2.0. Disponível em: www.apache.org/licenses/LICENSE-2.0. Acesso em 20 de Maio de 2007.

BEE PROJECT. Bee Project. Disponível em: http://bee.insightstrategy.cz/en/index.html. Acesso em: 14 dezembro 2006.

BSD LICENSE. Disponível em: http://opensource.org/licenses/bsd-license.php . Acesso em 27 de Maio de 2007

CHRISTIAN THOMSEN, Torben Bach Pedersen. A Survey of Open Source Tools for Business Intelligence. Intl. Conf. On Data Warehousing and Knowledge Discovery (DaWaK), 2005. pp. 74-84.

CIELO, Ivan. ARQUITETURA OLAP. Disponível em: http://www.datawarehouse.inf.br/artigos/olap2.asp , acesso em 15 de maio de 2007

ETL WIKIPEDIA. The free encyclopedia. Disponível em Acesso em: 31 maio de 2007.

89

FELBER, Edmilson J. W. Proposta de uma ferramenta OLAP em um Data Mart comercial: Uma aplicação prática na industria calçadista. Novo Hamburgo, junho de 2006 102p. Projeto de Diplomação (Bacharelado em Ciência da Computação) – Instituto de Ciências Exatas e Tecnológicas, Centro Universitário Feevale, Novo Hamburgo.

GNU GPL LICENSE. Disponível em: www.gnu.org/copyleft/gpl.html. Acesso em 27 de maio de 2007.

GNU LGPL LICENSE. Disponível em: www.gnu.org/copyleft/lgpl.html , Acesso em 20 de maio de 2007.

INMON, W. H. Como construir o Data Warehouse. 2. ed. Rio de Janeiro: Campus,1997.

INMOM, W.H. Billinmon.com. Disponível em: http://www.billinmon.com. Acesso em: 15 setembro 2006.

JPIVOT. A JSP based OLAP. Disponível em: http://jpivot.sourceforge.net. Acesso em: 13 outubro 2006.

JFREECHART. A free Java chart library. Disponível em: http://www.jfree.org/jfreechart>. Acesso em: 28 fevereiro. 2007.

90

KIMBALL, Ralph; ROSS, Margy. The Data Warehouse Toolkit: guia completo para modelagem dimensional. 2. ed. Rio de Janeiro: Campus, 2002.

KIMBALL, RALPH.kimball Group. Disponível em: http://www.rkimball.com. Acesso em: 15 setembro 2006.

MONDRIAN. Mondrian OLAP Server. Disponível em: http://mondrian.pentaho.org. Acesso em: 13 outubro 2006.

OPENI. Open Source Web Application for OLAP Reporting. Disponível em: http://openi.sourceforge.net. Acesso em: 13 novembro 2006.

PENTAHO. Pentaho Open Source Business Intelligence. Disponível em: http://www.pentaho.com. Acesso em: 04 outubro 2006.

REAL TIME OLAP. Disponível em: http://en.wikipedia.org/wiki/Rtolap. Acesso em 27 de Maio de 2007.

ROSA, Katia Liane da. Análise de ferramentas OLAP com acesso a banco de dados. Novo Hamburgo: 2005. 87 p. Projeto de Diplomação (Bacharelado em Ciência da Computação) – Instituto de Ciências Exatas e Tecnológicas, Centro Universitário Feevale, Novo Hamburgo.

91

SPAGOBI. The Business Intelligence Free Platform. Disponível em: http://spagobi.objectweb.org. Acesso em: 14 dezembro 2006.

XMLA.ORG. XML for Analysis Specification. Disponível em: . Acesso em: 02 março. 2007.

92

ANEXO I - ARTIGO

PEQUISA E SELEÇÃO DE FERRAMENTAS LIVRES E BASEADAS EM PADRÕES DE SISTEMAS ABERTOS PARA A ELABORAÇÃO DE INTERFACES OLAP SOBRE A WEB Giovani Caruso MacDonald, João Rafel Rubik, Renato Fileto {caruso, jrubik, fileto}@inf.ufsc.br Departamento de Informática e Estatística, Universidade Federal de Santa Catarina Campus Trindade, Caixa Postal 476, CEP 88.040-900, Florianópolis-SC, BRAZIL RESUMO A utilização de OLAP (On-Line Analytical Processing) tem estado restrita a grandes organizações, devido ao alto custo do desenvolvimento das aplicações e das ferramentas de software necessárias. Todavia, o recente aparecimento de ferramentas livres e de fácil utilização para a construção de interfaces OLAP tem viabilizado a adoção de soluções baseadas em OLAP para apoio à tomada de decisão em pequenos e médios empreendimentos. Este trabalho apresenta uma análise de ferramentas livres e baseadas em padrões de sistemas abertos disponíveis atualmente para facilitar a construção de interfaces OLAP sobre a Web. Essas ferramentas são avaliadas segundo os seguintes critérios: linguagem de programação utilizada no desenvolvimento, sistema operacional suportado, SGBDs suportados, licença adotada, padrões de interoperabilidade, e compatibilidade entre ferramentas de diferentes funcionalidades. As ferramentas analisadas são o servidor OLAP Mondrian, os clientes Jpivot e OpenI, e as suítes de ferramentas Pentaho, SpagoBI e BEE Project. O objetivo é que este trabalho sirva de apoio para a seleção das ferramentas mais adequadas para atender diferentes tipos de demandas. ABSTRACT The use of OLAP (On-Line Analytical Processing) has been restricted to large companies and organizations due to the high costs of development and tools. However, recently a number of open source and user friendly interface building tools had been made available, making possible the adoption of OLAP bases solutions by medium and small companies. This paper presents an analisys of various open source, free tools that help building OLAP interfaces over the web. This tools are analised by the following criterias: programming language used in development, oprational systems suported, DBMS supported, license adopted, communication patterns and their funcionalities. The tools analised are the Mondrian OLAP server, JPivot and OpenI clients, and the suites of tools Pentaho, SpagoBI and BEE Project. The goal is for this paper to help developers to choose the best possible tools for their specific enviroment.

1- INTRODUÇÃO

93

As ferramentas de BI (Business Inteligence) são bastante difundidas entre empresas de grande porte, porém têm aplicação limitada entre as empresas de pequeno e médio porte, devido ao alto custo dessas ferramentas e do desenvolvimento de aplicações sobre as mesmas. Com o surgimento de ferramentas de código aberto, que podem ser obtidas gratuitamente, as pequenas e médias empresas passam se beneficiar da utilização dessa tecnologia. O objetivo deste trabalho é analisar algumas ferramentas disponíveis gratuitamente, licenciadas como código aberto, a partir de critérios definidos no próprio trabalho. Os principais critérios considerados são a linguagem de programação utilizada no desenvolvimento, sistema operacional suportado, SGBDs suportados, licença adotada, padrões de interoperabilidade e compatibilidade entre ferramentas de diferentes funcionalidades. O intuito é que este trabalho se torne um guia que auxiliar os usuários na escolha das ferramentas que mais se adaptam ao seu ambiente de desenvolvimento, assim como às necessidades do seu negócio. 2 - CONCEITOS FUNDAMENTAIS Data Warehouse Um data warehouse (DW) é um banco de dados que integra informações de diversas fontes e é projetado especificamente para suporte à decisão. Esses bancos de dados dão subsídio de informações aos gerentes e diretores de empresas, entre outros membros dos níveis tático e estratégico, para analisarem tendências históricas dos seus clientes e com isso definirem iniciativas e processos que viabilizem seus negócios, aumentando a lucratividade, a satisfação e fidelidade dos clientes, entre outros benefícios. Segundo Inmon (INMON, 2006), um Data Warehouse (DW) é uma coleção de dados orientados por assuntos, integrados, variáveis com o tempo e não voláteis, para dar suporte ao processo de tomada de decisão. Kimball (Kimball, 2006) define um conjunto de ferramentas e técnicas de projeto, que quando aplicadas às necessidades específicas dos usuários permitirá que planejem e construam um DW. OLAP OLAP (On-Line Analytical Processing) é uma categoria de processamento para a exploração de informação em grandes volumes de dados organizados em data warehouses segundo o modelo multidimensional. Uma interface OLAP permite a visualização da informação em diferentes focos e níveis de detalhamento, funcionando como um relatório dinâmico. É comum associarmos a tecnologia OLAP à manipulação multidimensional dos dados. As mais freqüentes funções oferecidas pelas ferramentas OLAP são descritas a seguir. Drill-Down: É usado para solicitar uma visão mais detalhada de um conjunto de dados. Pode-se dizer que o usuário "mergulha" nos dados. Roll-Up: Consiste na operação inversa ao drill-down, ou seja, apresenta os dados cada vez mais agrupados ou sumarizados Se o usuário desejar informações mais agrupadas, realiza-se então um roll-up para que os dados sejam mais sumarizados. Pivoting: serve para adicionar ou rearranjar as dimensões das tabelas.

94

Slide and Dice: é a função que faz fixar uma informação de dimensão ou reduzir as dimensões de apresentação dos dados. Formas de implementação de OLAP

ROLAP – Abreviação de “Relational On-Line Analytical Processing”, trabalha diretamente com bancos de dados relacionais. Os dados e as tabelas de dimensões são armazenadas como tabelas relacionais e novas tabelas são criadas para receber a informação agregada.

MOLAP – “Multidimensional On-Line Analytical Processing”, é a forma clássica do OLAP e algumas vezes é referida como simplesmente OLAP. A forma como cada dimensão vai ser agregada é definida a priori por uma ou mais hierarquias. Nesse caso o acesso aos dados ocorre diretamente no banco dimensional, ou seja, o usuário trabalha, monta e manipula os dados do cubo diretamente no servidor OLAP.

HOLAP – “Hibrid On-Line Analytical Processing”, forma hibrida que combina características das duas formas anteriores (ROLAP e MOLAP),_um banco de dados divide os dados entre armazenamento relacional e espacial. Padrões para conexão com ferramentas OLAP XMLA XMLA (eXtensible Markup Language for Analysis) é um padrão de API para OLAP e BI. O que diferencia o XMLA de tentativas anteriores de criação de um padrão é o apoio que ela tem de empresas como Hyperion, Microsoft, SAP e SAS. Como o IBM DB OLAP é baseado no Essbase da Hyperion - que suporta o XMLA - a única grande empresa que não está participando deste esforço é a Oracle. XMLA é um padrão que permite que aplicações cliente se comuniquem com bases de dados multidimensionais ou OLAP. A transmissão das mensagens é feita utilizando padrões da Internet, como HTTP e SOAP. A linguagem de pesquisa é a MDX, que é a linguagem mais utilizada atualmente, sendo utilizada por aplicações como o Analisis Services da Microsoft, o Essbase da Hyperion e o Business Warehouse da SAP. A especificação XMLA define dois métodos de acesso aos serviços, definidos abaixo: Discover: É usado para obter informações e metadados de um Web service. Essa informação pode ser a lista de fontes de dados disponíveis ou dados sobre uma fonte específica. Execute: É usado para executar uma consulta MDX ou outro comando específico do servidor XMLA. MDX A linguagem MDX (multi-dimensional expressions – expressões multidimensionais), de consulta a cubos de dados multidimensionais, foi introduzida pela Microsoft com o Microsoft SQL Server OLAP Services por volta de 1998, como o componente de linguagem do OLE DB para API OLAP. Mais recentemente, o MDX apareceu como parte do XML for Analysis API (XMLA). A Microsoft propôs que o MDX se tornasse um padrão, e sua adoção entre desenvolvedores de aplicação e provedores de ferramentas OLAP tem sido crescente.

95

3 - CATEGORIZAÇÃO DE FERRAMENTAS E TECNOLOGIAS OLAP Neste trabalho, classificamos as ferramentas de BI de acordo com o tipo de funcionalidade que oferecem, nas quatro categorias descritas nas seções subseqüentes. Ferramentas de ETC Extração, Transformação e Carga (ETC)2 é o processo de extrair das fontes de dados (muitas vezes bancos de dados de sistemas legados), transformá-los para serem acomodados em uma representação padronizada e inseri-los em outro banco de dados integrado, especificamente desenvolvido para o apoio à tomada de decisão, o Data Warehouse (DW). A transformação pode ser uma limpeza dos dados, alteração de acordo com regras de negócios, tradução etc. Um sistema de ETC é um software que oferece recursos para implementar um processo ETC. Ele precisa ser capaz de se comunicar com as bases de dados e ler diversos formatos de arquivos utilizados por toda a organização. Essa pode ser uma tarefa não trivial, e muitas fontes de dados podem ser difíceis de ser acessadas (ETL WIKIPEDIA, 2007). Servidores OLAP Os servidores OLAP armazenam e manipulam dados multidimensionalmente, com tabela de fato e dimensões descritivas, provendo acesso rápido a dados présumarizados, gerados a partir de grandes quantidades de dados detalhados existentes nas fontes de dados. Os servidores OLAP têm como objetivo apresentar as informações multidimensionais para as ferramentas de acesso, análise, geradores de relatórios, planilhas e ferramentas de mineração de dados. Basicamente, o servidor OLAP interpreta as consultas dos usuários, convertendo-as em instruções adequadas, muitas vezes complexas, para o acesso ao data warehouse Clientes OLAP Recebem as requisições, executando as operações OLAP de forma amigável. O cliente OLAP também é responsável pela apresentação dos dados de forma amigável e de fácil interpretação, através de tabelas, gráficos de tipos variados e até mesmo mapas apresentando a distribuição geográfica das medidas. Os clientes, associados a componentes de geração de relatórios como o JasperReports e o BIRT, podem gerar diferentes tipos de relatórios, que podem ser exportados para vários formatos de arquivo. Suíte de Ferramentas As suítes de ferramentas são distribuições que agrupam diferentes ferramentas, com configurações pré-definidas que facilitam a instalação, configuração e utilização. As suítes utilizam ferramentas já consolidadas e em estado de desenvolvimento avançado, o que garante maior confiabilidade e também garante a compatibilidade das diversas ferramentas. A utilização de suítes significa uma grande economia de tempo com a escolha de ferramentas individuais e a configuração de cada uma individualmente.

2

Em inglês ETL de Extraction, Transformation and Loading.

96

4 - DESCRIÇÃO DAS FERRAMENTAS OLAP Mondrian O Mondrian é uma máquina para suportar consultas OLAP escrita em Java. Ele executa consultas a ele submetidas na linguagem MDX, lendo dados de um sistema de gerenciamento de banco relacional e apresentando o resultado no formato multidimensional definido pelo padrão XMLA. Este formato de saída é processado por seus clientes OLAP, clientes que são responsáveis pela interface OLAP com os usuários, na forma de páginas Web. O Mondrian utiliza JDBC para conexões com o SGBD (Sistema de Gerenciamento de Banco de Dados) utilizado para manter os dados do DW. O Mondrian precisa ser disponibilizado em um servidor de aplicações J2EE. Arquitetura do Mondrian A arquitetura do Mondrian consiste em quatro camadas: a camada de apresentação, camada dimensional, a camada estrela e a camada de armazenamento. A camada de apresentação determina o que o usuário final vê em seu monitor, e como ele pode interagir para fazer novas consultas. Há muitas maneiras de apresentar conjuntos de dados multidimensionais, incluindo Pivot Tables (um recurso que permite a uma tabela fazer um agrupamento dinâmico), gráficos estáticos em diversos formatos (pizza, linha, barra, etc.) e ferramentas avançadas de visualização, tais como mapas interativos e gráficos dinâmicos. Estas ferramentas podem ser escritas em interface Java Swing (Usado para criação de aplicativos gráficos em Java) ou JSP (Java Server Pages). Os gráficos podem ser montados em formatos como JPEG ou GIF. A segunda camada, camada dimensional, analisa gramaticalmente, valida e executa consultas MDX. Um transformador de consultas (query transformer) permite que a aplicação manipule as consultas existentes, ao invés de construir uma nova instrução MDX para cada solicitação. A terceira camada é a camada estrela, que é responsável por apresentar valores relacionados a determinados níveis de informação. Estes valores podem ser resultados de uma consulta ao banco de dados, ou ser o resultado de muitas consultas armazenadas em memória. É responsabilidade desta camada obter os valores, seja qual for a sua origem. A camada do armazenamento é um sistema de gerenciamento de banco de dados relacional. Ela é responsável por fornecer os dados referenciados nas consultas. Todos estes componentes podem existir em uma mesma máquina, ou podem ser distribuídos entre várias máquinas, sendo que as camadas dimensional e estrela, que compreendem o servidor Mondrian, devem estar na mesma máquina. A camada de armazenamento pode estar em uma outra máquina, acessada através de conexão remota, com o uso de drivers JDBC (Conjunto de classes e interfaces para interação com qualquer banco de dados relacional). A Figura 5 ilustra a arquitetura de camadas do Mondrian e sua comunicação com clientes e sistema de gerenciamento de bancos de dados relacionais (Fonte: documentação do MONDRIAN). Instalação e configuração do Mondrian O Mondrian está disponível em diferentes formas: Primeiro como um pacote WAR que possui o JPipot, um OLAP application framework e exemplos que podem ser carregados em um banco de dados, qualquer utilizando um utilitário de carga disponibilizado pelo Mondrian

97

Segundo como um pacote WAR que inclue JPipot, um OLAP application framework e uma base de teste pré-configurada, é um demo para os usuários testarem as funcionalidades do Mondrian, nesta versão não é necessário alterar nada para funcionar, bastando apenas coloca-lo em um servidor WEB. Usaremos a primeira versão, que pode ser customizada de acordo com nossa necessidade, pois não utilizaremos a base pré-configurada, mas a base do Vestibular organizado pela COPERVE - UFSC Passos para instalação: Ter na maquina Java SDK (1.4.2 ou superior) Fazer o Download da ultima versão estável do Mondrian, o arquivo vem sempre nomeado no formato “mondian-version.zip” e pode ser achado no SourceForge. A distribuição possui arquivos de configuração, o código fonte e bibliotecas necessárias para compilar o projeto e gerar o arquivo WAR. Finalizando a configuração: Gerar o pacote Mondrian.war com as atualizações e colocar no servidor WEB. Se necessário, adicionar o driver JDBC utilizado e a biblioteca xalan.jar no lib do servidor e reinicia-lo. Para acessar o site digite: http://localhost:8080/mondrian Jpivot É uma biblioteca JSP que permite a interação do usuário através da WEB com servidores de dados OLAP. Permite gerar relatórios e gráficos dinamicamente usando um menu de navegação, sendo capaz de exportá-los em diferentes formatos, como Portable DocumentFormat (PDF) e Microsoft Excel. O Jpivot permite aos usuários explorar a resposta obtida do servidor de dados OLAP em uma interface gráfica. Usuários podem navegar, expandir, reduzir e mover elementos de dados. Arquitetura JPivot O Jpivot pode suportar diversos servidores OLAP, especialmente Mondrian, com conexão no padrão XMLA. O Jpivot não utiliza a API do Mondrian diretamente. Ele define sua própria interface OLAP. Para fazê-lo funcionar com o Mondrian, estas interfaces precisam ser implementadas usando as APIs do Mondrian. O JPivot utililiza o pacote WCF (Web Component Framework) para a construção da Interface com Usuário via XML e XSLT OpenI OpenI é uma aplicação BI Open Source baseada em tecnologia J2EE para analise OLAP, é compatível com servidores OLAP que utilizam o protocolo XML/A, tais como Mondrian e o Microsoft Analysis Services. Tem o propósito de ser uma ferramenta fácil e intuitiva para executar operações OLAP. O OpenI é uma aplicação Web que funciona em qualquer servidor de aplicação J2EE, mas vem com a implementação padrão para o Apache Tomcat Web. É possível construir e publicar relatórios extraídos através de alguns servidores de dados, como servidores de banco de dados relacionais, servidores OLAP e servidores de Data Mining. O OpenI é distribuída como Código Aberto através da OpenI Public License Version 1.0 ("OPL"). A OPL é similar a Licença Pública do Mozilla V1.1, com exceção de um atributo adicional. Arquitetura OpenI

98

Arquitetura do OpenI é composta por alguns componentes O componente de conexão é o responsável em conectar o OpenI ao servidor de dados. Na versão atual a conexão é possível apenas com servidores OLAP que utilizam o protocolo XML/A. As outras versões são a conexão com servidores de banco de dados relacionais através de JDBC, e a conexão com servidores de Data Mining. O componente de Relatório é implementado com linguagens específicas de definição de relatório (RDL - Report Definition Language) para definir e explorar os relatórios criados na plataforma. Para relatórios OLAP ele implementa sua própria RDL baseada em XML. Componente de interface com o usuário utiliza componentes dos projetos Jpivot e JfreeChart (Biblioteca Java para relatórios), unificando-os como um consistente framework Web de navegação, tornando fácil e intuitivo para qualquer usuário técnico ou não técnico O Componente de Segurança utiliza à estrutura de segurança da plataforma J2EE, podendo integrá-la à camada de segurança da base de dados de origem, permitindo desta forma um completo controle de permissão de acesso a informação. Instalação e Configuração do OpenI A segurança do OpenI é baseada na segurança do servidor de aplicação J2EE que for utilizado. Existe três regras de autorização configurado para o OpenI, são elas, regras para administrador da aplicação (app admin), administrador do projeto (project admin) e usuário do projeto (user project). O OpenI utiliza o conceito de projetos para definir uma coleção específica de relatórios OLAP. Cada projeto tem suas configurações visuais, lista de relatórios e hierarquia de segurança. Nos contextos do servidor de aplicação, existe uma pasta chamada openi-projects. Cada diretório define um projeto diferente. Cada projeto tem a seguinte estrutura: project.xml – este arquivo tem propriedades específicas do projeto, a maioria delas são configuráveis pela interface do OpenI no site do projeto. images – pasta contendo arquivos de imagens específicas do projeto. public – pasta que armazena as análises públicas, ou seja, análises que são visíveis para todos os usuários do projeto. Adicionalmente, há uma pasta para cada usuário do projeto que criarem análises privadas. Essas análises são visualizadas apenas pelo usuário que as criou, e elas são mantidas dentro de uma pasta com o nome do usuário. Para acessar a aplicação utiliza-se a URL http://localhost:8080/openi/ e a conta de administrador do projeto (admin). Servidores OLAP suportados 1. Mondrian 2. Microsoft Analysis Services 3. Qualquer servidor que fornece uma interface de conexão XML/A

SpagoBI Estrutura da arquitetura funcional A Aplicação de BI suporta a base analítica da plataforma. Ela gerencia de maneira parecida os ciclos de validação, ativação de parâmetros, a navegação, o controle de versões e o armazenamento, entretanto todo objeto de BI mantém suas

99

características distintas. Disponibiliza uma estratégia padrão para o gerenciamento de parâmetros, a ativação e interação de modalidade, a visibilidade e autorizações das políticas e regras de segurança, organização e navegação através de diferentes documentos. As máquinas de BI são as interfaces para as maquinas que produzem os documentos analíticos. As Bases de dados e integração de ferramentas são relacionadas aos sistemas usados como fonte de dados e a todos os aspectos das muitas ferramentas utilizadas para obter-se uma integração de dados e metadados. A Administração disponibiliza suporte para o gerenciamento das funcionalidades da plataforma como um todo, como o agendamento, controle de acesso e serviços de auditoria, interface para classificação de usuários e assim por diante. Então, excetuando-se as ferramentas de desenvolvimento e a parte analítica, as camadas da arquitetura funcional pode ser representada como: Camada de Apresentação Os principais objetivos da camada de aplicação são fazer com que os serviços de BI possam ser utilizados de diferentes maneiras e disponibilizar para aplicações externas a capacidade de interagir com o SpagoBI. Ele suporta diferentes canais de comunicação e protocolos: - Portlet. Expondo os serviços de BI gerenciados pelo SpagoBI - Web Services (sobre o protocolo SOAP/HTTP) para a utilização dos serviços a partir de portais e aplicações - JMS para a integração de plataformas pela interação de mensagens JMS Camada Analítica A camada analítica é o core da plataforma que coordena todas as atividades analíticas alimentando as ferramentas de suporte. Seus componentes principais são os módulos de Relatórios, OLAP, Data Mining e Scorecard, cada um deles corresponde a uma funcionalidade especifica da mesma configuração da arquitetura, essa camada permite um rápido aprendizado e a utilização modular. Alguns componentes de serviço maximizam a efetividade do funcionamento do core preparando o ambiente nos seus apsectos secundários: gerenciamento de parâmetros, filtros e domínios, estruturas e categorias de classificação de documentos e etc. O controlador é responsável pela coordenação dos componentes do core com os componentes de serviço. Camada de dados e metadados A camada de dados e metadados se localiza no nível do datawarehouse. O projeto do datawarehouse está fora do escopo do SpagoBI porque cada DW é específico ao universo de necessidades do usuário, então o SpagoBI preocupa-se apenas com os metadados, dando uma meta-descrição para os aspectos técnicos, para os significados da informação no escopo do negócio e para o processamento da informação. Esses metadados são implementados a partir de padrões do CWMI. Funcionalidades A realização das operações OLAP como Drill Down e Pivoting na plataforma SpagoBI são realizadas pelo Jpivot, que é adicionado ao portal como um componente, a figura mostra que a maneira de realizar as operações é exatamente igual à

100

execução das mesmas no JPivot, já explicado anteriormente. Estão também disponíveis através do portal diversos tipos de gráficos e relatórios, que podem ser exportados para diversos formatos através do JasperReport ou do BIRT. Ele permite ainda a análise geográfica através de mapas. Instalação O SpagoBI disponibiliza um arquivo executável (SpagoBIInstaller.jar) que contém todas os componentes necessários para o seu funcionamento, sendo necessário para isso apenas a instalação anterior do eXo Portal. Feito isso, para utilizar a base de dados que acompanha o pacote para a demonstração basta fazer o login no portal com usuário e senha ‘staff_gen’. Na análise dessa ferramenta os testes foram feitos com a própria base que acompanha o pacote e não com a base do vestibular, devido à escassez de tempo.

Pentaho A plataforma Pentaho BI tem o objetivo de fornecer soluções para os problemas em Business Intelligence (BI). Para isso contempla as principais áreas de BI através de uma arquitetura orientada a serviços e centrada em processos, que engloba componentes responsáveis por relatórios, análises, mineração de dados, ETC, entre outros. O elemento principal na arquitetura é a característica de ser centrado em processos cujo controle é realizado através de um mecanismo de workflow, ou seja, que faz a automação do processo de negocio, na totalidade ou em partes. Este mecanismo utiliza definições de processos para determinar os processos de BI que serão executados na plataforma. (PENTAHO, 2007) A plataforma Pentaho de BI é distribuída como Código Aberto através da Licença Pública da Pentaho (PPL, do inglês, Pentaho Public License). Uma cópia desta licença está disponível em http://www.pentaho.org/license. A PPL é similar a Licença Pública do Mozilla V1.1, com exceção de um atributo adicional. Recursos Disponíveis da Plataforma. A seguir são descritos os principais recursos disponíveis nos componentes da plataforma Pentaho de BI, que podem ser inseridos em qualquer solução de uma forma customizada. Os relatórios fazem a integração da plataforma com relatórios BIRT, Jasper e JFReeReport. Podem ser gerados em conteúdo HTML ou PDF usando tanto relatórios parametrizados como não-parametrizados. Outros relatórios são elaborados a partir de um processo de análise em tempo real das bases de dados. (PENTAHO, 2007) Existem dois tipos de regras de negócios suportados pela plataforma Pentaho de BI, regras de consulta e regras em Java Script. As primeiras são simplesmente consultas em SQL suportadas pela plataforma Pentaho, retornando linhas de dados que podem ser manipuladas por outros componentes. As regras em Java Script permitem desenvolver funcionalidades adicionais e customizadas à plataforma. (PENTAHO, 2007) Bursting permite separar uma tarefa grande, como a entrega de relatórios para gerentes, em simples processos que podem ser repetidos para cada contexto individual. As regras que determinam os contextos e os seus respectivos processos podem ser customizadas para atender os requisitos específicos de cada situação. (PENTAHO, 2007) As fontes de dados são conjuntos de dados que são retornados de diferentes fontes OLAP e RDBMS de dados. São varias maneiras de acessar esses dados, através de consultas MDX, consultas SQL e consultas XML (XQuery) para dados.

101

Existem vários tipos de gráficos que podem ser construídos pela plataforma sobre os dados. São incluídos gráficos de barras, de linhas, de “pizza”, de torta e dashboards. (PENTAHO, 2007) Os pivôs podem ser integrados na plataforma Pentaho usando JPivot. Pivôs permitem aos usuários explorar um conjunto de dados de uma forma multidimensional. Usuários podem navegar, expandir, reduzir e mover elementos de dados. (PENTAHO, 2007) Dados podem ser apresentados graficamente através do SGV, mas para isso é necessário que o navegador tenha um plugim para visualizar os mapas. É possível também executar uma seqüência de ações como um serviço web, uma regra de consulta é executada e o resultado retorna como uma mensagem SOAP. Estrutura da Arquitetura. A arquitetura é a combinação de códigos fontes originais e componentes maduros, que integrados formam uma plataforma de BI. Muitos destes componentes são projetos consolidados em código aberto, porém podem ser facilmente substituídos por outros produtos. As soluções são conjuntos de ferramentas e não uma solução integrada. (PENTAHO, 2007) A plataforma Pentaho de BI é composta do Servidor Pentaho, o servidor roda em acordo com o padrão de servidor web J2EE Server, tais como Apache, JBoss, ou qualquer outro que implemente esse padrão. Os repositórios de dados são armazenados em um RDBMS, que é externo a plataforma Pentaho, a API de persistência da plataforma é construída em Hibernate, um framework para persistência dos dados, o qual simplifica a inclusão da maioria de SGDBs. Inclui um mecanismo de OLAP em código aberto, o mondrian, mas qualquer servidor de OLAP que segue o padrão MDX pode ser usado. (PENTAHO, 2007) Instalação O Pentaho Open BI Suite disponibiliza um arquivo executável (pentaho-versaowindows-opensource-installer.exe) que contém todas os componentes necessários para o seu funcionamento, bastando a execução do arquivo para realizar as instalação. A base de dados distribuída como demonstração pode ser acessada sem a necessidade de configuração.

BEE Project O BEE Project é um conjunto de ferramentas para o desenvolvimento de um projeto de BI em empresas de médio porte. A arquitetura é baseada na metodologia ROLAP visando o suporte de projetos que comportem até 50 GB de informação. O projeto é licenciado sob a licença GPL e as versões estáveis estão também disponíveis comercialmente com a inclusão do suporte técnico (em um sistema parecido com o utilizado pela base MySQL) É composto de uma ferramenta ETC, baseada no serviço de 'daemons' simples. Todo o ambiente de desenvolvimento é administrado por uma aplicação centralizada de supervisão. também possui um Servidor Rolap que disponibiliza suas funcionalidades através de uma aplicação SOAP que pode ser utilizada por uma grande quantidade de aplicações cliente. A interface primária de apresentação de relatórios é uma aplicação Web, tendo como requisitos apenas os necessários para a estrutura da rede.

102

Arquitetura do BEE A maior parte do projeto foi escrita na linguagem Perl, com a utilização de DBD/DBI e SOAP, partes menores foram desenvolvidas e C. O repositório do DW pode estar uma base de dados relacional comum, atualmente o MySQL tem se mostrado o mais apropriado para a arquitetura do projeto, levando em consideraçao o volume de dados suportado. Com exceção do armazenamento dos dados, o BEE project realiza as oprações de ETC através do BEE ETL que faz a transação do ETC para o DW, possui também um servidor OLAP, o BEAR e a camada de apresentação é executada pelo BEE Web Analiser. O Bee permite a produção de uma série de analises através de gráficos, que incluem gráficos de pizza, de barras, distribuições geográficas, gráficos tridimensionais e etc: Instalação A instalação do BEE Project é a mais complexa entre as ferramentas analisadas, e exige, entre outros, a compilação do código fonte PERL. Além disso a documentação é muito deficiente o que dificulta e toma muito tempo. Por esses motivos esse trabalho analisou o BEE project apenas através da documentação disponível e a instalação não foi realizada. 5 - CRITÉRIOS PARA COMPARAÇÃO DAS FERRAMENAS OLAP Existem no mercado diversas soluções OLAP. Tal fato gera uma situação muitas vezes contraditória no momento da escolha da ferramenta mais adequada às necessidades de uma organização. Por isso é importante saber quais critérios devem ser levados em consideração pelos profissionais de tecnologia da informação ou qualquer outro usuário no processo de escolha. Os critérios selecionados para comparação das soluções OLAP foram definidos através de vários fatores. A maioria foi definida pelas necessidades apuradas no estudo de caso; outros vieram de trabalhos correlatos e também através da leitura da documentação das ferramentas. A seguir são apresentados os critérios para comparação relacionados de acordo com as categorias das ferramentas. Primeiro são descritos os critérios que se aplicam a todas as ferramentas, seguindo com uma especialização dos critérios para cada categoria. Ao final, uma tabela mostra a relação entre todos os critérios definidos e as categorias de ferramentas. Critérios para todas as categorias de ferramentas Ao analisar as diversas categorias de ferramentas, percebe-se que os aspectos se repetem e assim alguns critérios podem ser aplicados de uma forma geral, como por exemplo, a compatibilidade com diferentes sistemas operacionais, licença e linguagem de desenvolvimento da ferramenta. Abaixo segue uma descrição mais aprofundada de cada critério. Ao decidir entre diferentes produtos, o usuário normalmente vai escolher um produto compatível com o seu sistema operacional e seu hardware, então para todos os produtos é importante analisar para quais plataformas de software a ferramenta está disponível.

103

Este projeto avalia apenas ferramentas de código aberto, porém existem vários tipos de licenças de código aberto. Então também é feita uma análise das permissões e restrições de cada licença. A linguagem de desenvolvimento deve ser analisada em todos os produtos, pois é importante na manutenção e possível adequação ao domínio do negócio via customização. É importante também levar em consideração a interface com os usuários técnicos e não técnicos, tornando possível executar tarefas de análise e configuração de uma forma fácil e intuitiva. Para isso é definido o critério de usabilidade, que foi categorizada em três níveis, muito amigável, amigável ou não amigável. Critérios para ferramentas de ETC A analise de ferramentas ETC está fora do escopo deste trabalho, mas os critérios a seguir podem ser usados para comparamos ferramentas classificadas nesta categoria. Primeiro devemos considerar quais bases de dados a ferramenta suporta. Aqui deve ser analisado se a ferramenta é para carregar dados em um sistema MOLAP, ROLAP, HOLAP, etc., ou seja, em cubos multidimensionais ou tabelas relacionais. Em muitas aplicações práticas, pode ser possível extrair dados de fontes diferentes e combina-las de maneiras diferentes. Também deve ser analisado que tipos de fontes podem ser extraídos e se a ferramenta suporta a carga automatizada de dados. Além disso, é importante saber como o processo de ETC é especificado pelo usuário, se existe uma interface gráfica ou uma linguagem para a especificação. Outra característica importante é a capacidade da ferramenta efetuar a limpeza dos dados. Critérios para Servidores OLAP Os servidores de dados OLAP são responsáveis por manipular os dados multidimensionais, que podem ser armazenados em um banco de dados dimensional ou como tabelas de fatos e dimensões (esquema estrela ou floco de neve) em um SGBD relacional. Sendo assim é importante avaliar esses aspectos. Ao decidir entre os vários servidores de dados OLAP, o usuário normalmente vai escolher um produto compatível com o seu SGBD. Então para todos os produtos é importante analisar para quais SGBDs a ferramenta está disponível. O método de armazenamento deve ser analisado, pois cada método possui uma função específica e deve ser utilizado quando melhor atender às necessidades de análise. Para isso é importante saber se a ferramenta é ROLAP, MOLAP, HOLAP, etc. A linguagem de consulta que o servidor suporta e o protocolo de acesso disponível para os clientes deve ser avaliado, isso porque um produto que utiliza padrões conhecidos é mais versátil em termos de composição que um que não utiliza. Critérios para Clientes OLAP Os clientes permitem aos usuários explorar a resposta obtida do servidor de dados OLAP de uma forma multidimensional, podendo navegar, expandir, reduzir e mover elementos de dados e exportar as respostas para vários formatos. A seguir são definidos os critérios associados com esses aspectos. Ao decidir entre os vários clientes OLAP, é importante saber com quais servidores eles podem ser usados e como podem fazer as consultas. Então para todos os produtos é importante analisar quais são as formas de conexão com os servidores de dados e a linguagem de consulta utilizada. Isso porque um produto que utiliza padrões conhecidos permite acoplamento com mais servidores que um que não utiliza.

104

Também é levado em consideração o fato de um cliente poder administrar as análises, oferecendo um ambiente onde é possível criar, alterar e publicar os relatórios gerados e controlar o acesso a esses documentos através de regras de autorização. Outras características especificas são tratadas somente na descrição das ferramentas, como por exemplo, operações OLAP permitidas, tipos disponíveis para exportação de relatórios, tipos e qualidade de gráficos, geração de mapas, etc. Critérios para Suítes de Ferramentas de BI Uma suíte de ferramentas é um conjunto de componentes maduros que integrados formam uma plataforma de BI. Por essa característica é necessário avaliar critérios como, quais componentes estão integrados, gerenciamento das análises e acesso aos dados no modelo relacional. Suítes possuem servidores de dados integrados à plataforma, e costumam trabalhar juntamente com um SGBD. Sendo assim, como nos servidores OLAP, é importante avaliar os SGBDs suportados. Como nos clientes, é necessário avaliar o fato de um cliente poder administrar as análises, tendo um ambiente onde é possível criar, alterar e publicar os relatórios gerados e controlar o acesso a esses documentos através de regras de autorização ou portais. Saber quais servidores de dados e clientes web estão integrados na plataforma é importante, pois é possível analisar tais componentes segundo os critérios estabelecidos nas suas categorias específicas. 6 - ANÁLISE DAS FERRAMENTAS SEGUNDO OS CRITÉRIOS ESTABELECIDOS Esta seção tem por objetivo comparar as características das ferramentas analisadas, segundo os critérios apresentados na Seção 5. Os objetivos dessa seção são validar os critérios de comparação, demonstrando a sua utilização em um conjunto de ferramentas OLAP e mostrar as vantagens e desvantagens de cada uma, para ajudar na escolha da melhor solução OLAP em diferentes situações.

Mondrian O Mondrian foi o único servidor de dados OLAP analisado dentre todas as ferramentas. Não foi encontrada nenhuma outro servidor OLAP de código aberto absolutamente maduro para ser analisado. O Mondrian é um software desenvolvido na linguagem Java, e pode ser instalado em qualquer sistema operacional que possui a maquina virtual Java (JVM). Pode ainda ser acoplado a diversos SGBDs relacionais, devido a fato dos principais fornecedores possuírem uma implementação para o driver JDBC. A característica de realizar consultas OLAP em dados armazenados em um banco de dados relacional e retornar consultas em forma multidimensional classifica-o como um software ROLAP. A definição do esquema XML e dataSource.xml responsáveis respectivamente pela construção do modelo multidimensional e configuração do Mondrian para ser acessado através de XMLA, não possuem uma interface de programação amigável para o desenvolvedor, dificultando sua escrita e entendimento à medida que os arquivos vão crescendo. Esta dificuldade pode ser revertida em parte utilizando um plugin para a ferramenta de desenvolvimento Eclipse, onde é possível programar o esquema XML de uma forma visual e clara. O Mondrian executa consultas MDX, lendo os dados de um banco de dados relacional, e pode ser acessado por qualquer cliente que utiliza XMLA. Internamente, o

105

Mondrian converte uma consulta MDX em consultas SQL submetidas ao SGBD relacional e compõe as respostas retornadas pelo SGBD em uma visão de cubo de acordo com o padrão XMLA, para ser retornada a cliente OLAP. JPivot O Jpivot foi a única biblioteca de código aberto encontrada para o propósito de renderizar o retorno obtido do servidor de dados OLAP em uma pagina Web no formato dimensional. O fato de buscar os dados no servidor para apresentar ao usuária da aplicação OLAP sobre a Web classifica o Jpivot na categoria de cliente OLAP. O Jpivot é um software desenvolvido na linguagem Java, e assim pode ser instalado em qualquer sistema operacional que possui a maquina virtual Java (JVM). Ele utiliza componentes do framework (WCF) para a criação de gráficos, tabelas, opções de navegação e impressão dos relatórios em vários formatos. Graças a esses componentes, o usuário final pode navegar de uma forma fácil e intuitiva pelo modelo dimensional. Porém, o Jpivot não oferece nenhuma interface de programação para o desenvolvedor configurar o acesso ao servidor de dados ou escrever consultas. O Jpivot envia para o servidor de dados OLAP consultas linguagem MDX confeccionadas de acordo com a interações do usuário com a interface OLAP no cliente Web. . Pode acessar diretamente a base de dados relacional usando a implementação da interface específfica do Mondrian, ou fazer a conexão ao servidor OLAP através do padrão XMLA. Atualmente o JPivot vem integrado a várias ferramentas de código aberto para OLAP, como o próprio servidor OLAP Mondrian, o clientes OLAP OpenI e as suítes Pentaho e SpagoBI. Além disso, pode ser integrado a qualquer projeto Web Java, bastando para isso adicionar as tags pertinentes ao Jpivot na pagina JSP do projeto. OpenI OpenI é uma aplicação WEB desenvolvida com tecnologia J2EE e pode ser instalada em qualquer sistema operacional com a maquina virtual Java (JVM). Ele faz a gestão dos projetos cadastrados em seu ambiente, gerenciando usuários, arquivos, conexão com servidores de dados OLAP, seleção de cubos, criação e publicação de relatórios. A característica de ser uma aplicação que busca informações no servidor de dados OLAP o classifica como um cliente OLAP. O OpenI possui uma interface amigável para usuários técnicos e não técnicos, tornando simples executar tarefas básicas de análise sobre um modelo dimensional, como por exemplo, configurar um acesso ao servidor de dados OLAP usando protocolo XMLA, escrever consultas na linguagem MDX ou criar análises sobre um cubo e publicar os resultados na Web. O OpenI conta com componentes dos projetos Jpivot e JfreeChart para renderizar o retorno obtido do servidor de dados OLAP, unificando-os como um consistente framework Web de navegação. Além disso, utiliza recursos de segurança do servidor Web, como por exemplo, o controle de acesso aos projetos usando definições de papéis (roles). O OpenI utiliza o protocolo XMLA para acessar o servidor de dados OLAP, ou seja, pode ser cliente de qualquer servidor que implementa esse protocolo. As consultas são escritas na linguagem MDX, que é a linguagem usada pelos principais servidores OLAP. SpagoBI O SpagoBI é uma suíte de ferramentas livres desenvolvidas em Java. A apresentação é feita através da plataforma de portal eXo Portal, via browser, o que

106

torna a parte cliente independente de sistema operacional. O lado do servidor é suportado por qualquer sistema operacional através de um servidor de aplicação web. A suíte traz consigo o servidor Apache Tomcat para a hospedagem do portal que dá suporte à execução das outras ferramentas. O servidor OLAP utilizado é o Mondrian, e para a renderização e apresentação das informações é feita pelo Jpivot – ambos já foram analisados nos itens anteriores. Outras ferramentas disponibilizadas pela suíte incluem a ferramenta de busca Lucene, o JasperReport para a geração de relatórios, o JackRabbit como repositório de conteúdo, a ferramenta de ETC OCTOPUS, a ferramenta de administração Quartz e a ferramenta de mineração de dados Weka. Todas são desenvolvidas em Java e possuem código aberto. Pentaho O Pentaho é uma suite de ferramentas desenvolvidas em Java. Na camada de apresentação ele utiliza o Jpivot associado a ferramentas de geração de gráficos e relatórios como o JasperReports e BIRT. A comunicação utiliza os padrões XMLA para conexão e MDX para executar as consultas. Utiliza o Mondrian como servidor OLAP, suportando portanto todos os SGBDs por ele suportados. Sendo todas estas ferramentas desenvolvidas em Java, o suporte aos sistemas operacionais é feito através das maquinas virtuais, portanto a plataforma é suportada por todos sistemas operacionais que possuem JVM. O elemento principal na arquitetura é a característica de ser centrado em processos cujo controle é realizado através de um mecanismo de workflow. O Pentaho possui uma licença própria, a PPL (Pentaho Public License). A PPL é similar a Licença Pública do Mozilla V1.1, com exceção de um atributo adicional. BEE Project O BEE é a única das ferramentas encontradas que não teve o desenvolvimento feito em Java – foi feito em Perl e C. Com isso é um suíte que tem todas as ferramentas desenvolvidas especialmente para ele e não aproveita bibliotecas de nenhuma outra ferramenta estudada. Também resultado da linguagem diferente é a limitação quanto aos bancos de dados suportados pelo servidor OLAP, que não tendo a liberdade da utilização de JDBCs ficam restrito apenas aos SGBDs previstos na implementação. Apesar de ter sido inicialmente desenvolvido para UNIX, uma versão para Windows também é distribuída. A instalação do BEE Project é a mais complexa entre as ferramentas estudadas, pois exige a compilação do código fonte, ação que exige a instalação de um ambiente específico de desenvolvimento. Tabela comparativa das ferramentas A tabela 6.2 sintetiza os critérios apurados para cada ferramenta. A primeira linha lista as ferramentas selecionadas para Analise e as demais fazem o relacionamento de cada critério com essas ferramentas, começando pela classificação dessas ferramentas. Na primeiras linhas estão os critérios aplicados a todas as categorias. Eles são seguidos pelos critérios específicos, que são utilizados para avaliar uma categoria ou mais de uma, de acordo com a abrangência das características analisadas. Caso o critério não possa ser aplicado para avaliar uma ferramenta, é colocada uma mensagem identificando esse fato, para isso usamos a mensagem “Não se aplica” na célula correspondente.

107

Ferramenta

Mondrian

OpenI

Jpivot

Pentaho

Bee Project

Spago BI

Categoria

Servidor

Cliente

Cliente

Suíte

Suíte

Suíte

POSIX Sistema Operacional

(Linux/BSD/U Varias (JVM) Varias (JVM) Varias (JVM) Varias (JVM)

NIX similares),

Varias (JVM)

Linux Linguagem de desenvolvimento

Java

Java

CPL (Common Licença

Public License

Java

CPL OPL (OpenI

(Common

PPL (Pentaho

Public LIcense)

Public

Public License)

C, Perl

GPL (General Public License)

License)

v 1.0) Usabilidade

Java

Pouco

Muito

Amigável

Amigável

Amigável

Muito

Pouco

Amigável

Amigável

Java GPL (General Public License) Amigável

Perl DBI/DBD, SGBD suportado JDBC (todos) Não se Aplica Não se Aplica JDBC (todos)

MySQL,

JDBC

Oracle,

(todos)

PostgreSQL (pgsql) Método de Armazenamento

Rolap

Não se Aplica Não se Aplica Não se Aplica Não se Aplica

Formas de Conexão Disponíveis Linguagem de Consulta Formas de

XMLA, JDBC Não se Aplica Não se Aplica Não se Aplica Não se Aplica

MDX

MDX

MDX

Não se Aplica Não se Aplica

Conexão com

Não se Aplica XML/A, JDBC XML/A, JDBC Não se Aplica Não se Aplica

Servidor Gerencia Analises Componente

Não se Aplica

Web Componente Servidor

Sim

Não

Sim

Não se aplica Não se Aplica Não se Aplica

JPivot

Não se aplica Não se aplica Não se aplica

Mondrian

Sim BeeWeb Analyzer BEAR

Não se Aplica Não se Aplica Não se Aplica Não se Aplica Sim JPivot Mondrian

Tabela 6.2 Comparação de ferramentas OLAP de domínio público

7 - TRABALHOS CORRELATOS O artigo de Christian Thomsen e Torben Bach Pedersen (CHRISTIAN THOMSEN, 2005) tem uma proposta muito semelhante à deste trabalho, mas sendo um artigo e tendo por isso um espaço reduzido para a analise das ferramentas, ele faz

108

uma analise mais superficial das mesmas, não chegando a analisar suas arquiteturas. Além disso, o artigo analisa ferramentas que estavam ainda em estágio inicial de desenvolvimento, muitas vezes com implementações incompletas e não funcionais. Atualmente, as ferramentas encontram-se em um estagio mais avançado de desenvolvimento, com versões estáveis disponíveis e inclusive tendo pacotes de instalação que facilitam a sua instalação. O artigo analisa ferramentas de ETC como o CloverETL e o Octopus. Esse tipo de ferramenta não foi analisado neste trabalho, a não ser quando essas ferramentas fazem parte dos suítes, como por exemplo a plataforma SpagoBI que utiliza o Octopus como ferramenta ETC. Entre os servidores, o artigo analisou o Mondrian, que também foi analisado aqui, e o Lemur, que à época ainda não possuía implementação disponível, e que agora possui uma versão em formato de biblioteca, sendo assim não pode ser considerado uma ferramenta e portanto não foi analisado. Entre os clientes este trabalho adiciona o Open à lista de ferramentas já composta por Jpivot e Bee Project. Para este trabalho, as ferramentas tiveram a sua arquitetura analisada com um grau maior de detalhamento, e sua instalação foi superficialmente descrita para melhor ambientar as necessidades e requisitos para a utilização das mesmas. O projeto de diplomação (FELBER 2006) apresenta uma proposta para análise das informações do departamento comercial de uma empresa do setor de calçados, através da elaboração e construção de um Data Mart e uso de ferramentas OLAP para análise dos dados. O trabalho aborda conceitos sobre as tecnologias adotadas em softwares de distribuição gratuita, entre eles, o Mondrian, JPivot, OpenI e Pentaho. Ele mostra como essas ferramentas podem auxiliar no processo de tomada de decisão. O trabalho apresenta os conceitos principais referentes a sistemas de apoio a decisão, como características de DW e Data Mart, metadados, extração, transformação e carga de dados, modelagem dimensional, arquitetura e operações OLAP e uma visão técnica mostrando funcionalidades, padrões e características da arquitetura de cada ferramenta. São analisadas algumas soluções baseadas na documentação fornecida pelas ferramentas, dentre elas, um servidor de dados OLAP, dois clientes OLAP e uma plataforma de BI, sendo que todas são Open Source. Nosso trabalho abrange todas as soluções apresentadas e também faz uso da documentação disponível com cada ferramenta, devido à falta de material didático disponível, por serem soluções ainda pouco conhecidas. O projeto de diplomação (Rosa 2005) apresenta soluções que utilizam a tecnologia OLAP, com o objetivo de testa-las em bancos de dados de empresas, fazendo uma extração dos dados para ajudar em tomada de decisões, que muitas vezes, pelo custo e complexidade de ferramentas disponíveis no mercado, não atraem as empresas para a implantação destas. O trabalho apresenta os principais conceitos sobre DW, desde modelos de banco de dados, arquitetura OLAP e sistemas de apoio a decisão, seguindo com um estudo de caso, que mostra as principais etapas da elaboração e construção de um DW, juntamente com a aplicação de ferramentas OLAP sobre o modelo dimensional do caso de uso. Por último são exibidas as características do servidor de dados OLAP da Microsoft, o Analysis Services, e do Mondrian com o Jpivot, para realizar uma comparação entre as duas. O trabalho faz a comparação de servidores de dados OLAP. Para isso analisa as funcionalidades de duas soluções existentes no mercado, sendo que uma é software proprietário e outra é Open Source. Nosso trabalha estuda somente uma solução na categoria de servidores de dados OLAP, pois se propõe a estudar apenas aquelas que sejam gratuitas, atualmente existe apenas uma ferramenta madura e reconhecida que atende esse critério.

109

Conclusões e Trabalhos Futuros Fica evidente com a análise apresentada neste trabalho que a linguagem Java é predominante no desenvolvimento de ferramentas de código aberto para OLAP. Também pode-se perceber que a reutilização de bibliotecas e módulos de ferramentas, resultado do paradigma da orientação a objetos, é muito utilizada nesta área. Assim como a reutilização de código, a “reutilização de conceitos”, através da criação de padrões para protocolos de comunicação e apresentação de resultados e relatórios eliminou grande parte do retrabalho, além de permitir uma maior compatibilidade entre as ferramentas. No que se refere a sistemas operacionais, apesar da preferência dos desenvolvedores de aplicações de código aberto por sistemas operacionais também de código aberto, como o Linux, todas as ferramentas analisadas possuem versões para Windows. O suporte a diferentes SGBDs também é bastante difundido principalmente via JDBC, o que é o caso da grande maioria das ferramentas analisadas, com exceção apenas do BEE Project. As ferramentas analisadas já estão em estado avançado de desenvolvimento, algumas com distribuições tão amigáveis que podem facilmente ser instaladas e configuradas sem conhecimento algum de linguagens de programação, como é o caso do SpagoBI. Algumas apresentam algumas dificuldades principalmente na edição dos arquivos de configuração que não são muito instintivos. Avanços nessa área podem encorajar a utilização dessas ferramentas em ambientes de produção. Trabalhos Futuros Algumas ferramentas que não foram analisadas neste trabalho por estar em fase de desenvolvimento inicial poderiam ser adicionadas, como é o caso do Bizgres que ainda está na sua versão 0.9. Assim como uma análise de ferramentas ETC, que ficaram de fora do escopo deste trabalho. Esse grupo inclui ferramentas como o Enhydra Octopus, o JetStream e o Clover ETL. Um outro passo próximo pode ser analisar também as ferramentas de mineração de dados (data mining). Algumas delas inclusive já fazem parte de pacotes analisados, mas como estavam fora do escopo não tiveram critérios de análise definidos e não foram testadas. O mesmo vale para as ferramentas de análise geográfica, campo que está em expansão.

REFERÊNCIAS BIBLIOGRÁFICAS BEE PROJECT. Bee Project. Disponível em: http://bee.insightstrategy.cz/en/index.html. Acesso em: 14 dezembro 2006. CHRISTIAN THOMSEN, Torben Bach Pedersen. A Survey of Open Source Tools for Business Intelligence. Intl. Conf. On Data Warehousing and Knowledge Discovery (DaWaK), 2005. pp. 74-84. CIELO, Ivan. ARQUITETURA OLAP. Disponível em: http://www.datawarehouse.inf.br/artigos/olap2.asp , acesso em 15 de maio de 2007

110

ETL WIKIPEDIA. The free encyclopedia. Disponível em Acesso em: 31 maio de 2007. FELBER, Edmilson J. W. Proposta de uma ferramenta OLAP em um Data Mart comercial: Uma aplicação prática na industria calçadista. Novo Hamburgo, junho de 2006 102p. Projeto de Diplomação (Bacharelado em Ciência da Computação) – Instituto de Ciências Exatas e Tecnológicas, Centro Universitário Feevale, Novo Hamburgo. INMON, W. H. Como construir o Data Warehouse. 2. ed. Rio de Janeiro: Campus,1997. INMOM, W.H. Billinmon.com. Disponível em: http://www.billinmon.com. Acesso em: 15 setembro 2006. JPIVOT. A JSP based OLAP. Disponível em: http://jpivot.sourceforge.net. Acesso em: 13 outubro 2006. JFREECHART. A free Java chart library. Disponível em: http://www.jfree.org/jfreechart>. Acesso em: 28 fevereiro. 2007. KIMBALL, Ralph; ROSS, Margy. The Data Warehouse Toolkit: guia completo para modelagem dimensional. 2. ed. Rio de Janeiro: Campus, 2002. KIMBALL, RALPH.kimball Group. Disponível em: http://www.rkimball.com. Acesso em: 15 setembro 2006. MONDRIAN. Mondrian OLAP Server. Disponível em: http://mondrian.pentaho.org. Acesso em: 13 outubro 2006. OPENI. Open Source Web Application for OLAP Reporting. Disponível em: http://openi.sourceforge.net. Acesso em: 13 novembro 2006. PENTAHO. Pentaho Open Source Business Intelligence. Disponível em: http://www.pentaho.com. Acesso em: 04 outubro 2006. REAL TIME OLAP. Disponível em: http://en.wikipedia.org/wiki/Rtolap. Acesso em 27 de Maio de 2007. ROSA, Katia Liane da. Análise de ferramentas OLAP com acesso a banco de dados. Novo Hamburgo: 2005. 87 p. Projeto de Diplomação (Bacharelado em Ciência da Computação) – Instituto de Ciências Exatas e Tecnológicas, Centro Universitário Feevale, Novo Hamburgo. SPAGOBI. The Business Intelligence Free Platform. Disponível em: http://spagobi.objectweb.org. Acesso em: 14 dezembro 2006. XMLA.ORG. XML for Analysis Specification. Disponível em: . Acesso em: 02 março. 2007.

111