Informática - Universidade de Lisboa

Propaganda
UNIVERSIDADE DE LISBOA
Faculdade de Ciências
Departamento de Informática
DESENVOLVIMENTO DE UMA APLICAÇÃO
PARA MONITORIZAÇÃO DA ACTIVIDADE
FUNCIONAL EM BASES DE DADOS ORACLE
Ricardo Manuel Batalha Vilhena
MESTRADO EM ENGENHARIA INFORMÁTICA
Arquitectura, Sistemas e Redes de Computadores
2010
UNIVERSIDADE DE LISBOA
Faculdade de Ciências
Departamento de Informática
DESENVOLVIMENTO DE UMA APLICAÇÃO
PARA MONITORIZAÇÃO DA ACTIVIDADE
FUNCIONAL EM BASES DE DADOS ORACLE
Ricardo Manuel Batalha Vilhena
ESTÁGIO
Projecto orientado pelo Prof. Dr. Pedro Antunes
e co-orientado por Nuno Miguel de Sousa Maria
MESTRADO EM ENGENHARIA INFORMÁTICA
Arquitectura, Sistemas e Rede de Computadores
2010
Resumo
Este documento descreve o projecto realizado no âmbito da disciplina de Projecto em
Engenharia Informática, do Mestrado em Engenharia Informática da Faculdade de Ciências
da Universidade de Lisboa e desenvolvido na empresa Truewind – Tecnologias de
Informação SA.
A detecção das causas da degradação do desempenho nos sistemas de informação é
complexa. Muitas vezes esta actividade não obtém respostas válidas e relevantes para os
problemas encontrados. Prever o impacto e determinar de forma incisiva que operação do
processo e que instruções foram responsáveis pelo fraco desempenho de uma funcionalidade,
continua a ser uma tarefa muito pouco trivial.
Este projecto endereça este problema e teve como objectivo criar uma ferramenta –
BAM, que permita recolher dados de operações de negócio e relacionar a execução destas
operações com o consumo de recursos de hardware. Pretende-se com esta ferramenta estimar
e prever os recursos de hardware necessários em cenários de projecção da actividade
funcional.
O trabalho desenvolvido permitiu identificar conceitos de negócio na base de dados de
uma instalação do ERP Oracle e recolher indicadores da sua actividade. Para recolher dados,
foram desenvolvidas várias sondas que obtêm os indicadores e os introduzem na base de
dados de repositório da BAM. Estas sondas, além dos indicadores das operações de negócio
realizadas, recolhem também métricas de utilização e consumo de recursos de hardware.
Através da interface Web desenvolvida, a BAM permite a visualização de gráficos e de
tabelas que resumem e relacionam os dados recolhidos.
Num cliente da Truewind onde foi instalada a BAM, foi recolhida uma amostra de
dados significativa. Com base nos indicadores recolhidos, foi possível identificar na base de
dados do ERP Oracle, os diferentes tipos de projectos que este cliente desenvolve e qual o
impacto que cada tipo de projecto tem na utilização e consumo de recursos de hardware. Esta
informação auxilia o gestor da infra-estrutura a planear, em função dos objectivos de negócio,
os recursos necessários para garantir níveis de desempenho satisfatórios.
PALAVRAS-CHAVE: monitorização de sistemas, indicadores de negócio, consumo de
recursos
i
ii
Abstract
This document describes the project implemented for the Project in Computer Sciences
course of the Master’s Degree in Computer Sciences at the Faculty of Sciences of the
University of Lisbon developed in Truewind – Tecnologias de Informação SA.
Today’s business applications need to guarantee high performance levels. However,
through the years, with the change of business processes, it is common to watch overall
systems performance deteriorate. In most cases it is not always clear what triggered the
performance decline. It is difficult to identify correctly the process responsible for such
behavior, since several conditions may contribute. Not knowing in most cases the cause for
poor system performance, it is difficult to foresee the impact of each business operation and
plan hardware resources needed.
This project addresses this problem. The main goal is to develop an analysis tool –
BAM, which can collect execution data from business operations and relate this data with
resource usage metrics also collected.
Major tasks involved the identification of business entities, the development of multiple
probes to collect information about business activity and hardware resource usage and a Web
interface used to analyze retrieved data with dynamic graphics.
BAM was used in a support and maintenance project of Truewind and collected an
interesting sample of usage data. First, one of the main business operations was identified in
the database. Information about its execution and impact on different structures was retrieved.
Second, hardware resource usage metrics were collected in the production environment.
BAM provided an interface with graphical elements which allowed the analysis of these two
sets of data and the impact that business activity did on the hardware resource usage. This
analysis can help IT management to predict future needs according to the company’s business
plans.
KEYWORDS: databases, systems monitoring, business kpi, resource usage
iii
iv
Conteúdo
Conteúdo .................................................................................................................................... v
Lista de Figuras ...................................................................................................................... viii
Lista de Tabelas ........................................................................................................................ xi
Capítulo 1
Introdução ............................................................................................................ 1
1.1
Motivação .................................................................................................................... 1
1.2
Objectivos Gerais ........................................................................................................ 2
1.3
Resumo do trabalho desenvolvido .............................................................................. 3
1.4
Enquadramento institucional ....................................................................................... 4
1.5
Estrutura do relatório ................................................................................................... 5
Capítulo 2
Contextualização do Projecto .............................................................................. 7
2.1
Contexto ...................................................................................................................... 7
2.2
Objectivos Específicos .............................................................................................. 10
2.3
Metodologia Adoptada .............................................................................................. 11
2.4
Plano de Execução .................................................................................................... 13
Capítulo 3
3.1
Tecnologia e Arquitectura.................................................................................. 17
Plataforma de Base .................................................................................................... 17
3.1.1
Base de dados Oracle ......................................................................................... 17
3.1.2
Oracle EBS (E-Business Suite) .......................................................................... 20
3.1.3
SNMP................................................................................................................. 22
3.1.4
CMOS ................................................................................................................ 23
v
3.2
Tecnologias Utilizadas no Desenvolvimento ............................................................ 25
3.2.1
PHP .................................................................................................................... 25
3.2.2
JavaScript ........................................................................................................... 25
3.2.3
SQL .................................................................................................................... 26
3.2.4
XML................................................................................................................... 26
3.2.5
Shell Scripts ....................................................................................................... 27
3.2.6
Fusion Charts ..................................................................................................... 27
3.3
Arquitectura da BAM ................................................................................................ 28
3.3.1
Motor de Recolha de Dados ............................................................................... 29
3.3.2
Motor de Análise................................................................................................ 29
3.3.3
Integração de Sistemas ....................................................................................... 30
3.4
Tecnologia Relacionada ............................................................................................ 31
3.4.1
Oracle Enterprise Manager – OEM ................................................................... 31
3.4.2
Monitor Magic – Database Monitoring ............................................................. 32
3.4.3
Quest Database Management ............................................................................. 33
3.4.4
Primos Database Monitoring ............................................................................. 34
3.4.5
Ignite for Oracle Performance ........................................................................... 35
3.4.6
Oracle Business Activity Monitoring ................................................................ 36
3.4.7
Análise Comparativa .......................................................................................... 37
Capítulo 4
Trabalho Realizado ............................................................................................ 41
4.1
Preparação do Projecto .............................................................................................. 41
4.2
Definição dos Requisitos da BAM ............................................................................ 42
4.3
Desenho da Solução .................................................................................................. 43
4.4
Implementação da BAM ........................................................................................... 45
4.4.1
Instalação do Ambiente...................................................................................... 45
4.4.2
Repositório de dados .......................................................................................... 46
4.4.3
Motores de Análise e Recolha ........................................................................... 48
vi
4.4.4
4.5
Criação da interface gráfica ............................................................................... 55
Testes......................................................................................................................... 62
4.5.1
Testes realizados aos componentes nucleares da BAM ..................................... 62
4.5.2
Testes realizados à interface utilizador .............................................................. 63
4.6
Resultados Obtidos.................................................................................................... 64
Capítulo 5
5.1
Conclusões ......................................................................................................... 71
Trabalho futuro .......................................................................................................... 72
Bibliografia .............................................................................................................................. 75
vii
Lista de Figuras
Figura 1. Metodologia de desenvolvimento em Espiral .......................................................... 11
Figura 2. Mapa de Gantt com o planeamento executado no projecto ...................................... 13
Figura 3. Plano inicial do projecto ........................................................................................... 15
Figura 4. Arquitectura da base de dados Oracle versão 10g [13] ............................................ 18
Figura 5. Arquitectura da Oracle E-Business Suite ................................................................. 21
Figura 6. Mensagem do protocolo SNMP [18] ........................................................................ 23
Figura 7. Arquitectura da Consola de Monitorização com os vários componentes [6] ........... 23
Figura 8. Método de impressão de mensagens de depuração desenvolvido em PHP.............. 25
Figura 9. Método desenvolvido em Javascript para geração de gráficos ................................ 26
Figura 10. Interrogação em SQL para obtenção da média diária de consumo de memória
virtual sobre o modelo de dados da BAM ............................................................................... 26
Figura 11. Conteúdo de um ficheiro XML representativo de um gráfico ............................... 27
Figura 12. Arquitectura do Sistema ......................................................................................... 28
Figura 13. Vista de Administração do OEM [2] ...................................................................... 32
Figura 14. Monitor Magic Database Monitoring [3] ............................................................... 33
Figura 15. Spotlight - Quest Software [5] ................................................................................ 34
Figura 16. Primos Database Monitoring [28] .......................................................................... 35
Figura 17. Ignite for Oracle Performance [29] ........................................................................ 36
Figura 18. Interface gráfica Oracle BAM [24] ........................................................................ 37
Figura 19. Modelo de Dados .................................................................................................... 44
viii
Figura 20. Sonda da BAM para recolha de dados de carga de processador ............................ 49
Figura 21. Fluxo de funcionamento do motor de recolha de dados ......................................... 50
Figura 22. eTRM da Oracle com os meta-dados do modelo de dados do E-Business Suite ... 52
Figura 23. Excerto do resultado da pesquisa pela tabela PA_PROJECTS_ALL no eTRM .... 53
Figura 24. Quadro consumo de recursos.................................................................................. 56
Figura 25. Caixas de selecção para escolha de gráficos .......................................................... 57
Figura 26. Vista Horária .......................................................................................................... 58
Figura 27. Vista Diária ............................................................................................................. 59
Figura 28. Antes da operação de aumento ............................................................................... 60
Figura 29. Depois da operação de aumento ............................................................................. 60
Figura 30. Consumo de processador, memória e espaço ocupado pela base de dados em
função do número de linhas da tabela PA_PROJECTS_ALL ................................................. 67
Figura 31. Consumo de Processador ........................................................................................ 68
Figura 32. Evolução do número de linhas da tabela PA_RESOURCE_ASSIGNMENTS ..... 68
ix
x
Lista de Tabelas
Tabela 1. Comparativo de soluções ............................................................................. 39
Tabela 2. Tabelas da base de dados e respectiva descrição ......................................... 47
Tabela 3. Descrição das colunas existentes em cada tabela da base de dados............. 48
Tabela 4. Descrição das sondas ................................................................................... 50
Tabela 5. Número de registos por tabela ..................................................................... 64
Tabela 6. Número de linhas e espaço ocupado em média por tipo de projecto em três
tabelas .......................................................................................................................... 65
xi
Lista de Tabelas
xii
xii
Capítulo 1
Introdução
Este documento apresenta o projecto de desenvolvimento de uma aplicação para
a monitorização da actividade funcional numa base de dados Oracle, Este projecto foi
realizado no âmbito do Mestrado em Engenharia Informática (MEI), da Faculdade de
Ciências da Universidade de Lisboa, e foi desenvolvido na Truewind – Tecnologias
de Informação S.A.[1].
1.1 Motivação
Actualmente exigem-se níveis de desempenho elevados e constantes aos
sistemas de informação. A responsabilidade pelo desempenho destes sistemas recai,
em grande parte, sobre as bases de dados e as aplicações que as utilizam.
Logo após a entrada em utilização dos sistemas de informação, por vezes com
bases de dados vazias, não são evidentes os problemas de desempenho. Estes surgem
após alguns meses de operação. Nessa altura, interessa dispor das ferramentas
adequadas para analisar o funcionamento e o desempenho das aplicações no sentido
de corrigir situações ineficientes e recuperar os níveis de desempenho exigidos. No
entanto, devido à dificuldade de prever convenientemente o impacto da actividade
funcional que varia em cada organização (numa empresa de retalho será por exemplo
o registo de vendas, já numa empresa industrial será por exemplo o registo e a
produção de produtos) nos recursos de hardware disponíveis, adoptamos muitas vezes
1
Introdução
2
comportamentos reactivos na resolução do problema. Esta atitude, desprovida muitas
vezes, de um plano de acção, é extremamente ineficiente pois implica uma grande
perda de tempo e consequentes perdas financeiras.
A oferta de soluções comerciais ou directamente pelos fabricantes das bases de
dados para a monitorização do desempenho de uma base de dados é vasta. Temos
como exemplo o Oracle Enterprise Manager [2], o MonitorMagic Database
Monitoring[3] da Tools4ever[4] ou várias aplicações da Quest Software[5]. Contudo,
o funcionamento destas aplicações limita-se a avaliar o desempenho das bases de
dados ou dos sistemas, não explorando a relação entre as funcionalidades e conceitos
de negócio de uma aplicação, com os indicadores do desempenho físico da base de
dados. Por outro lado, baseiam-se em rácios tradicionais (rácio de utilização de dados
em memória rápida, métricas de velocidade de leitura de dados, entre outros) que
apenas nos fornecem informações sobre o estado global do sistema.
Prever o impacto e determinar de forma incisiva o processo e as instruções
responsáveis pelo fraco desempenho de uma funcionalidade, continua a ser uma tarefa
muito pouco trivial.
Foi com base neste contexto, que decorreu o projecto aqui descrito e através da
sua realização, foi possível criar uma aplicação de monitorização do desempenho
funcional de uma base de dados Oracle.
1.2 Objectivos Gerais
Este projecto teve como objectivos gerais a formação na tecnologia de base de
dados Oracle e o desenvolvimento de uma aplicação para análise e monitorização da
actividade funcional numa base de dados Oracle, doravante designada por BAM, que
permita:

Apresentar através de tabelas e gráficos e resultados obtidos na
inspecção ao funcionamento aplicacional de uma base de dados Oracle;

Identificar e analisar processos e eventos responsáveis pela degradação
de desempenho e obter e relacionar indicadores de negócio com
indicadores gerais dos recursos do sistema;
Introdução

3
Estimar o impacto da utilização de recursos baseados nos indicadores de
negócio;

Validar o funcionamento da BAM nos sistemas de informação cuja
manutenção é assegurada pela Truewind
1.3 Resumo do trabalho desenvolvido
O projecto arrancou com uma fase de aprendizagem na tecnologia Oracle. De
seguida foi-me introduzida a CMOS (Consola de Monitorização Operativa de
Sistemas) [6], uma aplicação interna do universo de ferramentas utilizada pela
Truewind nos projectos de monitorização de recursos. Nesta primeira fase ganhei
competências em bases de dados Oracle e nas técnicas de suporte utilizadas pela
Truewind nos projectos de administração e suporte de sistemas de informação.
Numa segunda fase, iniciou-se o desenvolvimento da BAM com um conjunto de
novas funcionalidades para a CMOS, nomeadamente com a resolução de problemas e
limitações que a CMOS possuía na apresentação dos indicadores, e na forma como os
obtinha, assim, foi alterado o motor interno da CMOS bem como a interface gráfica.
A BAM foi dotada de capacidade de apresentação de indicadores normais de
desempenho e carga, possibilitando ao mesmo tempo recolher e representar novos
indicadores que reflectem actividade em conceitos de negócio.
Depois desta fase de desenvolvimento a BAM foi colocada em funcionamento
num projecto de administração e suporte a bases de dados Oracle de um cliente da
Truewind. Aí foram detectados problemas ao nível da recolha de dados e indicadores
que levaram à execução de diversas correcções e melhoramentos.
Finalmente, depois de estabilizado o funcionamento da BAM, foram recolhidos
dados que permitiram detectar relações de causa-efeito interessantes que foram
apresentadas e que poderão auxiliar no planeamento de recursos em futuros projectos
de migração.
Introdução
4
1.4 Enquadramento institucional
Este projecto iniciou-se em Setembro de 2008 com uma fase de integração na
empresa Truewind – Tecnologias de Informação, S.A., que teve como objectivos dar a
conhecer a estrutura da empresa, as competências de cada unidade orgânica, bem
como os seus métodos de trabalho, as normas internas, a política de qualidade e toda a
documentação a ser produzida e utilizada no desenvolvimento de projectos.
A Truewind é uma empresa de Sistemas de Informação com fortes competências
nas áreas de desenvolvimento de software, formação, administração e suporte de
sistemas de informação, planeamento, gestão, acompanhamento e validação da
qualidade de projectos de informática.
A equipa de Consultores da Truewind é constituída por técnicos qualificados
com grande experiência, capazes de analisar a realidade e escolher as melhores opções
para as necessidades de cada projecto. O negócio da empresa está organizado em
quatro áreas de competência: desenvolvimento e suporte em tecnologia Java,
desenvolvimento em tecnologia Microsoft, suporte a tecnologia Oracle e
desenvolvimento e suporte em tecnologia OutSystems. De acordo com as políticas de
polivalência e relação aberta entre os responsáveis de projecto e os consultores, esta
divisão é informal e muitas vezes cruzada para poder oferecer aos clientes uma
verdadeira oferta global para as suas necessidades. Actualmente colaboram com a
Truewind cerca de 30 consultores nestas diferentes áreas.
O desenvolvimento do projecto ocorreu nas instalações da Truewind e nos seus
clientes, onde estive inserido numa equipa que presta serviços de suporte a múltiplos
ambientes e aplicações em tecnologia Oracle, que incluem: Bases de Dados, o ERP E-Business Suite, descrito mais adiante, bem como outras aplicações periféricas. O
número elevado de aplicações, com várias instâncias, distribuídas por múltiplos
servidores e ambientes, forneceu a contextualização ideal à concretização do projecto.
Introdução
5
1.5 Estrutura do relatório
O documento, após esta parte introdutória está organizado em quatro grandes
capítulos:

Capítulo 2: aprofunda o contexto subjacente ao projecto e apresenta o
planeamento do projecto e a metodologia empregue na sua concretização. É
também comparado o plano inicial de projecto (apresentado no relatório
preliminar) e o plano de execução real obtido, com uma análise aos desvios
ocorridos e às suas causas;

Capítulo 3: introduz as ferramentas e tecnologias utilizadas e apresenta a
arquitectura desenhada para a BAM;

Capítulo 4: descreve o trabalho que foi realizado face aos objectivos a nível
das funcionalidades, bem como os resultados alcançados com a BAM;

Capítulo 5: apresenta as conclusões do trabalho, com um resumo do trabalho
realizado, uma análise crítica e uma apresentação de possíveis trabalhos
futuros.
Introdução
6
Capítulo 2
Contextualização do Projecto
Neste segundo capítulo é feito um aprofundamento do contexto de execução do
projecto e dos objectivos a atingir com a sua execução. É também apresentada a
metodologia utilizada no seu desenvolvimento e realizada uma confrontação entre o
plano inicial do projecto e o plano real.
2.1 Contexto
O projecto iniciou-se com a integração na empresa. Ingressei desde logo na
equipa de administração e suporte a sistemas Oracle a qual é responsável por vários
projectos em diversas áreas de negócio: retalho alimentar, indústria, administração
pública e financeiro.
Nesta primeira fase, ganhei competência em operações de gestão e manutenção
da tecnologia Oracle e nas técnicas de suporte utilizadas pela Truewind nos projectos
de administração e suporte e que incluíram:

Instalação e configuração de software Oracle (base de dados e servidor
aplicacional);

Correcção de erros do software (através da instalação de patches);

Monitorização dos sistemas.
7
Contextualização do Projecto
8
O projecto onde fui inicialmente inserido desenvolveu uma plataforma de
compras electrónicas para a administração pública. Neste projecto e como parte da
minha formação inicial, desempenhei tarefas de manutenção, instalação e
configuração da infra-estrutura aplicacional e das bases de dados Oracle que lhe dão
suporte.
Numa segunda fase participei também num outro projecto na área do retalho
alimentar, com acções de migração e instalação de software para a solução de suporte
ao retalho, baseada no ERP [7] – Oracle E-Business Suite [8]. Nesta fase iniciei os
trabalhos de instalação e configuração da CMOS [6] para o ambiente tecnológico
deste cliente.
Com o início dos trabalhos de desenvolvimento da BAM fui integrado num
outro projecto num cliente da área da indústria aeronáutica. Aqui, a Truewind é
responsável pela gestão das bases de dados que dão suporte ao negócio desta empresa
e pelo sistema de salvaguardas. Trata-se de um ambiente tecnológico com oito bases
de dados que fazem parte de três ambientes distintos:

Ambiente de produção – composto por quatro bases de dados;

Ambiente de desenvolvimento – composto por duas bases de dados;

Ambiente de teste – composto por duas bases de dados
Além das tarefas regulares de manutenção das bases de dados, como são por
exemplo as tarefas de:

Monitorização do funcionamento;

Correcção de erros;

Gestão do espaço disponível;

Controlo de desempenho;

Configuração, gestão e recuperação de salvaguardas;

Reposições ou clonagens de bases de dados entre ambientes;
Realizei ainda múltiplas actualizações do software base da solução, para versões mais
actualizadas.
Contextualização do Projecto
9
Nas actividades em que participei, a definição dos recursos de hardware a
aplicar é normalmente baseada em dados imediatos que são obtidos a partir do estado
actual do sistema, não havendo na maior parte dos casos uma análise ou estudo acerca
da natureza dos dados e sua relação com o negócio da organização. Desta forma
dificilmente são obtidos dados que suportem a estimação ou a previsão da evolução
do desempenho do sistema de uma forma mais precisa e fiável. Um reflexo desta
realidade, é o facto de ser habitual o desconhecimento para a equipa de suporte, da
causa, em termos de negócio, que explica uma variação ou alteração evidente do
padrão de consumo médio dos recursos.
Esta ausência de conhecimento e suporte em dados do negócio para os valores
de dimensionamento dos recursos de infra-estrutura dos sistemas de informação, pode
provocar situações de desequilíbrio, com prejuízos evidentes para a organização. Se
por um lado, um dimensionamento superior ao necessário representa um custo
adicional muitas vezes pago para garantir a ausência de problemas, por outro lado, o
dimensionamento de recursos demasiado curto para a carga imposta pelo sistema,
pode dar origem a situações problemáticas de indisponibilidade ou manutenção
dispendiosa, com elevados custos para a organização.
Justifica-se assim, a criação de uma ferramenta que possibilite relacionar o
consumo de recursos da infra-estrutura física de suporte aos sistemas de informação,
com os conceitos de negócio.
Pretende-se adoptar uma postura preventiva, no sentido de ser possível prever o
estado para o qual o sistema avança ou os recursos por ele consumidos, tendo em vista
a sua optimização e uma antecipação relativamente a alterações que possam interferir
com os níveis de desempenho.
Contextualização do Projecto
10
2.2 Objectivos Específicos
Com base no contexto, requisitos e limitações já referidos, foi concebida a
BAM, uma ferramenta de monitorização da actividade funcional de uma base de
dados Oracle. A BAM tem por objectivo recolher e disponibilizar dados que permitam
relacionar a actividade e o negócio de organização no consumo de recursos e no
desempenho das bases de dados dos sistemas de informação.
Assumimos que, de facto, existe essa relação de causalidade e pretende-se
encontrar relações que permitam evidenciar que, por exemplo, o arranque de um
projecto ou aplicação numa empresa tem um impacto mensurável nos recursos que
são consumidos pelo sistema. A existência desta relação vai permitir estimar o custo,
em termos de recursos, de uma operação de negócio e desta forma prever os requisitos
necessários de uma configuração no arranque e na operação do sistema, de forma a
manter os níveis de desempenho pretendidos.
Assim, os objectivos delineados para o desenvolvimento do projecto foram:

Identificar e analisar processos e eventos responsáveis pela degradação
de desempenho e consumo de recursos de hardware;

Recolher indicadores gerais dos recursos do sistema, utilizando para tal
sempre que possível a CMOS e se necessário estender o seu
funcionamento;

Recolher indicadores de negócio, desenvolvendo estruturas que
permitam detectar e recolher o seu volume, crescimento e variação ao
longo de tempo;

Relacionar estes dois tipos de indicadores, para possibilitar a detecção de
correlações entre indicadores;

Apresentar de forma fácil e rápida os indicadores recolhidos;

Estimar o impacto na utilização de recursos de hardware com variações
nos indicadores de negócio;

Validar o funcionamento da BAM nos sistemas de informação cuja
manutenção é assegurada pela Truewind.
Contextualização do Projecto
11
2.3 Metodologia Adoptada
Para o desenvolvimento da BAM, foi adoptada a metodologia de
desenvolvimento em espiral [9] com várias iterações, incluindo um conjunto de
actividades que são executadas em ciclo até se atingir o objectivo definido.
Esta metodologia foi aplicada no desenvolvimento da BAM para reduzir os
riscos inerentes à realização de um projecto com requisitos e obstáculos incertos,
através da construção incremental do produto em desenvolvimento. Esta metodologia
promove a avaliação do protótipo alcançado, numa fase inicial do ciclo de vida do
projecto podendo assim, se necessário, tomarem-se as atitudes adequadas para alterar
o rumo do projecto, de forma a evitar o seu fracasso.
Cada ciclo desta metodologia é composto por uma fase de Análise, Desenho,
Implementação e Teste. A Figura 1 ilustra as fases da metodologia utilizada.
Figura 1. Metodologia de desenvolvimento em Espiral
Contextualização do Projecto
12
Na fase de especificação de requisitos foi realizada a análise das funcionalidades
a implementar na BAM, de forma a identificar os objectivos de cada ciclo de
desenvolvimento.
Na fase seguinte, e em diferentes iterações, foi efectuado o desenho da aplicação
e do modelo de dados que serve de estrutura de suporte à aplicação e que estendeu o
modelo de dados da CMOS.
Segue-se a fase de codificação onde, em cada iteração, é concretizado o desenho
realizado na fase anterior e todos os planos até então projectados. Esta fase
correspondeu ainda à concretização do modelo de dados e da implementação concreta
das alterações da CMOS para acomodar a BAM, através da criação de novas
estruturas de dados, e Scripts. A interface gráfica da CMOS foi remodelada (foram
adicionados novos elementos, e reestruturados elementos existentes). Foram criados
novos métodos e redesenhado o motor que permite à CMOS obter os dados para os
apresentar. Nesta fase foi também realizada a integração da BAM na CMOS.
O ciclo termina com uma fase de testes e avaliação de todos os componentes da
aplicação desenvolvidos, onde se desenrolaram um conjunto de demonstrações e
testes de usabilidade realizados a utilizadores alvo seleccionados.
De acordo com a metodologia adoptada pela empresa de acolhimento para o
desenvolvimento do projecto, que privilegiava a criação de um protótipo para
posterior refinamento, foram feitas duas iterações completas durante o período de
desenvolvimento do projecto cujo conteúdo e objectivos definidos são descritos na
secção que se segue.
Contextualização do Projecto
13
2.4 Plano de Execução
A execução do projecto decorreu em 4 fases. A Figura 2 apresenta o plano de
execução final do projecto, identificando as tarefas e sua duração.
Figura 2. Mapa de Gantt com o planeamento executado no projecto
De seguida é descrita em detalhe cada uma das fases de execução do projecto
identificadas na figura:
1ª Fase: Integração – Decorreu entre Setembro de 2008 e o final de Dezembro
de 2008 e compreende as actividades realizadas durante a fase inicial
do projecto. Teve início logo após a entrada na Truewind, com uma
tarefa de integração na empresa onde, para além da adaptação à
empresa e aos seus métodos de trabalho, foram definidos os objectivos
a atingir com a realização deste projecto. De seguida foram realizadas
duas tarefas onde foi realizado um estudo das ferramentas e tecnologias
a utilizar na implementação da BAM. Entre estas foi realizado o
relatório preliminar do projecto;
2ª Fase: 1ª Iteração de Desenvolvimento da Aplicação – Decorreu entre
Fevereiro de 2009 e Março de 2009 e compreendeu o desenvolvimento
da BAM com a primeira iteração realizada no desenvolvimento num
cliente. Incluiu as actividades de análise, desenho, implementação,
integração e teste do protótipo desenvolvido; Nesta fase foram criadas
as primeiras estruturas dados de recolha e repositório da BAM e feita a
primeira integração da BAM na CMOS.
Contextualização do Projecto
14
3ª Fase: 2ª Iteração de desenvolvimento da Aplicação – Decorreu desde Junho
de 2009 até ao final de Agosto de 2009 – Esta iteração, já envolvida
noutro projecto da Truewind, também envolveu o desenvolvimento da
BAM. Tal como a anterior, foi também constituída pelas cinco fases
referidas no subcapítulo anterior; Nesta fase foi ajustada a primeira
versão do modelo de dados e componentes da arquitectura do
protótipo. Foram ainda configuradas mais recolhas de dados. Também
foi melhorada a interface gráfica da BAM.
4ª Fase: Conclusão do projecto – Decorreu durante o mês de Setembro de 2009
onde foi elaborado o relatório final do projecto.
Relativamente à duração e ao conteúdo das duas iterações de desenvolvimento
da BAM realizadas, importa aprofundar aspectos que determinaram a configuração
temporal obtida.
A 2ª fase que correspondeu à 1ª iteração do desenvolvimento da BAM, iniciouse com a definição das funcionalidades a serem suportadas pela BAM, feita com base
na análise realizada na 1ª fase do projecto. Seguidamente e entrando nas actividades
de desenho e implementação, foram criadas as estruturas de dados que dão suporte à
BAM e desenvolvido um conjunto de funcionalidades que permitiram a criação de um
protótipo, que forneceu os primeiros resultados. Previamente foi necessário um
período de estudo e análise da arquitectura da CMOS, bem como a realização de
testes, de forma a concretizar as alterações necessárias quer a nível de interface, quer
a nível de funcionamento interno, com o objectivo de integrar a BAM na CMOS. Esta
versão da BAM integrada na CMOS foi instalada num cliente da Truewind do ramo
do retalho alimentar.
A 3ª fase que correspondeu à 2ª iteração do desenvolvimento da BAM surge
após um período de interrupção nos trabalhos e teve o seu início com a instalação da
BAM num outro cliente, para que, desde logo, fosse possível colocar em marcha os
processos de recolha de dados. Após a preparação deste novo ambiente de
desenvolvimento, foi então possível dar início à 2ª iteração.
Nesta 2ª iteração, a fase de implementação iniciou-se com a criação de novas
funcionalidades e melhoramento de outras existentes, adição de novas tabelas à base
de dados e criação de mais sondas para recolha de dados.
Contextualização do Projecto
15
A interface da CMOS foi alvo de uma reestruturação de modo a apresentar mais
informação, mais legível e organizada. O próprio funcionamento interno da CMOS foi
igualmente reestruturado.
Esta fase termina com os testes do protótipo desenvolvido e com a análise crítica
dos resultados obtidos.
Relativamente ao planeamento inicial, apresentado na Figura 3, e comparando
com o plano executado na Figura 2, há duas situações de desfasamento significativo
entre os dois que são evidentes.
Figura 3. Plano inicial do projecto
Estas duas situações foram em grande parte responsáveis pelo desfasamento
relativamente ao planeamento inicial ocorrido.
O período de integração e auto-formação foi mais demorado devido ao carácter
inovador e não familiar das tecnologias com as quais tive contacto inicialmente.
Nesta fase tive a oportunidade de participar num projecto no qual partilhei
responsabilidades na construção de uma infra-estrutura para uma plataforma de
compras electrónicas para a administração pública. Neste projecto foi adoptada a nova
versão do ERP Oracle E-Business Suite, a versão 12 [10], com a qual nenhum dos
elementos da equipa de projecto tinha ainda tido contacto. Para a construção desta
plataforma foi definida uma arquitectura assente em ambientes virtualizados [11]. Foi
um processo bastante demorado, não só, pelo carácter inovador, mas também pela
ausência de informação disponível relativamente às tecnologias usadas que obrigou a
a várias actividades de pesquisa para a resolução de problemas encontrados.
Estas condições e a integração na equipa, conduziram ao atraso do arranque da
primeira iteração do desenvolvimento da BAM, implicando que esta tivesse o seu
início não em Outubro, como estava previsto, mas apenas em Fevereiro.
Contextualização do Projecto
16
A segunda situação ocorre após a conclusão da 1ª iteração, onde por motivos
profissionais e de acordo com as responsabilidades assumidas perante a empresa de
acolhimento, trabalhei durante cerca de 2 meses num projecto, onde não me foi
possível prosseguir o desenvolvimento da BAM fazendo com que o inicio da 2ª
iteração apenas fosse concretizado em meados de Junho.
Capítulo 3
Tecnologia e Arquitectura
Este capítulo apresenta e descreve os sistemas base do projecto, as ferramentas e
tecnologias utilizadas durante a sua execução. É também apresentada a arquitectura da
solução implementada e uma secção sobre tecnologia relacionada.
3.1 Plataforma de Base
3.1.1 Base de dados Oracle
A BAM incidiu na recolha de indicadores de funcionamento de sistemas com
bases de dados Oracle. Interessa pois, apresentar em maior detalhe este componente
base dos sistemas de informação abordados no âmbito da BAM e que esta utiliza
também como repositório.
A base de dados Oracle [12] consiste num Sistema de Gestão de Base de Dados
(SGBD) baseado no modelo relacional. Na Figura 4 é apresentada a arquitectura de
uma base de dados Oracle, versão 10g Release 2 (versão utilizada no âmbito deste
projecto):
17
Tecnologia e Arquitectura
18
Figura 4. Arquitectura da base de dados Oracle versão 10g [13]
Uma base de dados Oracle é representada por uma instância - Oracle Instance,
composta por um conjunto processos e estruturas que são carregadas em memória
quando a base de dados é iniciada. O conjunto destas estruturas denomina-se por
System Global Area (SGA). Esta contém um conjunto de dados e informação de
controlo acerca de uma instância.
A informação armazenada na SGA divide-se em três estruturas de memória
[14]:

Database buffer cache: Esta componente armazena os blocos de dados que
foram utilizados mais recentemente, de forma a optimizar o desempenho
através de uma redução nos processos de Input/Output para o disco, onde os
dados estão armazenados;

Redo log buffer: Esta estrutura regista um conjunto de entradas descritivas
das alterações efectuadas na base de dados. Estas entradas são
posteriormente escritas num online redo log para, no caso de ser necessário,
recuperar informação relativa aos dados armazenados na base de dados;
Tecnologia e Arquitectura

19
Shared pool: Esta componente contém conjuntos de memória partilhada,
como por exemplo uma área para processar comandos SQL submetidos para
a base de dados. Esta área é partilhada por múltiplas aplicações que utilizam
funcionalidades idênticas, de forma a optimizar recursos.
Outro componente da Oracle Instance são os Oracle background processes
[14]. Estes consistem em processos de sistema operativo que operam também ao nível
da memória e visam suportar o acesso concorrente de vários utilizadores e aplicações
a uma única base de dados. Realizam ainda, operações de Input/Output de forma
assíncrona e monitorizam outros processos para um aumento do paralelismo, gerando
assim um melhor desempenho e fiabilidade da base de dados.
A instância Oracle é responsável por abrir e gerir uma base de dados – Oracle
Database [15]. Esta possui um conjunto de estruturas físicas que armazenam dados e
um conjunto de informação relativa às suas configurações. Entre estas estruturas
temos:

Datafiles: ficheiros físicos que contêm estruturas de dados, como por
exemplo tabelas e índices;

Control Files: ficheiros que armazenam um conjunto de informação relativa
à configuração de uma instância de base de dados, como por exemplo: o
nome da base de dados, localização dos datafiles e redo logs, timestamp de
criação da base de dados, números de alteração, entre outros;

Redo Log Files: conjunto de ficheiros que protege a informação da base de
dados alterada em memória e que ainda não foi escrita nos datafiles;

Archive Log Files: ficheiros armazenados em disco, que arquivam a
informação contida nos redo logs e que podem ser usados para recuperação
de uma base de dados;

Password File: ficheiro que permite a um utilizador com privilégios de
administrador de base de dados conectar-se remotamente à instância que
administra;
Tecnologia e Arquitectura

20
Parameter File: ficheiro que contém o conjunto de parâmetros de
configuração da instância e base de dados. Estes parâmetros incluem,
identificação da base de dados, dimensão em memóra das principais
estruturas e configurações específicas que condicionam o funcionamento dos
vários componentes da base de dados (dos processos de escrita da base de
dados em disco ou do optimizador de interrogações em SQL por exemplo).
Numa configuração típica, uma base de dados Oracle terá os seguintes ficheiros:

Um Parameter File e um Password File que definem os parâmetros da
base de dados;

Dois Control Files para garantir a redundância;

Três grupos de Redo Log cada um com dois membros para garantir a
redundância que quando são preenchidos são copiados para arquivo
(Archive Log Files);

Múltiplos Datafiles onde são armazenados os dados dos esquemas da
base de dados (tipicamente aos pares: dados e índices em separado)
Para além destas estruturas físicas, uma base de dados Oracle possui também um
conjunto de estruturas lógicas [14]. A separação destas estruturas permite que o
armazenamento físico dos dados (nos datafiles) possa ser gerido sem que isto afecte o
acesso às estruturas lógicas, representadas pelos objectos de base de dados contidos
num tablespace (unidade de armazenamento que agrupa estruturas lógicas
relacionadas). É sobre esta unidade lógica que são criados os objectos das aplicações
(tabelas, índices, etc.)
3.1.2 Oracle EBS (E-Business Suite)
O Oracle E-Business Suite [8] consiste numa colecção de aplicações de
Planeamento de Recursos Empresariais, Gestão de Relacionamento com Clientes e
Gestão de Cadeia de Fornecimento, que proporcionam processos de gestão da
informação permitindo conectar e informatizar as organizações.
Tecnologia e Arquitectura
21
A arquitectura geral do OEBS (Figura 5) inclui uma base de dados Oracle, um
conjunto de funções de negócio implementadas em PL/SQL, uma interface WEB que
poderá ser um navegador de internet e uma camada aplicacional constituída por três
grandes componentes:

Formulários (Forms) que invocam a lógica de negócio no PL/SQL e
implementam também lógica aplicacional de controlo;

Relatórios (Reports) e programas concorrentes (Concurrent Programs) que,
directamente sobre a base de dados ou através da lógica de negócio em
PL/SQL, recolhem, apresentam e manipulam informação;

Motor de processamento concorrente (Concurrent Processing) que gere as
prioridades e execução de relatórios e programas.
Figura 5. Arquitectura da Oracle E-Business Suite
A base de dados sobre a qual assentam estas aplicações materializa, armazena e
gere todos os conceitos de negócio envolvidos nas suas operações. Estes conceitos de
negócio envolvem, entre outras, operações de compra, venda, classificação, entrega,
contabilização, gestão de inventário entre muitos outros.
A interface é a camada que permite a apresentação de informação e através da
qual o utilizador interage com o sistema.
Tecnologia e Arquitectura
22
Por se tratar de um sistema plenamente integrado, a manipulação de cada
conceito de negócio não se resume à alteração de apenas uma ou duas tabelas, existe
todo um conjunto de tabelas e estruturas agregadas que são acedidas e alteradas no
decorrer de cada operação.
3.1.3 SNMP
O SNMP (Simple Network Management Protocol) [16] é um protocolo, que
define um mecanismo de recolha de informação sobre o estado e funcionamento de
dispositivos (hardware/software) ligados em rede.
Hoje em dia, muitos periféricos e peças de software base de suporte a sistemas
de informação (como sistemas operativos ou sistemas de gestão de base de dados)
permitem a recolha de indicadores através deste protocolo.
Os indicadores suportados estão listados, sob a forma de objectos com um
identificador numérico único, em várias MIB (Management Information Base). A
MIB pode ser considerada como uma base de dados que lista os indicadores
suportados por um determinado dispositivo, seja ele físico (hardware) ou lógico
(software), existindo várias MIB, algumas genéricas e outras específicas de um
determinado dispositivo ou fabricante.
No âmbito deste projecto, a utilização do SNMP é determinante para obter
indicadores do funcionamento e consumo de recursos de hardware da infra-estrutura
física, como por exemplo o nome de um servidor, ou o nível de carga do processador.
A versão inicial deste protocolo é definida no RFC 1157 [17] onde é introduzido
o seu funcionamento base que envolve a troca de mensagens entre entidades que
inclui um protocol data unit (PDU) e que constitui o próprio pedido e resposta tal
como ilustrado na Figura 6 [18]. Novas versões deste protocolo têm sido
disponibilizadas, onde foram introduzidas as MIB e onde foram incluídas novas
funções de segurança como por exemplo autenticação e cifra de pacotes enviados.
Tecnologia e Arquitectura
23
Figura 6. Mensagem do protocolo SNMP [18]
3.1.4 CMOS
A CMOS [6] é uma consola de monitorização que permite o armazenamento de
informação sobre o estado dos sistemas e posterior análise dessa informação sobre a
forma de gráficos, possibilitando uma melhor análise do funcionamento dos sistemas
e a prevenção de eventuais problemas.
A CMOS possui três componentes principais tal como ilustrado pela Figura 7:
Figura 7. Arquitectura da Consola de Monitorização com os vários componentes [6]

Recolha e Processamento de Dados: a recolha é suportada pelo protocolo
SNMP que fornece a informação básica sobre o estado da máquina e por
interrogações SQL que permitem obter informação sobre os aspectos de
funcionamento de uma base de dados;

Armazenamento de Dados: o armazenamento de dados para posterior análise é
Tecnologia e Arquitectura
24
conseguido através de uma base de dados na qual é guardada a informação
recolhida pelo componente descrito em cima;

Interface com o Utilizador: este componente permite aos utilizadores
consultarem a informação que está armazenada na base de dados através de
uma interface Web. O utilizador para realizar esta consulta selecciona um
indicador (utilização de CPU, memória, etc.) e o período no qual pretende
realizar a análise. O resultado é exibido através de um gráfico no qual é
possível verificar os valores do indicador correspondente à pesquisa realizada.
O funcionamento da CMOS baseia-se na recolha de indicadores e na
apresentação da sua variação através de gráficos, não sendo possível relacionar a
análise da informação dos indicadores facultados com outros indicadores.
Pretende-se com a BAM utilizar a CMOS para fornecer indicadores simples que
serão depois conjugados com indicadores provenientes de conceitos de negócio
preparados pela BAM. Assim será possível identificar e relacionar o motivo pelo qual
existem variações na utilização de recursos. A BAM tenta estender a CMOS ao
introduzir uma componente relacional, que irá permitir obter informação mais
relevante e detalhada sobre o estado do sistema através da análise do desempenho,
relacionando-a com operações de negócio realizadas.
Tecnologia e Arquitectura
25
3.2 Tecnologias Utilizadas no Desenvolvimento
3.2.1 PHP
A linguagem PHP [19] é uma linguagem de programação indicada para o
desenvolvimento em tecnologia Web para produzir páginas HTML dinâmicas.
No âmbito deste projecto é utilizada para realizar o processamento de ficheiros
XML, executar interrogações à base de dados e construir o ficheiro em XML que
representa um gráfico.
Na Figura 8 é apresentado um método desenvolvido em PHP para simplificar a
impressão de mensagens de depuração.
function print_debug($error_string){
$fh = fopen("/home/oracle/oms/debug/debug.txt",'a');
fwrite($fh,strftime('%c')." - ".$error_string."\n");
fclose($fh);
}
Figura 8. Método de impressão de mensagens de depuração desenvolvido em PHP
3.2.2 JavaScript
O Javascript [20] é uma linguagem de programação utilizada em páginas Web
principalmente para execução de código do lado do cliente. É utilizada na validação
de formulários e permite a construção de interfaces gráficas avançadas e Websites
dinâmicos.
Na BAM o Javascript desempenha um papel fulcral, pois é responsável pela
construção dinâmica do formulário de consulta, pela gestão e tratamento dos
parâmetros introduzidos pelo utilizador e pela apresentação dos resultados obtidos.
Na Figura 9 é apresentado um método desenvolvido em Javascript para geração
de gráficos.
Tecnologia e Arquitectura
26
function generateGraph(data,id,chartType) {
var chart = new FusionCharts("../libs/fusioncharts/"+chartType,
"chart1", "850", "600", "0", "0");
chart.setDataURL(data);
chart.render(id);
}
Figura 9. Método desenvolvido em Javascript para geração de gráficos
3.2.3 SQL
O SQL [21] é a linguagem estruturada de pesquisa utilizada para a obtenção e
gestão de dados numa base de dados relacional.
Esta linguagem está presente na codificação das interrogações desenhadas para
obter os indicadores da BAM, sobre o modelo de dados da aplicação. A Figura 10
apresenta uma interrogação em SQL cuja função é a obtenção da média diária de
consumo de memória virtual sobre o modelo de dados da BAM.
SELECT timestamp ,hostname, swap_used
FROM (SELECT dados.dia timestamp ,dados.hostname
hostname,round(avg(swap_used)) swap_used
FROM (SELECT to_date(timestamp,'dd-mm-rrrr') dia,
hostname,swap_used
FROM prx_ind_3
WHERE to_date(timestamp,'dd--mm-yyyy') =
to_date(sysdate,'dd-mm-yyyy')
) dados
GROUP BY dados.dia,dados.hostname
ORDER BY 1 DESC
Figura 10. Interrogação em SQL para obtenção da média diária de consumo de memória virtual
sobre o modelo de dados da BAM
3.2.4 XML
O XML [22] consiste numa recomendação da W3C para linguagem de marcação
livre, que permite aos seus utilizadores definirem as suas próprias estruturas. Estas
podem posteriormente ser lidas por software e integradas com outras linguagens [22].
No âmbito deste projecto o XML foi utilizado para armazenar as interrogações
base em SQL e também para a definição de gráficos com os resultados obtidos como é
exemplificado na Figura 11 que apresenta o conteúdo de um ficheiro XML utilizado
Tecnologia e Arquitectura
27
para a geração de um gráfico que exprime a variação da média diária do nível de
carga do processador.
<chart caption="Load (%)"
animation="0"
labeldisplay="rotate"
labelstep="4"
lineThickness="2"
showValues="0"
yAxisMinValue="0"
yAxisMaxValue="100">
<set label='03-SEP-2009 00:00' value='1'/>
<set label='04-SEP-2009 00:00' value='1'/>
<set label='05-SEP-2009 00:00' value='1'/>
</chart>
Figura 11. Conteúdo de um ficheiro XML representativo de um gráfico
3.2.5 Shell Scripts
A linha de comandos do Sistema Operativo Linux (Shell) [23] é uma ferramenta
poderosa para o utilizador, que pretende interagir directamente com o sistema para
executar comandos, recolher dados e processar de forma automática a informação
recolhida.
No contexto da BAM, conjuntos de instruções (Shell Scripts) executam
comandos para obter dados SNMP e interagir directamente com a base de dados
Oracle através de comandos SQL, tendo em vista a recolha e armazenamento de
dados de indicadores.
3.2.6 Fusion Charts
A Fusion Charts [26] é uma biblioteca open-source em tecnologia Flash [27]
que permite a geração de gráficos dinâmicos e interactivos a partir de uma
representação XML dos dados. Na BAM, os ficheiros de XML são construídos a
partir dos dados armazenados na base de dados, através de rotinas em PHP. A criação
do gráfico é também feita através da invocação de uma rotina PHP (que acompanha a
biblioteca de gráficos) com os dados dos ficheiros XML.
Tecnologia e Arquitectura
28
3.3 Arquitectura da BAM
A Figura 12 apresenta um diagrama com a arquitectura da BAM a qual é
constituída por dois grandes componentes:

Motor de Recolha de Dados

Motor de Análise
Estes dois componentes interagem com a CMOS para alcançar o objectivo de
fornecer uma aplicação de análise e monitorização avançada.
Figura 12. Arquitectura do Sistema
Tecnologia e Arquitectura
29
3.3.1 Motor de Recolha de Dados
Este componente é composto por outros dois sub-componentes, recolha de
dados das tabelas e monitorização de operações do negócio:

recolha de dados das tabelas, que será baseada em interrogações sucessivas
a vistas de dados estatísticos que fornecem informação sobre a actividade
das tabelas. O objectivo será determinar quais as tabelas que apresentam
maior actividade;

monitorização das operações de negócio, que consiste no registo e
relacionamento entre as operações de negócio que estão a ser realizadas
em cada momento. Os dados aqui recolhidos serão armazenados numa
base de dados.
O motor de recolha de dados apresenta ainda um conjunto de sondas que permite aos
dois sub-componentes concretizarem as operações de recolha através da execução de
sondas que realizam interrogações em SQL e pedidos de SNMP. Uma descrição mais
detalhada das sondas encontra-se na Figura 21 da página 50.
3.3.2 Motor de Análise
O componente de análise é responsável pelas operações relacionais sobre os
dados recolhidos pelo componente de recolha. Subdivide-se em dois subcomponentes:

um componente que trabalha directamente sobre os dados fornecidos pela
recolha, relacionando as tabelas que apresentam maior actividade com as
operações do negócio realizadas. Tornando assim possível determinar
quais as tabelas utilizadas numa operação do negócio. Os dados aqui
obtidos são guardados numa base de dados;

outro componente, que é responsável por relacionar os dados de
indicadores já recolhidos pela CMOS (utilização de processador, espaço
ocupado em disco, etc.) com as operações de negócio realizadas. O
cruzamento destes dados irá permitir quantificar o custo das operações de
Tecnologia e Arquitectura
30
negócio e elaborar relatórios com essa informação.
Os resultados aqui obtidos são disponibilizados para consulta através da
interface Web.
Procurou-se com esta arquitectura modular estender a sua aplicação focando-a
na análise de sistemas empresariais baseados em Oracle E-Business Suite. Por se
tratar de um sistema genérico, a identificação do conjunto das estruturas de dados que
são envolvidas numa operação do negócio da E-Business Suite será transversal a
múltiplos clientes da Truewind que utilizem os mesmos módulos. Desta forma, a
utilização desta aplicação poderá ser facilmente alargada, com a alteração mínima de
alguns parâmetros de configuração. Exemplos destas operações de negócio são, no
caso de uma empresa de retalho alimentar, as vendas de produto registadas por cada
vendedor. Já no caso de se tratar de uma empresa industrial, a actividade de criação ou
manutenção de um bem ou produto e dos registos de entrada e saída de material para a
manufactura.
No próximo capítulo, que descreve o trabalho realizado, são apresentados os
detalhes de implementação desta arquitectura.
3.3.3 Integração de Sistemas
Tal como indicado na Figura 12, a integração da BAM na CMOS é conseguida
de duas formas:

Através da base de dados da CMOS, preparada para armazenar a
informação recolhida directamente pela BAM;

Através da camada de acesso a dados, que consiste num conjunto de
métodos
em
Javascript
responsáveis
por
tratar
os
eventos
desencadeados na interface WEB, enviando-os para a CMOS ou para a
BAM (motor de análise), de acordo com o tipo de evento. O envio
destes pedidos desencadeia por sua vez uma execução de funções PHP
que extraem a informação necessária à geração de gráficos (ficheiros
XML). A camada de acesso a dados, ao receber as respostas aos
Tecnologia e Arquitectura
31
pedidos, encaminha-as para a interface WEB, que exibe os gráficos para
consulta.
3.4 Tecnologia Relacionada
No universo das aplicações de monitorização, administração e avaliação do
desempenho de bases de dados, existe um grande leque de soluções, criadas com o
objectivo de auxiliar o administrador da bases de dados na obtenção de configurações
cada vez mais adequadas e optimizadas para dotar os sistemas de capacidade para
fazer face aos requisitos de desempenho cada vez mais exigentes e determinantes no
sentido de garantir o bom funcionamento dos sistemas de informação. Nas próximas
secções são apresentadas algumas das soluções que foram avaliadas no âmbito do
projecto.
3.4.1 Oracle Enterprise Manager – OEM
Comercializado pela Oracle, o Oracle Enterprise Manager [2] é uma aplicação
para a gestão/administração/monitorização de bases de dados e respectivas infraestruturas aplicacionais desenvolvida pelo próprio fabricante do sistema gestor de
base de dados.
O OEM permite uma gestão completa das bases de dados, desde a criação de
modelos de dados à monitorização da actividade e dos serviços activos, detecção de
potenciais problemas, bem como a definição de tarefas de administração para a
resolução dos problemas encontrados.
A Figura 13 apresenta o aspecto do ecrã de administração da aplicação para
gestão e monitorização da instância de base de dados.
Tecnologia e Arquitectura
32
Figura 13. Vista de Administração do OEM [2]
3.4.2 Monitor Magic – Database Monitoring
A ferramenta Database Monitoring [3] é um módulo da ferramenta de gestão e
monitorização de sistemas denominada Monitor Magic. O Database Monitoring
dedica-se exclusivamente à monitorização e gestão de bases de dados e suporta a
criação de alarmes e eventos que são desencadeados com o aparecimento de
anomalias (através da análise dos registos), em situações definidas pelo utilizador ou
quando limites definidos são ultrapassados (tanto ao nível da base de dados como de
recursos de hardware). Através de comandos SNMP recolhe valores de objectos da
base de dados para depois exibi-los através de uma interface gráfica.
A Figura 14 apresenta a vista de alarmística desta aplicação.
Tecnologia e Arquitectura
33
Figura 14. Monitor Magic Database Monitoring [3]
3.4.3 Quest Database Management
A Quest Software [5], apresenta um vasto leque de opções no que diz respeito a
soluções de gestão e administração de bases de dados, com especial foco na gestão e
monitorização. Nesta área existem duas aplicações, o Spotlight, que se dedica
exclusivamente à detecção e resolução de congestionamentos na base de dados e o
Foglight, cujo foco é a monitorização e gestão do desempenho de uma base de dados.
A Figura 15 apresenta a vista geral da aplicação Spotlight, que permite
visualizar onde estão localizados os problemas de performance.
Tecnologia e Arquitectura
34
Figura 15. Spotlight - Quest Software [5]
3.4.4 Primos Database Monitoring
Apresenta-se como sendo “uma ferramenta desenhada para fornecer a
informação mais importante para controlar a base de dados” o Primos Database
Monitoring [28] é mais uma ferramenta para auxiliar o administrador da base de
dados nas suas rotinas diárias.
Criada por administradores de bases de dados, tenta reunir, numa única
ferramenta, as funcionalidades e informação que os seus criadores consideram ser as
fundamentais para que a administração das bases de dados possa ser realizada de
forma correcta e eficiente.
A figura 16 apresenta a interface que mostra as interrogações que foram
executadas em maior número.
Tecnologia e Arquitectura
35
Figura 16. Primos Database Monitoring [28]
3.4.5 Ignite for Oracle Performance
O fabricante Ignite direcciona a sua atenção para as questões relacionadas com o
desempenho das bases de dados tendo desenvolvido o Oracle Performance [29] cujo
objectivo é a procura e resolução, de forma célere dos problemas de desempenho de
uma base de dados. Através da análise das interrogações SQL realizadas na base de
dados e no tempo que estas levam a executar, esta ferramenta permite identificar e
analisar o fragmento de código responsável por uma perda de desempenho.
A Figura 17 apresenta a vista de análise de expressões em SQL, a qual permite
visualizar quais as expressões e o tempo que esteve envolvido durante a sua execução.
Tecnologia e Arquitectura
36
Figura 17. Ignite for Oracle Performance [29]
3.4.6 Oracle Business Activity Monitoring
De todas as tecnologias que tive oportunidade de observar, a que mais se
aproxima da BAM, seja em nomenclatura seja em funcionalidade é a aplicação Oracle
Business Activity Monitoring - BAM [24], que se apresenta como “uma solução
completa para a construção de painéis interactivos em tempo-real que fornecem
alertas pró-activas relativamente à monitorização de serviços e processos de negócio”
[24].
Apesar do nome semelhante e de uma definição que sugere funcionalidades
igualmente semelhantes, a Oracle BAM difere largamente dos objectivos deste
trabalho. Esta é uma aplicação de larga escala e de grande dimensão, preparada para
cálculos complexos com o objectivo de analisar e optimizar processos de negócio.
Não abrange contudo, questões como a degradação do desempenho do sistema nem a
relação desta com os processos de negócios. A aplicação desenvolvida no âmbito
deste projecto, por outro lado, foca o seu âmbito na monitorização e análise dessas
relações por forma a obter dados que possam permitir compreender e prever a
degradação do desempenho.
Tecnologia e Arquitectura
37
Na Figura 18 está representada uma imagem da interface da Oracle BAM.
Apresenta quatro painéis distintos, cada um deles com diferentes propósitos. Os
gráficos que podemos observar nesses painéis exprimem informação sobre a evolução
do negócio de um centro de contactos. A informação disponível diz respeito à
quantidade de chamadas num período de tempo, à quantidade de chamadas de por
região, etc., apesar de ser informação importante para a optimização do negócio, não é
explorada a forma como este afecta o desempenho do sistema.
Figura 18. Interface gráfica Oracle BAM [24]
Trata-se pois de um ambiente e enquadramento distintos pois a Oracle BAM,
devido à sua dimensão e complexidade é necessariamente muito exigente a nível de
recursos, físicos e também financeiros.
3.4.7 Análise Comparativa
Todas as soluções avaliadas, com a excepção da Oracle BAM, são ferramentas
típicas de gestão e administração de bases de dados ao nível técnico. Estas
ferramentas permitem uma gestão e administração das instâncias de bases de dados
Tecnologia e Arquitectura
38
que se exigem cada vez mais rigorosas e eficientes. No entanto, as funcionalidades e o
tipo de informação que disponibilizam, de uma forma geral, pouco difere de
ferramenta para ferramenta.
A BAM, por sua vez, além de recolher e apresentar indicadores comuns de
desempenho (consumo de processador, consumo de memória), recolhe dados
funcionais que quando conjugados permitem de forma limitada obter o impacto que as
operações de negócio têm no desempenho da base de dados. A Tabela 1 resume as
principais características das soluções avaliadas.
Solução
Pontos Fortes
Pontos Fracos
Oracle Enterprise
Manager – OEM
- Ferramenta plenamente
integrada na tecnologia
- Fornece apenas análises técnicas
- Vasto leque de análises
Monitor Magic –
Database
Monitoring
- Reduzida funcionalidade na previsão
de necessidades futuras de recursos
- Possibilidade de configurar
alarmes e acções automáticas
para problemas
- Interface pouco amigável nalguns
módulos
- Criação de alarmes e eventos de
acordo com limites prédefinidos ou definidos pelo
administrador
- Informação limitada sobre
funcionamento geral da base de
dados
- Notificação de erros críticos
- Reduzida funcionalidade na previsão
de necessidades futuras de recursos
- Interface pobre
Quest Database
Management
- Fornece informação detalhada
relativamente ao
congestionamento e ao
desempenho de bases de dados
- Interface bem construída
Primos Database
Monitoring
Ignite for Oracle
Performance
- Não relaciona os problemas que
encontra com o tipo de negócio do
sistema que monitoriza.
- Reduzida funcionalidade na previsão
de necessidades futuras de recursos
- Integração com vários sistemas
de gestão de bases de dados
(Oracle, SQLserver, etc)
- Licenças dispendiosas
- Identificação de situações
críticas
- Reduzida informação no consumo de
recursos Hardware
- Sugestão de resolução para
alguns problemas
- Suporte restrito a bases de dados
Oracle
- Análise integrada de várias
bases de dados
- Identificação de problemas de
desempenho limitado a análise de
expressões em SQL
- Informação detalhada sobre
constrangimentos no
desempenho da base de dados
- Foco da aplicação limitado ao
desempenho das bases de dados
- Interface simplista e atractiva
- Reduzida funcionalidade na previsão
de necessidades futuras de recursos
Tecnologia e Arquitectura
Oracle Business
Activity - BAM
39
- Monitorização de serviços e
processos de negócio
- Análise limitada à optimização de
processos de negócio
- Infra-estrutura de alarmística
avançada
- Exigente a nível de requisitos
Hardware
- Interface avançada, reunindo
informação necessária de forma
lógica e organizada
- Licenças dispendiosas
Tabela 1. Comparativo de soluções
Tecnologia e Arquitectura
40
Capítulo 4
Trabalho Realizado
Este capítulo descreve o trabalho realizado ao longo do projecto, as principais
dificuldades encontradas na sua execução bem como os resultados alcançados.
Inicialmente é feita uma descrição das tarefas realizadas na fase de preparação do
projecto. De seguida será feita uma descrição das tarefas mais relevantes realizadas a
nível da identificação dos requisitos, desenho, implementação e testes realizados à
BAM. Finalmente são apresentados os principais resultados alcançados.
4.1 Preparação do Projecto
O início do projecto teve lugar nos escritórios da Truewind onde ocorreu a
integração na equipa de administração de sistemas de informação e onde foram
definidas e atribuídas as primeiras tarefas de aprendizagem e a familiarização com a
tecnologia Oracle (base de dados, servidor aplicacional e ERP E-Business Suite).
Este foi um período de autoformação no qual tive oportunidade de ter contacto
com a tecnologia e de pôr em prática alguns conceitos e procedimentos aprendidos
através de tarefas de instalação e configuração de bases de dados Oracle e do ERP EBusiness Suite.
Paralelamente, e tendo em vista os objectivos delineados para a BAM, foi
realizado um trabalho de pesquisa de soluções existentes que de alguma forma
concretizassem as funcionalidades previstas para a BAM.
41
Trabalho Realizado
42
No decorrer desta etapa foi também realizado um estudo informal do
funcionamento da CMOS no qual foi possível perceber quais as funcionalidades desta
consola. Esta actividade iniciou-se com a passagem de conhecimento do autor da
CMOS e de toda a informação disponível acerca do trabalho. Como já existia um
ambiente de desenvolvimento preparado e estruturado, foi possível a transmissão
rápida e assistida dos desenvolvimentos ocorridos. A assimilação desta infra-estrutura
foi rápida o que permitiu realizar um conjunto de testes que consistiram na alteração
do código fonte da CMOS, quer a nível de interface gráfica, quer a nível do seu motor
interno, de forma a conseguir um melhor entendimento das suas características.
4.2 Definição dos Requisitos da BAM
Após a etapa de preparação, foi iniciado o desenvolvimento da BAM. Este
processo iniciou-se com uma fase de recolha e identificação dos requisitos estruturais
e funcionais da BAM. O conjunto de requisitos foi definido com base na análise
realizada inicialmente e com os responsáveis da empresa de acolhimento num
conjunto de reuniões, nas quais ficaram estabelecidos de forma informal os objectivos
detalhados da BAM. Depois desta análise seguiu-se a identificação dos requisitos
estruturais e funcionais:

Estruturais: definiram a estrutura de dados responsável por dar suporte e
armazenar a informação gerida e recolhida pela BAM; Optou-se por
suportar o repositório de dados da BAM numa base de dados Oracle e
utilizar o sistema operativo Linux como sistema base para a recolha de
indicadores de infra-estrutura física (servidores).

Funcionais: focaram-se na definição das funcionalidades a serem
suportadas pela BAM. Esta tarefa foi fundamental para clarificar
exactamente as funções a criar para atingir os objectivos estabelecidos
inicialmente; Pretendia-se com a BAM recolher indicadores com base
nos conceitos de negócio e relacioná-los com os indicadores recolhidos
da infra-estrutura.
Trabalho Realizado
43
O refinamento dos requisitos definidos inicialmente foi realizado em duas
iterações. Na primeira foi dada maior atenção à obtenção de uma estrutura de
armazenamento e aos requisitos gerais do modelo de dados com um conjunto limitado
de funcionalidades base. Na segunda iteração foi dada primazia à refinação dos
requisitos definidos na primeira iteração e à determinação dos restantes requisitos
necessários para ultrapassar problemas e preencher lacunas no funcionamento da
BAM após a primeira iteração.
4.3 Desenho da Solução
Depois de identificados os requisitos gerais da BAM, foi desenhado em
pormenor o modelo de dados, definida a forma como os componentes da aplicação se
relacionam e integram na CMOS e finalmente o fluxo de informação existente entre
eles.
É de extrema importância a existência deste modelo, pois funciona como um
mapa para a construção de aplicações. Permite uma forma rápida e eficiente de
identificação das estruturas e das relações subjacentes. Este modelo de dados foi
construído tendo por base os requisitos estruturais e funcionais, definidos na etapa
anterior.
Na Figura 19 é apresentado o diagrama que representa o modelo de dados
construído.
Trabalho Realizado
44
Figura 19. Modelo de Dados
Construído a partir do modelo de dados da CMOS (no canto superior esquerdo a
azul), o modelo de dados da BAM (a verde) apresenta o conjunto de entidades que
complementa o modelo da CMOS e introduz novas entidades fundamentais para o
funcionamento da BAM.
De acordo com o modelo criado temos o seguinte conjunto de estruturas:

entidades prx_ind_n: suportam a informação e valores relacionados com
o indicador em causa

entidades prx_ind_n_daily: suportam os valores recolhidos diariamente
relacionados com o indicador em causa

entidades prx_aux_<atributo> e outras: entidades que suportam dados
auxiliares para compor os indicadores dos conceitos de negócio e para o
cálculo de estimativas.
Estas estruturas permitem estender a CMOS para um novo conjunto de
indicadores, tal como foi realizado, é demonstrado na próxima secção.
Trabalho Realizado
45
4.4 Implementação da BAM
A implementação da BAM, que decorreu em duas iterações foi a tarefa que teve
o maior esforço empregue. Foi dividida em 4 fases as quais estão descritas em maior
detalhe nas próximas secções.
4.4.1 Instalação do Ambiente
O limitado conhecimento na programação em ambientes Web e a reduzida
experiência nas linguagens e tecnologias utilizadas, obrigaram a que uma fatia
relevante do tempo do projecto fosse consumida em formação nestas novas
tecnologias. Algumas destas actividades de formação foram concretizadas com a
instalação e configuração do ambiente de desenvolvimento e execução da BAM e no
qual tive o primeiro contacto com algumas das tecnologias a utilizar. Este processo
iniciou-se com a instalação da CMOS e com a realização de testes nesta consola.
Seguiram-se pequenas modificações à mesma, nas quais foi possível compreender o
seu funcionamento ao nível funcional e ao nível técnico das várias estruturas internas
e do motor da CMOS.
Foram instalados as seguintes ferramentas e sistemas:

Sistema Operativo Linux RHEL 5;

Processos residentes para recolha de indicadores via protocolo SNMP;

Base de Dados Oracle 10gR2;

Servidor Aplicacional Apache versão 2.0, configurado com módulos de
PHP e bibliotecas de auxílio à geração de interfaces Web.
Com esta tarefa foi possível obter uma visão mais pormenorizada da consola
CMOS, fornecendo dados relevantes para a tarefa de integração da BAM na CMOS.
Após esta fase, foi então possível dar início ao desenvolvimento da BAM.
Trabalho Realizado
46
4.4.2 Repositório de dados
O processo de desenvolvimento teve o seu início com a criação do modelo de
dados que serviu de suporte à BAM bem como ao conjunto de dados por ela gerido.
A possibilidade de uma mesma base de dados de repositório vir a recolher e
armazenar informação de várias bases de dados e servidores que as alojam,
conduziram à criação de duas colunas adicionais em todas as tabelas na base de dados
da BAM, que guardam o nome do servidor e respectiva(s) base(s) de dados. Desta
forma e numa mesma instalação, a BAM pode recolher e armazenar informação de
várias bases de dados e respectivos servidores.
De seguida encontra-se uma descrição das tabelas existentes bem como da
informação que suportam. A descrição das tabelas da base de dados da BAM
encontra-se na Tabela 2 e a estrutura das tabelas e significado das suas colunas
encontra-se na Tabela 3.
Tabela
Descrição
prx_ind_7
Armazena os valores da carga do Processador de 5 em 5 minutos
prx_ind_8
Usada para armazenar o tamanho (em MBytes) de várias tabelas.
O registo é feito 3 vezes por dia (frequência parametrizável, configuradas
recolhas às 8:00, 13:00 e 18:00)
prx_ind_9
Guarda o número de registos de cada tabela.
O registo é feito 3 vezes por dia (frequência parametrizável, configuradas
recolhas às 8:00, 13:00 e 18:00)
prx_ind_10
Esta tabela reúne dados das tabelas prx_ind_1,2,5 bem como o
número de registos da tabela PA_PROJECTS_ALL.
prx_ind_1_daily
Armazena a média diária da utilização de Processador
prx_ind_2_daily
Armazena a média diária do consumo de memória RAM
prx_ind_3_daily
Armazena a média diária do consumo de memória virtual(SWAP)
prx_ind_5_daily
Armazena a média diária do tamanho da(s) base(s) de dados
prx_ind_7_daily
Armazena a média diária dos valores da carga do CPU
prx_aux_mmt
Armazena o número de linhas da tabela MTL_MATERIAL_TRANSACTIONS
correspondente a cada projecto
prx_aux_pbl
Armazena o número de linhas da tabela PA_BUDGET_LINES
correspondente a cada projecto
Trabalho Realizado
47
Tabela
Descrição
prx_aux_pra
Armazena o número de linhas da tabela PA_RESOURCE_ASSIGNMENTS
correspondente a cada projecto
prx_project_statistics
Reúne o número de linhas por tipo de projecto das tabelas:
MTL_MATERIAL_TRANSACTION, PA_BUDGET_LINES,
PA_RESOURCE_ASSIGNMENTS
prx_avg_row_len
Guarda o tamanho, em média, de um registo das tabelas:
MTL_MATERIAL_TRANSACTION, PA_BUDGET_LINES,
PA_RESOURCE_ASSIGNMENTS
Tabela 2. Tabelas da base de dados e respectiva descrição
Na primeira iteração foram criadas apenas estruturas para armazenar os valores
de recolha diária (prx_ind_*_daily) e a tabela prx_ind_8.
As restantes, foram criadas na segunda iteração do desenvolvimento da BAM,
após o refinamento dos requisitos funcionais.
Tabela
Coluna
Significado
prx_ind_7
load
carga do processador (consumida de 5 em 5 minutos)
prx_ind_8
table_name
nome da tabela
current_size
tamanho da tabela em MBytes
table_name
nome da tabela
current_size
numero de registos da tabela
cpu_used
percentagem de processador utilizada diariamente
mem_used
percentagem de memória utilizada diariamente
total_size
percentagem de espaço em disco ocupado pela
base de dados diariamente
ppa_lines
número de linhas da tabela PA_PROJECT_ALL
prx_ind_1_daily
cpu_used
percentagem de processador utilizada diariamente
prx_ind_2_daily
mem_used
quantidade de memória consumida diariamente (em
GBytes)
prx_ind_3_daily
swap_used
quantidade de swap consumida diariamente (em MBytes)
prx_ind_5_daily
total_size
tamanho total diário da base de dados (em GBytes)
prx_ind_7_daily
load
carga diária consumida pelo processador
prx_aux_mmt
project_type
tipo de projecto
lines
número de registos
prx_ind_9
prx_ind_10
Trabalho Realizado
48
Tabela
Coluna
Significado
prx_aux_pbl
project_type
tipo de projecto
lines
número de registos
project_type
tipo de projecto
lines
número de registos
project_type
tipo de projecto
mmt_lines
número de registos da tabela
MTL_MATERIAL_TRANSACTIONS
pbl_lines
número de registos da tabela
PA_BUDGET_LINES
pra_lines
número de registos da tabela
PA_RESOURCE_ASSIGNMENTS
table_name
nome da tabela
length
média do tamanho ocupado por um registo (em Bytes)
prx_aux_pra
prx_project_statistics
prx_avg_row_len
Tabela 3. Descrição das colunas existentes em cada tabela da base de dados
Para obter o alinhamento dos vários eventos as tabelas prx_ind_7…10,
prx_ind_[1,2,3,5,7]_daily recolhem ainda uma estampilha temporal na coluna
“timestamp”. Esta estampilha temporal permite estabelecer relações na ocorrência de
variações entre os vários indicadores recolhidos.
4.4.3 Motores de Análise e Recolha
A BAM tem como objectivo principal analisar a forma como a execução de
operações do negócio se manifesta no consumo de recursos. Esta análise é
concretizada com a procura de relações em dados com características comuns (mesma
escala temporal por exemplo). Neste sentido os motores da BAM, que são o seu
núcleo, são os responsáveis por permitir a recolha dos dados dos indicadores para a
sua posterior análise.
Foram assim desenvolvidos dois componentes com características e propósitos
diferentes: o Motor de Recolha e o Motor de Análise.
Trabalho Realizado
49
Motor de recolha
O motor de recolha possui um conjunto de sondas. Estas sondas são
concretizadas em shell scripts que recolhem indicadores do SNMP e informação a
obter de bases de dados através de interrogações em SQL.
Estas sondas permitem assim a execução automatizada de comandos e
interrogações, filtrando e pré-processando a informação que daí resulta. O resultado
deste processo consiste em dados que são inseridos na base de dados da BAM através
de novos comandos em SQL. Um exemplo de uma destas sondas é apresentado na
Figura 20.
#!/bin/bash
. $HOME/.bash_profile
HOSTNAME=`snmpget -Oqv -m all -v 1 -c public $1 sysName.0`
TMP_LOAD=`snmpget -Oqv -m all -v 1 -c public $1 extOutput.2`
$ORACLE_HOME/bin/sqlplus -s /nolog << EOF
connect sys/password@TSH1 as sysdba
INSERT INTO SYS.PRX_IND_7 (timestamp, hostname, load)
SELECT sysdate,'$HOSTNAME','$LOAD' FROM DUAL;
exit
EOF
Figura 20. Sonda da BAM para recolha de dados de carga de processador
Os dados recolhidos através do serviço de SNMP incluem indicadores de
desempenho e consumo de recursos dos servidores que alojam as bases de dados
monitorizadas. As interrogações executadas em SQL obtêm dados sobre volume e
outras propriedades de tabelas bem como informação armazenada na própria tabela.
Foram criadas cinco sondas que estão descritas na Tabela 4.
Sonda
Descrição
prx_ind_1.sh
Recolhe dados de consumo de processador realizando uma média diária.
prx_ind_2.sh
Recolhe dados de consumo de memória realizando uma média diária.
prx_ind_3.sh
Recolhe dados de consumos de memória virtual realizando uma média diária.
prx_ind_5.sh
Recolhe valores de espaço ocupado na base de dados realizando uma
média diária.
prx_ind_7.sh
Recolhe valores de carga do processador realizando uma média diária.
Trabalho Realizado
50
Sonda
Descrição
prx_ind_7.sh
Recolhe dados relativos ao consumos de processador e
realiza a inserção destes na tabela prx_ind_7.
prx_ind_8.sh
Recolhe dados relativos ao tamanho das tabelas e realiza
a inserção destes na tabela prx_ind_8.
prx_ind_9.sh
Recolhe dados relativos ao número de registos das tabelas e
realiza a inserção destes na tabela prx_ind_9.
prx_ind_10.sh
Recolhe dados relativos ao consumo de processador, memória,
espaço ocupado pela base de dados e número de registos da
tabela PA_PROJECTS_ALL. Esta sonda obtém a informação através das
tabelas locais da BAM (que foram previamente preenchidas).
update_daily.sh
Responsável por recolher dados para preencher as tabelas que
guardam valores diários. Obtém a informação através das tabelas
locais da BAM (previamente preenchidas).
Tabela 4. Descrição das sondas
O fluxo de funcionamento do motor de recolha de dados está esquematizado na
Figura 21.
Sondas
SNMP
Shell Script
Base de dados
monitorada
Parse Shell
Script
Dados
SQL plus
Base de dados
local
SQLplus
Figura 21. Fluxo de funcionamento do motor de recolha de dados
A recolha de dados e indicadores é realizada em duas fases:
1. Numa primeira fase pretende-se determinar as tabelas envolvidas em
operações de negócio que devem ser monitorizadas. Para tal, a BAM
recolhe dados sobre o tamanho, número de registos e actividade das
tabelas que fazem parte da E-Business Suite. Os dados aqui recolhidos
Trabalho Realizado
51
são disponibilizados ao motor de análise que realiza uma filtragem
indicando quais as tabelas que interessa monitorizar.
2. Numa segunda fase, é monitorizado o crescimento e actividade das
tabelas previamente seleccionadas pelo motor de análise.
Motor de análise
Os dados recolhidos, por si só, não permitem distinguir informação relevante de
informação insignificante. É por isso importante, submeter os dados e indicadores
recolhidos acerca das estruturas de uma base de dados a um processo de análise e
tratamento para que estes dados possam ser verdadeiramente indicadores relevantes.
O motor de análise é responsável pelo processamento e normalização dos dados
recolhidos e também pela preparação dos dados para serem apresentados através de
gráficos e assim poderem ser analisados.
O processo de análise, à imagem do processo de recolha, é também realizado em
duas etapas:
1. Numa primeira etapa o motor de recolha fornece dados relativamente ao
tamanho das tabelas, número de registos e a sua actividade. Interessa,
nesta etapa, reconhecer conceitos de negócio a serem monitorizados.
Estes conceitos materializam-se normalmente em registos de uma ou
mais tabelas. Nesse sentido, torna-se necessário identificar as tabelas
cujas alterações sejam potenciais conceitos de negócio. A forma de
definir as candidatas mais prováveis passou por estabelecer filtros que,
baseados nalguns critérios objectivos, pretendem seleccionar as tabelas
mais relevantes para monitorização.
Os critérios escolhidos são:

Tabelas que ocupam mais espaço em disco;

Tabelas com maior número de registos;

Tabelas que apresentam maior actividade;
Além destes critérios, e como o universo de tabelas e estruturas é muito
extenso no ERP Oracle E-Business Suite (24022 tabelas no total), foi
Trabalho Realizado
52
necessário investigar e validar junto das equipas da Truewind o conjunto
de dados recolhido. Como complemento a esta validação socorri-me
ainda de um repositório de informação, o eTRM (Electronic Technical
Reference Manual) [25].
O eTRM é um repositório de meta-dados técnicos de referência para
explorar a estrutura de dados do E-Business Suite. Através do eTRM é
possível conhecer a estrutura das tabelas, índices, suas dependências,
atributos e tipos de dados (Figura 23). Esta informação é disponibilizada
através de um Website como é apresentado na Figura 22 e Figura 23.
Figura 22. eTRM da Oracle com os meta-dados do modelo de dados do E-Business Suite
Trabalho Realizado
Figura 23. Excerto do resultado da pesquisa pela tabela PA_PROJECTS_ALL no eTRM
53
Trabalho Realizado
54
Dada a inexistência de meta-dados no ERP que permitam determinar por
si só quais os conceitos de negócio armazenados em cada tabela, o
eTRM assume um papel determinante na identificação, contextualização
e validação dos dados recolhidos.
Na instalação da BAM os registos obtidos pelo motor de recolha foram
ordenados por ordem crescente, aplicando os três critérios indicados,
assim, foram seleccionadas 10 tabelas para serem monitorizadas. Destas
10 tabelas as mais relevantes são as seguintes:

PA_BUDGET_LINES
Guarda informação detalhada acerca do orçamento de um
projecto ou tarefa, incluindo os recursos associados, período de
tempo e quantidade do orçamento utilizado.

WIP_TRANSACTION_ACCOUNTS
Tabela que armazena informação acerca de transacções de
recursos, sendo que cada linha corresponde a um débito ou um
crédito.

PA_RESOURCE_ASSIGNMENTS
Guarda informação detalhada sobre os recursos que são
atribuídos a um projecto/tarefa.

QP_PRICING_ATTRIBUTES
Guarda informação sobre os produtos e atributos dos preços
respectivos.

MTL_TRANSACTION_ACCOUNTS
Guarda informação sobre contabilidade no que diz respeito a
cada transacção de material que ocorre. Cada linha representa
um débito ou um crédito.

MTL_MATERIAL_TRANSACTIONS
Armazena informação detalhada sobre as transacções e sobre o
material envolvido nessas transacções.
Trabalho Realizado
55
Estas tabelas, conjuntamente com a tabela PA_PROJECTS_ALL, no
contexto do cliente e do sistema que a BAM monitorizou, representam os
conceitos de negócio mais relevantes. Esta tabela contém informação
sobre todos os projectos e tipos de projectos que são executados na
empresa, e são precisamente estes conceitos de negócio que importa
obter, monitorar e analisar.
2. Numa segunda etapa, o motor de análise foca-se em processos de
relacionamento de dados e na exploração dessas relações. A
representação gráfica na dimensão temporal permite obter resultados
relevantes no objectivo de encontrar casualidade entre execução de
operações de negócio e variação no consumo de recursos.
Para serem averiguadas estas premissas o motor de análise permite a
visualização de vários gráficos que apresentam o crescimento das tabelas
ao longo do tempo e relacionam a variação do consumo de recursos com
esse crescimento das tabelas.
O motor de análise proporciona assim, ferramentas visuais para
relacionar o crescimento das tabelas quer em tamanho quer em número
de registos, com a variação do consumo de recursos da infra-estrutura
física. Na Figura 24 da próxima página é possível visualizar um quadro
que apresenta a forma como se manifesta o espaço e linhas ocupadas por
um tipo de projecto em três tabelas distintas.
4.4.4 Criação da interface gráfica
Nos requisitos delineados para a BAM, a apresentação fácil e rápida dos
resultados obtidos na inspecção ao funcionamento aplicacional de uma base de dados
Oracle era um dos mais importantes. O desenvolvimento da interface gráfica foi
direccionado precisamente nesse sentido. A interface da CMOS já dispunha de
algumas destas características, no entanto a forma como os resultados eram
apresentados e a localização dos elementos na interface não eram adequados para que
a integração da BAM nesta estrutura fosse bem sucedida.
Trabalho Realizado
56
Foi por isso decidido em sede de projecto não criar uma interface nova de raiz,
mas sim, tirar partido de alguns elementos já existentes, sendo redesenhados uns e
criados outros, que foram necessários, para que fossem mantidas as funcionalidades
da CMOS e facilmente integradas as da BAM.
A interface gráfica da BAM possui três componentes principais:

Quadro de consumo de recursos;

Caixas de selecção para a escolha de gráficos;

Gráficos;
Quadro de consumo de recursos
É o primeiro elemento a ser visualizado e é uma tabela que representa o volume
estimado (em número de linhas e espaço em disco de três tabelas) para cada tipo de
projecto. Apesar de se tratarem de valores relativamente estáveis (e alcançados por
medidas estatísticas que absorvem variações) está disponível no ecrã um botão que
permite actualizar os valores desta tabela. A Figura 24 apresenta este primeiro
elemento da interface gráfica.
Figura 24. Quadro consumo de recursos
Trabalho Realizado
57
Parâmetros de visualização
Os gráficos produzidos podem ser parametrizados pelo utilizador/administrador,
preenchendo para tal as caixas de selecção correspondentes aos gráficos que pretende
visualizar para facilitar desde logo a comparação entre diferentes gráficos, como é
apresentado na Figura 25.
Nesta figura é também possível visualizar dois parâmetros de data, que
permitem definir as datas entre as quais se pretende observar a evolução dos
indicadores.
Figura 25. Caixas de selecção para escolha de gráficos
Gráficos
Os gráficos são uma componente fundamental da interface, pois é através deles
que é possível analisar de forma efectiva os dados fornecidos. A interface está criada
para que seja possível apresentar na mesma página os gráficos dos vários indicadores,
permitindo assim a comparação de vários gráficos simultaneamente.
Trabalho Realizado
58
Os gráficos que apresentam dados de indicadores cuja recolha é efectuada com
uma frequência mais elevada, dispõem de dois tipos de vista: uma diária e outra
horária. A primeira permite uma análise mais detalhada e a outra disponibiliza uma
análise agregada. A selecção dos diferentes tipos de vista é concretizada por um
selector disponibilizado na interface junto ao gráfico. A Figura 26, evidencia a vista
horária de um gráfico. A Figura 27 mostra o mesmo gráfico após ter sido seleccionada
a vista diária.
Figura 26. Vista Horária
Trabalho Realizado
59
Figura 27. Vista Diária
É também possível obter uma visualização mais pormenorizada dos gráficos,
sendo necessário, para tal, clicar nos pontos que unem as linhas existentes. O
resultado desta operação resulta numa nova janela na qual é possível visualizar o
gráfico aumentado. É uma funcionalidade particularmente interessante quando
existem múltiplas linhas aparentemente sobrepostas, ou em situações em que não seja
possível perceber a evolução do gráfico.
Na Figura 28 pode ser observado o gráfico que mostra o número de registos de
tabelas. A linha que representa a tabela PA_PROJECTS_ALL (a verde) na escala
definida não tem aparente variação sugerindo a inexistência de alterações no período
representado. No entanto ao ser realizada a operação de visualização mais
pormenorizada, verifica-se que de facto existem alterações significativas, como está
representado na Figura 29.
Trabalho Realizado
60
Figura 28. Antes da operação de aumento
Figura 29. Depois da operação de aumento
Trabalho Realizado
61
Obstáculos
A pouca experiência em desenvolvimento para Web contribuiu para que todo o
processo de desenvolvimento sofresse com alguns contratempos, particularmente na
construção da interface, na qual me deparei com dificuldades na manipulação e
disposição dos elementos gráficos. Senti aqui a existência de uma lacuna que foi um
obstáculo no desenho e construção de uma interface como a que tinha sido projectada
inicialmente.
Relativamente à biblioteca de gráficos utilizada, surgiram na sua utilização
algumas restrições. Por limitação deste componente e ao contrário do que tinha sido
inicialmente planeado, não foi possível disponibilizar funcionalidades para permitir ao
utilizador interagir directamente com os gráficos, como por exemplo, realizar
operações de visualização ao pormenor localizadas. A visualização ao pormenor dos
gráficos é possível, no entanto, esta funcionalidade (fornecida nativamente pela
biblioteca utilizada) é apenas concretizada na disponibilização de uma ligação para
uma página na qual é fornecido um outro gráfico com um maior detalhe.
Trabalho Realizado
62
4.5 Testes
A execução de testes à aplicação é uma etapa fundamental no processo de
desenvolvimento que, em múltiplos ciclos, permite a avaliação e a validação das
funcionalidades implementadas, revelando assim o que tem de ser corrigido e/ou
melhorado. Neste projecto e tendo em conta que o objectivo passava pela
prototipagem de uma aplicação para posterior refinamento, apenas foi executado um
ciclo de testes em cada iteração do desenvolvimento.
A metodologia de execução dos testes consistiu na apresentação do protótipo
aos responsáveis da empresa de acolhimento e a outros membros da equipa de suporte
e administração de sistemas que, nestas sessões, testaram a aplicação e apresentaram
sugestões. O conjunto de situações reportadas foi registado e tratando-se de situações
anómalas (como a perca de funcionalidade de botões ou dados incorrectos recolhidos
por falha das sondas) foram prontamente corrigidas. As sugestões de melhoria foram
prioritizadas e na sua maioria acabaram por não ser executadas por falta de tempo.
Os testes à BAM foram assim realizados principalmente após as duas iterações,
do desenvolvimento sendo testados primeiramente os vários componentes nucleares
da aplicação e posteriormente a interacção com os componentes da interface.
4.5.1 Testes realizados aos componentes nucleares da BAM

Motor de Recolha
Os testes neste componente incidiram na validação dos dados recolhidos.
As principais incorrecções que aqui foram detectadas foram geradas pelo
comportamento anómalo das sondas quando eram realizadas execuções
sucessivas das diferentes sondas. Aqui foi detectado que o componente
de Shell Script das sondas, que trata e filtra a informação recolhida da
base de dados monitorizada, exibia mais dados do que seria suposto,
sendo, por isso, necessárias as afinações adequadas de forma a atingir o
funcionamento pretendido. Estas alterações foram executadas de forma
imediata após a detecção de dados incorrectos numa das sessões de
demonstração da aplicação.
Trabalho Realizado

63
Motor de Análise
Os testes neste componente incidiram no processo de geração de
gráficos e na validação e consistência dos dados por estes apresentada.
Numa primeira fase verificou-se que a geração de gráficos apresentava,
erros intermitentes (falhando de forma sistemática nalgumas situações de
análise),
Quando este problema foi ultrapassado, os gráficos gerados permitiram
validar os valores recolhidos pelas sondas e validar os valores
apresentados.
Foram
ainda
corrigidas
situações
anómalas
que
provocavam a apresentação de valores incorrectos ao nível da geração
das estruturas XML para alimentação dos gráficos.
4.5.2 Testes realizados à interface utilizador
Nesta iteração os testes incidiram nos componentes e nas interfaces
desenvolvidas para a BAM. Os testes consistiram na execução de determinadas
operações de forma a permitir avaliar por um lado, o comportamento da interface de
acordo com as operações realizadas, e por outro, evidenciar problemas na construção
da interface sendo este parâmetro baseado na facilidade ou dificuldade com que os
utilizadores realizavam as tarefas que lhes foram propostas.
Nas sessões de demonstração, foram sugeridas várias melhorias à interface e
novas formas de navegação para facilitar a comparação dos valores recolhidos. No
entanto e devido a limitações de tempo algumas destas sugestões e propostas de
alteração não foram executadas, tendo as correcções e outras acções decorrentes dos
testes incidido na correcção de funcionalidades e acções quebradas ao nível da
interface. As situações consideradas impeditivas da utilização da BAM foram todas
ultrapassadas.
Trabalho Realizado
64
4.6 Resultados Obtidos
Obtivemos assim uma plataforma que permite não só a recolha e identificação
de indicadores de negócio como também os relaciona com indicadores de consumo de
recursos hardware. Ao relacionar esta informação, novos dados são criados e
disponibilizados aos gestores e administradores de sistemas que, ao realizarem tarefas
de previsão de crescimento das bases de dados, dispõem agora de mais uma fonte de
dados para os auxiliar no fornecimento das respostas mais adequadas e na manutenção
dos níveis de desempenho dos sistemas.
Para o concretizar e para garantir um nível de fiabilidade razoável na
identificação das relações e projecções é necessário recolher dados de uma amostra
que seja minimamente representativa dos dados a analisar. Dada a duração e execução
do projecto a amostra de dados recolhida é limitada e iniciou-se no mês de Junho de
2009. Os resultados aqui apresentados resultam da análise a esse conjunto de dados e
que são concretizados no número de amostras apresentada na Tabela 4.
Tabela
prx_ind_1
prx_ind_1_daily
prx_ind_2
prx_ind_2_daily
Número de Registos
38407
125
38409
125
prx_ind_3
33465
prx_ind_4
5504
prx_ind_5
2789
prx_ind_5_daily
prx_ind_7
prx_ind_7_daily
124
33392
113
prx_ind_8
2500
prx_ind_9
1848
prx_ind_10
1311
Tabela 5. Número de registos por tabela
A Tabela 5 indica o número de registos recolhido em cada tabela de indicadores.
Trabalho Realizado
65
Com base no conjunto de dados recolhido, foi obtida uma estimativa do
consumo de recursos de hardware para cada tipo de projecto desenvolvido pela
organização em análise apresentada na Tabela 6. Esta tabela permite visualizar o
número de linhas e correspondente tamanho ocupado por cada tipo de projecto num
conjunto de três tabelas diferentes que armazenam os principais dados de planeamento
de um projecto. Assim, podemos observar, por exemplo, que a criação de um projecto
do tipo “Gastos Gerais” irá ocupar em média um total de 220 KBytes em termos de
espaço na tabela da base de dados monitorada. Este é, obviamente, um valor pouco
significativo, no entanto e como prova de conceito, demonstra a utilidade da
ferramenta e a possível extrapolação quando foram monitorizadas um conjunto mais
alargado de tabelas. Os valores recolhidos conjugados com o plano de negócio da
organização tornam-se num indicador de extrema importância para o gestor do
sistema quando é chamado a estimar o consumo de recursos do sistema aplicacional a
médio prazo.
Tipo de Projecto
MTL_MATERIAL_
TRANSACTIONS
PA_RESOURCE_
ASSIGNMENTS
PA_BUDGET_LINES
Linhas
KBytes
Linhas
KBytes
Linhas
KBytes
Apoio a Projectos
4
1.18
211
19.32
211
22.2
Cedencias - Cliente
0
0
255
23.4
255
26.89
Cedencias Internas
0
0
339
31.1
339
35.73
Concep e Desenv Ind
0
0
21
1.95
21
2.24
Concep e Desenvolvim
0
0
200
18.33
200
21.06
conv - AP CLIENTE
3
0.88
14
1.29
14
1.48
conv - CONTRATOS
9
2.62
95
8.75
95
10.06
conv - FABRICO
0
0
9
0.79
9
0.9
32
9.42
32
2.94
32
3.38
DFB - Cli. (Indir.)
0
0
25
2.32
25
2.67
Fabricos
0
0
11
0.97
11
1.11
Gastos Gerais
50
14.73
1.041
95.53
1.042
109.9
Imobiliz Incorporeo
0
0
34
3.12
34
3.59
Imobilizado
8
2.43
27
2.48
27
2.85
Imobilizado Corporeo
0
0
14
1.27
14
1.45
231
68.11
4.001
367.26
4.001
421.95
Reabastecimento
0
0
111
10.19
111
11.71
Reclamac?o
0
0
42
3.82
42
4.39
Suporte Frota
291
85.82
437
40.13
440
46.42
DFB-Fact. Cli.
0
0
598
54.93
598
63.11
conv - IMOBILIZADO
Manutenc?o
Tabela 6. Número de linhas e espaço ocupado em média por tipo de projecto em três tabelas
Trabalho Realizado
66
Um dos objectivos a que a BAM se propôs a atingir, foi conseguir demonstrar
que a execução de operações de negócio condiciona o consumo de recursos de
hardware. Na Figura 30 está representado um gráfico que demonstra uma evidência
desta situação. O gráfico obtido através da BAM, representa a variação do consumo
de processador, memória e espaço ocupado pela base de dados em função do aumento
do número de registos da tabela PA_PROJECTS_ALL ao longo do tempo. Os
círculos realçam as variações mais significativas. Podemos assim observar que, tanto
o consumo de processador como o consumo de memória e espaço ocupado, aumentam
com o aumento do número de registos da tabela PA_PROJECTS_ALL. Poderá existir
ruído que provoque alguma variação destes parâmetros coincidentemente com esta
situação. Contudo e neste caso é inequívoca a relação entre o aumento pontual de
volume da tabela e o consumo de recursos.
Como se pode observar nas setas (Figura 30), no dia 10-09-2009 a base de dados
tem 91.3% do espaço ocupado e no dia 18-09-2009 apresenta 91.91% de espaço
ocupado, ou seja, um aumento de 3GBytes tendo sido parte consumido por novos
segmentos das tabelas envolvidas no armazenamento de dados dos projectos. Este
resultado sugere que, naturalmente, o aumento do número de projectos, implica um
aumento de espaço ocupado.
Trabalho Realizado
67
Figura 30. Consumo de processador, memória e espaço ocupado pela base de dados em função do
número de linhas da tabela PA_PROJECTS_ALL
A BAM estima ainda que esse incremento é de 1.1 MBytes para os projectos do
tipo “Gastos Gerais”, 18.7 MBytes para os projectos do tipo “Manutenção” e 8
MBytes para os projectos do tipo “Suporte Frota”.
A Figura 31 apresenta um gráfico que ilustra o consumo de processador durante
o período compreendido entre as datas 22-07-2009 e 23-09-2009 e a Figura 32 mostra
um gráfico no qual está apresentado a evolução do número de registos da tabela
PA_RESOURCE_ASSIGNMENTS no mesmo período (as restantes tabelas
analisadas, apesar de não estarem no gráfico, apresentam um crescimento semelhante
a esta).
Trabalho Realizado
68
Figura 31. Consumo de Processador
Figura 32. Evolução do número de linhas da tabela PA_RESOURCE_ASSIGNMENTS
Analisando estas figuras, e de acordo com a premissa que a actividade nas
tabelas influencia o consumo de recursos, seria expectável que o consumo de
processador neste período fosse aumentando de uma forma gradual, pois o
crescimento de todas as tabelas é constante durante este período. Contudo, tal
Trabalho Realizado
69
variação não é inferida directamente. De facto o consumo de processador mantém-se
irregular com várias oscilações não sendo perceptível um aumento.
Esta situação poderá dever-se à reduzida quantidade da amostra que não permite
para já obter médias pesadas de consumo de Processador mensais comparáveis com o
crescimento das tabelas. Com este indicador seria possível uma análise mais rica que
permitisse uma distinção entre as situações que efectivamente têm impacto, com as
situações em que a afinação do sistema permite que o aumento do número de registos
não afecte directamente o consumo de processador e o desempenho do sistema.
Trabalho Realizado
70
Capítulo 5
Conclusões
Este projecto teve como principal objectivo o desenvolvimento de uma
aplicação que permitisse uma análise e monitorização avançada de bases de dados
Oracle. A BAM propôs-se, desta forma, a ser uma aplicação para analisar e
monitorizar não os rácios de actividade tradicionais de uma base de dados mas sim a
actividade funcional (em termos de operações do negócio) duma base de dados
Oracle, na qual seria possível obter dados que permitissem evidenciar o impacto desta
actividade funcional no consumo de recursos de hardware do sistema. Após nove
meses de trabalho e a sua concretização num dos clientes da Truewind, consideramos
o principal objectivo atingido.
No que diz respeito ao objectivo de trabalho para permitir a identificação dos
processos responsáveis pela degradação da performance da base de dados, apesar do
trabalho desenvolvido, não é ainda possível obter e analisar esta informação de forma
directa pela BAM. Derivado do impacto causado pelo arrastar de algumas tarefas e da
limitação de tempo disponível os objectivos mais estruturantes foram prioritizados.
Como obstáculos relevantes encontrados no desenvolvimento da BAM, há a
destacar a dificuldade no mapeamento dos conceitos de negócio no modelo de dados
das aplicações e o desenvolvimento do núcleo da aplicação. A dimensão do ERP
Oracle E- Business Suite, o vasto conjunto de estruturas de dados que inclui e a
reduzida informação da relação funcional e técnica, dificultou a identificação do
conjunto de estruturas relevantes. Apesar disso foi indiscutivelmente proveitoso o
tempo dispendido na investigação e aprendizagem destes conceitos.
71
Conclusões
72
Com a BAM, é agora possível analisar a evolução do consumo de recursos de
hardware e da sua relação com a execução de operações de negócio do cliente. No
cliente onde a BAM foi concretizada, foi possível determinar, por exemplo, que a
execução de um projecto de “Manutenção” é uma operação de negócio que envolve
registos em pelo menos 3 tabelas (as mais significativas), sendo que cada operação
deste tipo consome aproximadamente 856 KBytes e no que diz respeito ao impacto
deste tipo de projecto no consumo de processador, memória e memória virtual, não
foram detectadas alterações significativas com os dados disponíveis.
O estágio na Truewind promoveu o primeiro contacto que tive com o mundo da
das tecnologias de informação ao nível empresarial que foi extremamente positivo.
Além de ser uma empresa onde o incentivo à aprendizagem e às novas tecnologias é
constante, a nível de relações interpessoais é muito saudável. Sente-se um ambiente
familiar e o espírito de apoio e entreajuda entre os colaboradores é algo que gostaria
de destacar.
Os locais onde desempenhei tarefas contribuíram de forma determinante para a
minha formação como técnico e profissional na gestão e administração de tecnologia
Oracle. Considero importante ter-me sido dada a oportunidade de exercer tarefas em
diferentes clientes pois o contacto estabelecido com estes, permitiu o enriquecimento
do meu conhecimento relativamente a diferentes áreas de negócio.
5.1 Trabalho futuro
Tendo em vista a manutenção da BAM, foram identificadas algumas
funcionalidades que interessa desenvolver para complementar o seu funcionamento
actual.
A automatização de todo o processo de identificação de tabelas relevantes para
as operações de negócio é uma tarefa complexa e que dificilmente poderá ser
executada de forma totalmente automática. Contudo, a BAM carece de estruturas que
auxiliem esta identificação de forma mais simples e célere.
Conclusões
73
O processo de análise de impacto está ainda directamente dependente do
utilizador da BAM, que ao observar os gráficos retira conclusões. Idealmente a
automatização deste processo, também não poderá ser total, mas permanecem lacunas
que um motor de análise mais robusto poderia conseguir nomeadamente no
relacionamento dos indicadores mais básicos (por exemplo espaço ocupado)
É ainda um vector de desenvolvimento futuro a promoção de uma maior
interactividade do utilizador com os gráficos (adopção de uma nova biblioteca de
gráficos que ofereça funcionalidades mais poderosas), como por exemplo, operações
de aumento localizadas.
Conclusões
74
Bibliografia
1. Truewind. Truewind - Sistemas de Informação, S.A. [Online] 2009.
www.truewind.pt.
2. Oracle. Enterprise Manager. [Online] 2009.
http://www.oracle.com/enterprise_manager/index.html.
3. tools4ever. MonitorMagic Database Monitoring. [Online] 2009.
http://www.tools4ever.com/products/monitormagic/features/applicationmonitoring/database-monitoring/.
4. Oracle. Identity and Access Management Solutions. [Online] 2009.
http://www.tools4ever.com/.
5. Software, Quest. Systems Management. [Online] 2009. http://www.quest.com/.
6. Truewind. CMOS - Consola de Monitorização Operativa de Sistemas. 2007.
7. Wikipedia. ERP - Enterprise Resource Planning - Wikipedia, the free
encyclopedia. [Online] 2009.
http://en.wikipedia.org/wiki/Enterprise_resource_planning.
8. Oracle. Oracle E-Business Suite. [Online] 2009.
http://www.oracle.com/us/products/applications/ebusiness/index.htm.
9. Braude, Eric J. Software Enginnering, An object-Oriented Perspective. s.l. : John
Wiley & Sons, Inc., 2001.
10. Oracle. E-Business Suite 12i. [Online] 2009.
http://www.oracle.com/applications/e-business-suite-release.html.
11. Oracle. Oracle VM. [Online] 2009.
http://www.oracle.com/technology/products/vm/index.html.
75
Bibliografia
76
12. Oracle. Oracle Database. [Online] 2009.
http://www.oracle.com/database/index.html.
13. Oracle. Oracle Database Platform Guide 10g Release 2 (10.2) for Microsoft
Windows (32-ibit). Part Number B14304-02. 2005.
14. Oracle. Oracle Database Concepts 10g Release 2 (10.2). Part Number B1422002. 2005.
15. Oracle. Database Administrator´s Guide 10g Release 2 (10.2) Part Number
B14231-02. 2006.
16. Sourceforge. SNMPLink.org SNMP Portal. [Online] 2007. http://netsnmp.sourceforge.net/.
17. Archives, Internet FAQ. RFC 1157 - Simple Network Management Protocol
(SNMP). [Online] 2008. http://www.faqs.org/rfcs/rfc1157.html.
18. ChapNet. SNMP Network Management Protocols. [Online] 1999.
http://www.chapo.co.il/articles/snmp.
19. PHP. PHP: Hypertext Processor. [Online] 2009. http://www.php.net/.
20. w3schools. Javascript. [Online] http://www.w3schools.com/js/default.asp.
21. Oracle. Database SQL Reference 10g Release 2 (10.2). Part Number B14200-02.
2005.
22. Standards, World Wide Web Consortium - Web. Extensive Markup
Language(XML). [Online] 2009. http://www.w3.org/XML/.
23. Wikipedia. Linux Shell Scripting. [Online] 2009.
http://en.wikipedia.org/wiki/Shell_script.
24. Oracle. Business Activity Monitoring. [Online] 2009.
http://www.oracle.com/appserver/business-activity-monitoring.html.
25. Oracle. Oracle eTRM. [Online] 2005. http://etrm.oracle.com.
26. Fusion Charts. Fusion Charts Free. [Online] 2009.
http://www.fusioncharts.com/free/.
27. Flash. Adobe Flash Player. [Online] 2009.
http://www.adobe.com/products/flashplayer/.
Bibliografia
28. Primos. Oracle Databse Monitoring Software. [Online] 2007.
http://www.primos.nl/.
29. Confio. Database Monitoring & Performance Studio. [Online] 2010.
http://www.confio.com/English/Products/Ignite_for_Oracle.php.
77
Download