• No results found

5.2 Case study of the HIS for PMTCT

5.2.4 Work practices related

Sendo a origem dos dados bases de dados relacionais e ficheiros de log, foi utilizado o cliente Navicat para aceder às bases de dados. Para estudar os logs, utilizou-se os comandos awk e grep e ainda pequenos programas JAVA para fazer parsing dos logs e inseri-los numa base de dados relacional.

4.1.2 ETL

O ETL tem que permitir efetuar a extração e transformação necessárias dos dados e deve ser um processo que possa correr periodicamente e de forma incremental. O Pentaho Kettle cumpre esses requisitos. Como permite invocar web services, caso existam operações de maior complexidade, estas podem ser remetidas para um desenvolvimento mais clássico implementando serviços e encapsulando-os.

4.1.3 Cubo OLAP

Foi escolhida como Cubo OLAP o Mondrian. O Mondrian é a versão gratuita da

Pentaho. Foi implementada em JAVA e integra com muitas origens de dados através do

JDBC. É possível definir cubos de dados através de um schema em formato XML. Possui nativamente a extensão de SQL Multidimensional Expression (MDX) criado pela Microsoft. Possui ainda o standard XMLA que permite a conectividade com muitas outras ferramentas analíticas e até o Excel. As vantagens são:

• Tecnologia open source: não acarreta custos e permite interagir com outras tecnologias gratuitas.

27

• Baseada na ferramenta comercial MS SSAS: Os utilizadores que usaram esta ferramenta tem facilidade em usar o mondrian e vice-versa.

• Schema Lógico em XML: permite definir vários cubos de dados, abstraindo-se das origens de dados. Permite também criar labels mais inteligíveis dos campos, bem como criar medidas virtuais com outros tipos de agregação e formatação.

• Permite ainda criar cubos virtuais que juntam vários outros cubos permitindo consultar vários Data Marts integrados num só.

• MDX: é um standard que estende o SQL a fim de lidar com queries analíticas de uma forma mais simples e transparente. A mesma query em MDX tem muito melhor desempenho que a equivalente em SQL normal por estar optimizada para fazer agregações.

• XMLA: interoperabilidade com outras ferramentas (por exemplo: Saiku, Pentaho, etc) compatíveis com esta tecnologia. A comunicação é feita com SOAP ao invés de se ligar diretamente à base de dados.

• Suporte a olap4j: Standard OLAP que permite a conectividade com soluções de mercado baseadas em JAVA.

• Desempenho: O acesso aos dados é rápido comparativamente a outros produtos open source existentes.

4.1.4 Ferramentas analíticas

O cubo de dados deverá ser suficientemente flexível para permitir o maior número de ferramentas possíveis, permitindo aos utilizadores finais usarem as suas ferramentas prediletas. A escolha do Mondrian como Cubo OLAP e a modelação dimensional permite usar as seguintes aplicações:

• Excel: Através de Power Pivot ou Pivot Table, selecionando uma fonte de dados compatível com XMLA.

• Jpivot: Servlet que vem com o Mondrian. Apesar de ser uma aplicação web simples é poderosa e fácil de usar.

• Saiku: aplicação web com design elegante que consegue integrar com o

mondiran através de XMLA.

• Relatórios em CakePHP e DomPDF: apesar de haver ferramentas especializadas em reporting, dada a especificidade dos layouts a serem gerados (logotipo da faculdade e estrutura do documento) e a necessidade

28

de criar um processo que os envie automaticamente por email em formato PDF, decidiu-se enveredar por uma solução conhecida e já implementada na UI. O cakePHP é uma framework MVC para PHP e o DomPDF, é uma implementação do Google que transforma HTML em PDF.

4.1.5 Data mining

Optou-se por usar o weka, por ser uma ferramenta com uma boa variedade de algoritmos de classificação e clustering e por ser fácil de criar os ficheiros de input (em formato arff).

O weka é um pacote de software implementado em JAVA que possui vários algoritmos aplicáveis no data mining e machine learning.

4.2 Arquitetura

Existem quatro tipos de arquitetura possíveis [5]:

• Arquitetura a um nível: Numa única máquina é suportada os sistemas operacionais e todas as componentes da DW. Solução mais económica, mas com sérias limitações de desempenho e de recursos.

• Arquitetura a dois níveis: Existe uma máquina dedicada a todos os componentes referentes à DW. Os sistemas operacionais localizam-se noutra (s) máquinas. Esta solução continua a ser económica e tem menos limitações que a solução a um nível porque não interfere com o desempenho dos sistemas operacionais quando por exemplo o processo de ETL está a ser executado.

• Arquitetura a três níveis: Para além dos sistemas operacionais existe uma máquina dedicada ao ETL e processamento de dados distinta da máquina de apresentação dos dados. Esta solução é mais dispendiosa, mas garante uma alta disponibilidade de acesso aos dados da DW.

• Arquitetura a quatro níveis: Semelhante à de nível três, mas com uma camada adicional de middleware que permite que os dados da DW sejam acedidos fora da instituição (via web services por exemplo).

Deliberou-se adotar uma arquitetura a dois níveis com uma máquina dedicada exclusivamente às atividades da DW. Eventualmente com o crescimento e amadurecimento desta implementação, se enverede por uma arquitetura a três níveis ou

29

até mesmo de quatro. Dadas as escolhas tecnológicas e as restrições open source, esta máquina dedicada deverá ter os seguintes requisitos:

• Servidor Linux: Preferencialmente da família Red hat ou Debian.

• Ferramenta “yum” ou “apt-get” instalada no servidor: Para instalar de uma forma simples os outros requisitos.

• Duas Bases de dados de Mysql: uma para a data staging area e outra para a

data presentation area.

• Acesso a todas as origens de dados: O servidor deverá conseguir aceder a todas as origens de dados dos sistemas operacionais, implicando alterações de configurações de Firewall, roles de servidores, etc.

• JRE atualizado:O saiku, Mondrian e Jpivot estão implementados em JAVA e necessitam da versão mais recente.

• Apache e Apache Tomcat: O Mondrian e o JPivot funcionam num servidor aplicacional JAVA.

• JDBC para o MySQL: O Mondrian precisa do driver de MySQL do JAVA para comunicar com as BD’s.

• Pentaho Kettle instalado no servidor: Embora se possa construir remotamente o ETL numa outra máquina, para o Kettle ser executado tem que estar instalado no servidor.

• Mondrian e Jpivot: A distribuição do Mondiran com o JPivot embutido deverá estar instalada no Apache Tomcat.

• Saiku (Opcional): O saiku pode correr localmente na máquina do cliente (criando uma instância de Tomcat), mas casos se pretenda um endereço permanente do lado do servidor este deverá ser instalado.

30