BACHARELADO EM ENGENHARIA DE COMPUTAÇÃO
BRENO COSTA RAMOS
DESENVOLVIMENTO DE UM SISTEMA DE ARMAZENAMENTO E PUBLICAÇÃO
DE DADOS DE PEQUENOS SISTEMAS METEOROLÓGICOS COM AQUISIÇÃO
AUTOMATIZADA, BASEADO EM SISTEMAS PIMS
FEIRA DE SANTANA
2012
DESENVOLVIMENTO DE UM SISTEMA DE ARMAZENAMENTO E PUBLICAÇÃO
DE DADOS DE PEQUENOS SISTEMAS METEOROLÓGICOS COM AQUISIÇÃO
AUTOMATIZADA, BASEADO EM SISTEMAS PIMS
Trabalho
de
Conclusão
de
Curso
apresentado ao Colegiado de Engenharia
de Computação como requisito parcial
para
obtenção
do
grau
de
Bacharel
em
Engenharia
de
Computação
pela
Universidade
Estadual
de
Feira
de
Santana.
Orientador: Prof. Msc. Thiago Cerqueira
de Jesus
FEIRA DE SANTANA
2012
de bem, integro e responsável, a meus pais
que dedicaram sua vida para o início do
meu projeto de vida.
Ao professor Mestre Thiago Cerqueira de Jesus, pela confiança, incentivo e
orientação neste trabalho.
Ao professor Doutor Germano Pinto Guedes, pelo auxílio fornecendo dados
para o trabalho.
A todos os colegas de Engenharia de Computação da UEFS, pela ajuda em
tópicos relacionados a este trabalho.
Este trabalho trata da pesquisa, modelagem e desenvolvimento de um sistema de
armazenamento de dados coletados em pequenas estações solarimétricas, baseado
em sistemas gerenciadores de informações de plantas industriais Plant Information
Manage Systems (PIMS). O projeto consiste no desenvolvimento de um sistema de
aquisição de dados da estação meteorológica presente no Laboratório de Energia
solar da UEFS que armazene estes dados de forma comprimida e exiba estas
informações via sistemas Web. Neste trabalho são apresentados todos os passos
para a produção desse sistema, começando por uma explicação sobre meteorologia
e aquisição de dados, e detalhando o funcionamento da estação de coleta de
dados meteorológicos. Em seguida é citada a teoria sobre bancos de dados em
meteorologia, sistemas PIMS e bancos de dados temporais. Expõe na sequência a
organização dos sistemas desenvolvidos e a sua modelagem em UML, e a modelagem
temporal do banco de dados.
Exibe também o processo de desenvolvimento
detalhando as ferramentas utilizadas, a implementação da comunicação entre os
sistemas desenvolvidos, a aplicação do algoritmo de compressão e a interação entre
o banco de dados e o sistema de exibição Web. Para validar o desenvolvimento foram
aplicados testes durante seis dias, gerando ao fim do processo dados para a análise
e discussão de resultados.
This work deals with the research, modeling and development of a storage system
data collected at small solarimetric stations based in plant information manage systems
(PIMS). The project consists of developing a data acquisition system of this weather
station in the Solar Energy Laboratory of UEFS, that stores data in compressed
form and display this information in Web systems. This paper presents the steps
for the production of this system, starting with an explanation of meteorology and
data acquisition, and detailing the operation of the station to collect weather data.
Then the theory is quoted about databases in meteorology, PIMS systems and
temporal databases. Exposes the organization of the systems developed and its UML
modeling, and modeling of temporal database. It also shows the development process,
detailing the tools used, the implementation of communication systems developed,
the application of compression algorithm and interaction between the database and
display system Web. To validate the development tests were applied for six days, after
generating process data for the analysis of results and discussion.
Figura 1
Exemplo de conversão de um sinal analógico passado à forma digital
15
Figura 2
Piranômetro Eppley
16
Figura 3
Estação atmosférica NOMAD II
17
Figura 4
Pirâmide de Automação
22
Figura 5
Arquitetura do sistema historiador PIMS
23
Figura 6
Algoritmo de compressão Boxcar/Backslope
25
Figura 7
Paralelogramo Formado no algoritmo Swinging Doors
26
Figura 8
Condição para salvar o valor no algoritmo Swinging Doors
27
Figura 9
Fluxograma Swinging Doors
28
Figura 10 Estratégia de mudança do archive primário
30
Figura 11 Archive PI
30
Figura 12 Dado relacional
32
Figura 13 Dado temporal
33
Figura 14 Notação para modelagem TempER
35
Figura 15 Arquitetura em três módulos
37
Figura 18 Diagrama de pacotes
39
Figura 19 Classes do pacote Coleta
40
Figura 20 Classes do pacote armazenamento
40
Figura 21 Classes do pacote Visualização
41
Figura 22 Diagrama de atividades da busca de valor real
42
Figura 23 Diagrama de atividades da busca de valor histórico
42
Figura 24 Diagrama de estados da coleta
43
Figura 25 Diagrama de estados do Armazenamento
44
Figura 26 Exemplo de sequência para consulta de um dado histórico
45
Figura 27 Diagrama de implantação do sistema
45
Figura 28 Arquivo de amostragem
47
Figura 29 Visão das tabelas do banco de dados criado
51
Figura 30 Ângulos formados por tags armazenadas
53
Figura 31 Paralelogramo formado pelo desvio sobre a reta
54
Figura 32 Exemplo de Timeline Chart
57
Figura 35 Gráfico da resposta para amostra 3 no terceiro dia
63
Figura 36 Gráfico da resposta para amostra 2 no quarto dia
64
Figura 37 Gráfico da resposta para amostra 1 no quinto dia
65
Tabela 1
Tabela comparativa de amostragem do dia 1
59
Tabela 2
Tabela de tempos de resposta do dia 1
59
Tabela 3
Tabela comparativa de amostragem do dia 2
60
Tabela 4
Tabela de tempos de resposta do dia 2
61
Tabela 5
Tabela comparativa de amostragem do dia 3
62
Tabela 6
Tabela de tempos de resposta do dia 3
62
Tabela 7
Tabela comparativa de amostragem do dia 4
63
Tabela 8
Tabela de tempos de resposta do dia 4
63
Tabela 9
Tabela comparativa de amostragem do dia 5
64
Tabela 10 Tabela de tempos de resposta do dia 5
65
Tabela 11 Tabela comparativa de amostragem do dia 6
66
1
INTRODUÇÃO. . . 11
2
FUNDAMENTAÇÃO TEÓRICA . . . 14
2.1 SISTEMAS METEOROLÓGICOS . . . 14
2.2 AQUISIÇÃO DE DADOS . . . 15
2.3 PROJETO RADIÔMETROS . . . 16
2.4 BANCO DE DADOS . . . 18
2.5 BANCO DE DADOS METEOROLÓGICO . . . 19
2.6 SISTEMAS PIMS . . . 21
2.7 SISTEMA PI OSISOFT . . . 29
2.8 BANCO DE DADOS TEMPORAL . . . 31
3
METODOLOGIA . . . 36
3.1 ORGANIZAÇÃO EM 3 MÓDULOS . . . 36
3.2 MODELO DE BANCO DE DADOS TEMPORAL . . . 36
3.3 MODELAGEM UML DOS SUBSISTEMAS . . . 37
4
DESENVOLVIMENTO . . . 46
4.1 SUB-SISTEMA SIMULANOMADII . . . 46
4.2 SUB-SISTEMA INTERFACE . . . 48
4.3 SUB-SISTEMA DE ARMAZENAMENTO . . . 50
4.4 SUB-SISTEMA DE VISUALIZAÇÃO WEB . . . 56
5
RESULTADOS. . . 58
5.1 TESTE DIA 1 - DESVIO DE 1% E 15 MINUTOS DE TEMPO MÁXIMO . . . 58
5.2 TESTE DIA 2 - DESVIO DE 1% E 30 MINUTOS DE TEMPO MÁXIMO . . . 60
5.3 TESTE DIA 3 - DESVIO DE 2% E 15 MINUTOS DE TEMPO MÁXIMO . . . 61
5.4 TESTE DIA 4 - DESVIO DE 2% E 30 MINUTOS DE TEMPO MÁXIMO . . . 62
5.5 TESTE DIA 5 - DESVIO DE 5% E 15 MINUTOS DE TEMPO MÁXIMO . . . 64
5.6 TESTE DIA 6 - DESVIO DE 5% E 30 MINUTOS DE TEMPO MÁXIMO . . . 66
6
CONSIDERAÇÕES FINAIS . . . 68
REFERÊNCIAS . . . 70
1
INTRODUÇÃO
As mudanças nas relações causadas, principalmente, pela massificação da
computação e surgimento dos novos meios de comunicação trazem a tona um novo
molde de sociedade denominada por estudiosos, como Silva (2007) e Pinto (2008),
de "Sociedade da informação".
Os autores mostram que neste novo modelo de
sociedade seus membros trocam grandes volumes de dados, em alta velocidade e
com informações das mais variadas áreas.
Dentre as áreas do conhecimento,
uma das que produzem dados
constantemente e em grandes quantidades é a meteorologia.
Nesta, se utilizam
cada vez mais estações de coleta de dados automatizadas que armazenam medições
precisas em frações de segundo, gerando uma grande quantidade de informações.
Como toda a comunidade científica tende à difusão do conhecimento, na meteorologia
não é diferente. Hoje em dia é possível se utilizar de estratégias de armazenamento
e exibição de dados via Web para que informações de uma estação meteorológica
cheguem a qualquer lugar do mundo. Com a informatização, os centros de pesquisa
deixam de ser somente pontos isolados, tornam-se centros de cooperação, quebrando
as barreiras geográficas (TADDEI, 2008).
Entretanto, existem problemas para a criação de sistemas de exibição de dados
coletados via Web. As informações meteorológicas podem ser capturadas em frações
de segundo, desta forma, um grande volume de dados é gerado ao fim de um
período de coleta relativamente extenso. Mesmo com as unidades de armazenamento
modernas que conseguem guardar grandes quantidades de dados, seu tratamento e
exibição serão prejudicados, como mostra Krusche (2003, p.2).
Organizar informações de forma racional e, principalmente, recuperá-las e distribuí-las com alto nível de controle, traz a tona à necessidade da implementação de novos conceitos de programação e gerenciamento de bancos de dados preocupados especialmente com uma melhor performace da estrutura e maior nível de segurança dos dados em questão.
Nesta mesma linha de coleta e exibição de grandes quantidades de dados,
outra área do conhecimento teve este problema reduzido. Na área de Eletrônica
Industrial, Sistemas e Controles Eletrônicos, em que os processos produtivos
automatizados geram grandes quantidades de dados a todo o momento, há o
surgimento de uma nova solução para armazenar informações de chão de fábrica
disponibilizando dados em sistemas de tempo real, de forma simples e transparente
ao usuário. Essa solução é chamada de Plant Information Manage Systems (PIMS),
sistemas gerenciadores de informações de plantas industriais. Os PIMS são formados
por sistemas de coleta, armazenamento, exibição e análise de dados oriundos de
sistemas de controle e supervisão industrial, que armazenam dados de instrumentos
de automação de forma comprimida, com perda mínima de informação, exibindo e
analisando-os (SOUZA; CORREIA; NETO, 2009; FILHO, 2011).
Embora a utilização de PIMS seja largamente difundida, ele se torna uma
solução inviável para pequenas aplicações, como uma estação meteorológica. Isso se
dá pelo fato de que para o funcionamento de um PIMS, uma infra-estrutura utilizando
sistemas industriais é necessária e, como a infra-estrutura industrial segue um padrão,
a utilização em sistemas meteorológicos automatizados de pequeno porte demandaria
um grande esforço e aquisição de uma nova infra-estrutura para sua adequação
(FILHO, 2011). Além disso, os custos dos sistemas de infra-estrutura de automação
e softwares PIMS poderiam tornar um projeto de utilização financeiramente inviável
para pequenas estações meteorológicas.
Analisando a viabilidade de implantação de um sistema que possa gravar e
analisar o histórico de informações meteorológicas, foi visto que é possível projetar
um sistema de armazenamento e exibição que utilize uma estratégia de compressão e
arquivamento baseado em sistemas PIMS, e que seja adequado às características de
uma estação meteorológica, como a do projeto radiômetros do Laboratório de Energia
Solar (Labensol) da Universidade Estadual de Feira de Santana (UEFS). Desta forma,
este trabalho mostra que um sistema PIMS simplificado é uma estratégia viável
para pequenas aplicações de aquisição de dados, adequando-se a uma infinidade
de aplicações, como no caso do armazenamento e exibição dos dados colhidos
pelo Labensol.
Para isso é necessário implantar todo o processo de registro da
informação, desde a aquisição de dados até a análise e exibição, passando pelo seu
armazenamento.
Este trabalho tem por objetivo desenvolver um sistema para coletar dados
meteorológicos, aplicar um algoritmo de compressão, armazenar essas informações
em um banco de dados e exibi-las via Web, baseando-se em sistemas PIMS. Para a
criação do sistema é necessário conhecer o funcionamento da estação automatizada
de coleta de informações solarimétricas da UEFS, com suas variáveis, configurações
e interfaces de comunicação. Conhecendo a estação, é possível criar um sistema
de interface capaz de receber dados via interface serial, fazer pequenos tratamentos
e repassar os dados via socket para um sistema de compressão e armazenamento.
Para desenvolver o sistema de compressão e armazenamento, é necessário conhecer
algoritmos de compressão e estratégias de armazenamento de dados temporais,
aplicando este conhecimento com tecnologias como a linguagem Java e o banco de
dados MySQL. Com os dados armazenados em um banco de dados se torna possível
desenvolver um sistema para exibir as informações utilizando ferramentas de exibição
Web, simples e interativas.
Este trabalho está dividido em seis capítulos, incluindo do primeiro capítulo de
introdução. O segundo capítulo, de fundamentação, cita todas as teorias relacionadas
ao projeto deste sistema, a aquisição de dados em estações meteorológicas, o
armazenamento de informações em bancos de dados de forma relacional e temporal,
e o funcionamento e organização de sistemas PIMS. O capítulo três, metodologia,
apresenta o projeto do sistema a ser desenvolvido, primeiro citando a tecnologia de
apresentação dos modelos, em seguida apresentando a modelagem em subsistemas
baseada em PIMS, o modelo do banco de dados a ser utilizado e por fim os
diagramas modelados das interações entre os usuários e o sistema, e os diagramas
do funcionamento e interações dos subsistemas.
O capítulo quatro, desenvolvimento, apresenta todas as tecnologias utilizadas
e os detalhes do desenvolvimento de cada um dos subsistemas. No quinto capítulo,
resultados, são apresentados os resultados para seis dias de testes do sistema,
observando a compressão e os tempos de resposta do banco de dados. O último
capítulo, considerações finais, apresenta uma discussão sobre todo o processo
de pesquisa, desenvolvimento e resultados de testes do sistema, considerando as
vantagens da utilização do sistema desenvolvido.
2
FUNDAMENTAÇÃO TEÓRICA
Este trabalho se fundamenta na busca de uma solução de software para
armazenamento e exibição de informações da estrutura de coleta de dados
solarimétricos do Labensol. Neste capítulo será mostrada a teoria envolvida no projeto
do sistema.
2.1
SISTEMAS METEOROLÓGICOS
Segundo Saúde (2011),
a meteorologia é a "ciência que estuda as
características da atmosfera, tais como sua temperatura, densidade, ventos, nuvens,
precipitações, e outros fenômenos atmosféricos, que objetiva considerar o tempo
climático em termos de influências externas e de acordo com as leis básicas da
física". Hoje em dia os estudos meteorológicos têm influência sobre várias áreas do
conhecimento, sendo de grande importância para o desenvolvimento da agricultura,
navegação marítima, operações militares e a vida social. (METEOROLOGIA, 2011)
Na agricultura, por exemplo, é possível com o uso de sistemas meteorológicos,
especificar melhores épocas de plantio para determinadas culturas, fazer previsão
de produtividade e controlar níveis de umidade e temperatura em estufas. Além da
agronomia, outras atividades econômicas também podem utilizar a meteorologia. Na
construção civil as obras são planejadas com base na previsão de chuvas; na saúde é
possível alertar a população sobre riscos de doenças por baixa umidade relativa do ar
ou altos índices de radiação ultravioleta; na produção energética é possível descobrir
melhores áreas para produção de energia eólica ou solar. (LUIZ, 2011)
Na medição de eventos meteorológicos, ou seja, qualquer variação no tempo
ou clima, são utilizados instrumentos dos mais variados tipos que podem medir as
variáveis meteorológicas, como temperatura, pressão atmosférica, umidade relativa
do ar e radiação solar.
Entre os instrumentos de medição estão, termômetros e
termógrafos para medição de temperatura, barômetros para medição de pressão
atmosférica, psicotrópicos, higrômetros e higrófafos para medir a umidade relativa do
ar, e periliômetros, piranômetros, heliógrafos e radiômetros para medições de radiação
solar, entre outros equipamentos. (VAREJÃO-SILVA, 2006)
A meteorologia atual se utiliza cada vez mais de sistemas de medição
automatizados e independentes da ação humana, que fazem a aquisição e
armazenamento dos dados em sistemas computadorizados atrelados ou embarcados,
podendo ser descarregados em computadores para posterior análise.
2.2
AQUISIÇÃO DE DADOS
Segundo Ferraz (2008, p. 32), ”um sistema básico de aquisição de dados
é composto por quatro partes essenciais: sensores/transdutores, condicionador de
sinais, conversor analógico/digital (A/D) e programa de aquisição.”
Um sensor é
um dispositivo que irá converter algum forma de energia produzida pelo estímulo ou
parâmetro físico, em um sinal elétrico análogo.
O termo transdutor é usado para designar alguns tipos de sensores.
Geralmente são utilizados para converter algum parâmetro físico, tal como força,
pressão, ou temperatura, em um sinal elétrico análogo e proporcional ao parâmetro
original (FERRAZ, 2008). Estes possuem características especificas como, precisão,
resolução, off-set e tempo de resposta, por isso, se faz necessária para cada aplicação
a busca do dispositivo que melhor se ajusta.
Um condicionador de sinal é um sistema eletrônico utilizado para ajustar o sinal
analógico antes da conversão digital. Podem conter vários componentes entre eles,
amplificadores, filtros e isoladores. Esses componentes ajustam a amplitude do sinal,
filtram os ruídos e fazem o isolamento do sistema para que diferenças de tensões e
correntes não possam danificar nenhum dos dispositivos.
O conversor A/D é um sistema que permite que um sinal analógico seja utilizado
como entrada gerando um sinal digital de saída correspondente. O sinal digitalizado
se diferencia do analógico por apresentar-se em saltos periódicos e não de forma
contínua, essa diferença é apresentada na figura 1.
Figura 1: Exemplo de conversão de um sinal analógico passado à forma digital
Fonte: Ferraz (2008)
Um programa de aquisição de dados é um sistema responsável pela leitura
de um sinal digital, seu armazenamento e utilização em interação com outro
sistema. Esse programa é construído para, coletar dados de sistemas eletrônicos
ou eletromecânicos, exibindo esses dados em tempo real, além de gerar relatórios a
cerca desses dados.
Um dos equipamentos utilizados nas medições solarimétricas da UEFS é o
piranômetro, apresentado na figura 2. Esse é um instrumento que faz a medição
de ensolação.
Quando excitado por radiação solar, gera uma corrente elétrica
proporcional à intensidade irradiada.
Figura 2: Piranômetro Eppley
Fonte: Varejão-Silva (2006)
Para o caso específico deste trabalho o sistema aquisição faz parte da rede de
radiômetros do Labensol.
2.3
PROJETO RADIÔMETROS
Na UEFS, o Labensol faz estudos relacionados a ensolação e a radiação no
semi-árido baiano, sendo um dos seus focos de pesquisa o projeto radiômetros.
Segundo a equipe de pesquisadores o objetivo do projeto é o
desenvolvimento de instrumentação dedicada ao monitoramento remoto de variáveis atmosféricas: sensores, eletrônica digital e analógica; transmissão de dados em rede; Aplicação de modelos físicos para descrever a propagação da luz na atmosfera; Desenvolvimento e otimização de sistemas para utilização da energia solar. (LABENSOL, 2011)
Hoje, o Labensol utiliza uma estação de coleta remota fabricada pela empresa
Secondwind, chamada Nomad II, apresentada na figura 3. Segundo SECONDWIND
(2011), a estação de coleta Nomad II provê flexibilidade, simplicidade e economia.
Ela pode interagir com vários sensores presentes no mercado, além de possuir oito
entradas analógicas específicas para conexão direta de sensores atmosféricos. A
estação se caracteriza por permitir uma independência de fonte de energia já que ela
possui um sistema de alimentação solar acoplado para o armazenamento de energia.
Figura 3: Estação atmosférica NOMAD II
Fonte: SECONDWIND (2011)
O sistema de Coleta Nomad II pode se comunicar via porta serial, porta USB,
ou rede modbus. Seus dados são armazenados em cartões de memória que podem
ser descarregados em um computador com software específico.
Um dos problemas foco deste projeto é a centralização da informação.
O
sistema de monitoramento solar armazena os dados em cartões de memória ou
envia esses dados via comunicação serial por um software proprietário. O fato de
ter dados armazenados em um computador sem acesso à internet torna mais difícil a
divulgação destas informações tanto para o meio acadêmico, quanto para a sociedade
em geral. Por este motivo é necessário um sistema que armazene estes dados para
disponibilização para todo o mundo via Web. Para isso, é possível armazenar os dados
em um banco que possa ser acessado a partir de sistemas Web.
2.4
BANCO DE DADOS
Segundo Heuser (2001, p. 14) um banco de dados é um "conjunto de dados
integrados que tem por objetivo atender a uma comunidade de usuários", utilizando
características de um sistema gerenciador de banco de dados (SGBD), que é definido
como "software que incorpora as funções de definição, recuperação e alteração de
dados em um banco de dados."
O grande problema da não utilização de bancos de dados em uma determinada
área é a redundância não controlada.
Isto acontece quando um mesmo dado
é armazenado em lugares diferentes por vários usuários, tornando o retorno da
informação inconsistente. A solução para este problema é o compartilhamento em
bancos de dados. (HEUSER, 2001)
A utilização de bancos de dados para armazenamento de informações
acessadas por vários usuários é unanimidade nos dias atuais e traz uma série de
vantagens, como: manutenção simplificada, uma vez que os programas deixam de
englobar todas as funcionalidades de armazenamento passando a responsabilidade
para o Sistema Gerenciador de Banco de Dados (SGBD); aumento da acessibilidade,
os mesmos dados podem ser acessados por uma infinidade de pessoas e sistemas;
aumento da disponibilidade, os SGBDs podem funcionar em servidores disponíveis na
rede individuais ou agrupados em clusters, o que diminui as falhas de acesso; dentre
outras.
No mercado,
existem vários de SGBDs,
que podem utilizar diversas
características de modelagem, como a relacional, que é a mais comum no mercado, a
orientada a objetos e a objeto/relacionais.
Segundo Takai, Italiano & Ferreira (2005, p. 8) "a estrutura fundamental do
modelo relacional é a relação (tabela). Uma relação é constituída por um ou mais
atributos (campos) que traduzem o tipo de dados a armazenar. Cada instância do
esquema (linha) é chamada de tupla (registro)."Para trabalhar com o modelo relacional
deve-se evitar a repetição de informação, a incapacidade de representar parte da
informação e perda de informação, a fim de garantir a segurança dos dados.
Pelo fato da simplicidade e usabilidade os bancos de dados são utilizados pelas
mais diversas áreas fazendo o armazenamento de diferentes tipos de dados. Algumas
destas áreas são destacadas por Heuser (2001): a área de vendas, com a cotação
de produtos e disponibilidade; a área de produção, no planejamento e controle do que
se produz; a área de compras, com acompanhamento de preços, mapeamento de
fornecedores e controle de necessidades de estoque. Outra área que se utiliza de
bancos de dados específicos é a meteorologia, como descrito a seguir.
2.5
BANCO DE DADOS METEOROLÓGICO
Bancos de dados meteorológicos mostram-se cada vez mais úteis ao
armazenamento de informações geradas em estações meteorológicas.
O grande
diferencial destes sistemas é que devem ser adequados ao tipo de informações
meteorológicas que coletam, já que não existe um padrão de estação a ser seguido.
(FERREIRA; CARVALO; FILHO, 2000)
De acordo com Ferreira, Carvalo & Filho (2000), para o desenvolvimento
do banco de dados meteorológicos são utilizadas ferramentas comuns ao
desenvolvimento de qualquer outro software.
O que há de particular nesse tipo
de banco é a estrutura de tratamento e armazenamento desenvolvida para otimizar
leituras e inserções no banco de dados.
O sistema de armazenamento meteorológico necessita de três softwares
fundamentais,
o
sistema
de
coleta
e
pré-processamento,
o
sistema
de
armazenamento e as ferramentas que se servem do banco de dados.
Este
modelo de implementação traz uma série de benefícios,
compartilhamento de dados: eliminaram-se as cópias redundantes dos dados observados, criadas em função de necessidades específicas dos grupos de trabalho; os dados passaram a residir, de forma definitiva, apenas no banco de dados;
Integração: devido ao compartilhamento de dados, vários processos passaram a trocar informações através do banco de dados, que passou a servir como elemento de integração entre eles;
Eficiência na recuperação dos dados: o tempo para recuperação dos dados passou a ser substancialmente menor do que anteriormente, quando do uso de varredura seqüencial em arquivos convencionais contendo observações;
Sofisticação na consulta aos dados: foram viabilizadas consultas mais elaboradas como, por exemplo, aonde e quando uma variável meteorológica ultrapassou um determinado valor (se existir uma coluna desnormalizada correspondente); (FERREIRA; CARVALO; FILHO, 2000)
Um banco de dados meteorológico pode armazenar informações de
fontes como, estações meteorológicas e satélites, em um sistema centralizado
disponibilizando os dados para acesso por uma infinidade de aplicações. (SILVA;
BORGES; KRUSCHE, 2010)
A centralização das informações meteorológicas traz uma série de benefícios,
com a exibição Web da meteorologia e climatologia, desta forma acesso a informações
colhidas em pesquisas cientificas é democratizado chegando a toda população. Esses
bancos de dados podem tornar ferramentas de apoio à gestão pública, onde as
informações ajudam na criação de medidas para o beneficiamento da população de
uma região monitorada.
O sistema de compartilhamento de dados climatológicos constitui-se num mecanismo que viabiliza a publicação e consulta deste tipo de dado na Web. Tais dados são necessários como entrada em sistemas de apoio a gestão de recursos hídricos. Estes sistemas auxiliam aos gestores públicos na definição acerca de políticas públicas nesta área. Além do mais a disponibilização de dados climatológicos na Web democratiza a distribuição do conhecimento tanto para pesquisadores como para o público em geral. (LIRA; ARAÚJO, 2009)
O
armazenamento
de
dados
é
importante
também
na
geração
de
conhecimento. Dados meteorológicos minerados e cruzados podem ser utilizados
para obtenção de um modelo da probabilidade de incidência de algumas doenças e
pragas agrícolas, estes modelos podem ser encontrados a partir do cruzamento de
características meteorológicas com o período de incidência da doença ou praga na
cultura. (MEIRA; RODRIGUES, 2005).
Isso mostra o papel de bancos de dados meteorológicos como ferramentas de
suporte à tomada de decisão na agricultura, principalmente na prevenção de sinistros
causados por mudanças climáticas, trazendo ao produtor uma capacidade de aumento
produtivo. (PIMENTEL; CUNHA; PAVAN, 2001)
Com os sensores meteorológicos que conseguem adquirir informações em
frações de segundos as estações meteorológicas automatizadas podem medir uma
infinidade de variáveis, por exemplo, temperatura máxima, mínima e média do ar,
umidade relativa e média do ar e pressão atmosférica, gerando um grande conjunto
de informações a serem processadas. (SOUZA; GALVANI; ASSUNÇÃO, 2002)
Com o aumento da precisão e quantidade de informações geradas com a
automação é necessário dar ênfase à visão de performance dos sistemas criados.
Há uma necessidade de implementar conceitos de programação e gerenciamento
eficazes para que o sistema possa ser considerado seguro. Os principais conceitos
vistos são confiabilidade do sistema operacional escolhido para o servidor, serviço
web estável e sistema de banco de dados veloz e robusto. Com este conjunto se
espera dar ao usuário integridade, disponibilidade e autenticidade, que são pilares da
segurança da informação. (RODRIGUES; KRUSCHE, 2003)
Para obter melhor performance e segurança no armazenamento de
informações pode-se utilizar um modelo já existente no mercado que mantém dados
de sensoriamento eletrônico armazenados por anos e de forma segura e transparente
ao usuário, os sistemas PIMS.
2.6
SISTEMAS PIMS
A indústria possui problemas de isolamento de informações em ilhas, ou seja
as informações coletadas pelos sistemas automatizados de controle de produção
em uma fáabrica não conseguem ser colhidos e tratados em conjunto, fazendo com
que dados isolados não gerem informações úteis para o gerenciamento da indústria.
Além disso, a quantidade de dados de processo a serem armazenadas se torna
grande. Segundo Andrade et al. (2011) "o problema é que a quantidade de dados
provenientes das células de produção é muito grande exigindo um eficiente processo
de compressão dos dados antes de seu armazenamento."
Neste cenário, o PIMS surge como solução para findar o problema de
armazenamento das informações de processos. Segundo Urbano (2009) "o PIMS
nasceu na indústria de processos contínuos mais propriamente na indústria química e
petroquímica para solucionar o problema de fragmentação de dados, proporcionando
uma visão unificada do processo, eliminando ao acesso aos dados das ilhas de
automação” e por sua caracteristica de flexibilidade foi absorvido por outros ramos
industriais.
O sistema PIMS é definido por Carvalho et al. (2005) como, "sistemas de
aquisição de dados que, basicamente, recuperam os dados do processo residente
em fontes distintas, os armazenam em um banco de dados único e os disponibilizam
através de diversas ferramentas".
Urbano (2009) cita que, "de acordo com a norma internacional ISA-95 que
rege um padrão para integração entre os sistemas de chão de fábrica e os sistemas
corporativos, o PIMS é uma arquitetura de camada 2", como apresentado na figura
4 onde acima dos PIMS estão os sistemas corporativos de gestão industrial, abaixo
os sistemas de controle e supervisão da manufatura e no mesmo nível os sistemas
especialistas de execução da produção.
Com este sistema é possível visualizar e organizar dados históricos em tempo
real de forma que estes dados tragam informações úteis para a gestão do processo
industrial.
Além disso, podem-se montar tabelas, gráficos de tendências, telas
sinópticas e relatórios dinâmicos, concentrando a informação e possibilitando uma
visão unificada de todo processo produtivo.
Figura 4: Pirâmide de Automação
Fonte: Urbano (2009)
um suporte robusto e confiável para ajudar na tomada de decisão sobre o processo
produtivo, podendo adotar melhores estratégias para redução de custos e aumento da
produtividade.
Além de armazenar dados de instrumentos ligados diretamente a fontes como,
Programable Logic Controller (PLCs), sistemas Supervisory Control & Data Aquisition
(SCADA) ou Sistema Digital de Controle Distribuído (SDCD), é possível fazer cálculos
de variáveis de produção e armazenar os resultados como variáveis distintas. Sendo
também possível utilizar todos os dados armazenados como base para obtenção de
conhecimentos através de análise de mineração, cubos de dados, entre outras.
Os sistemas PIMS utilizam tags, também chamados de pontos, como unidade
de armazenamento principal de dados de instrumento de medição em um sistema
automatizado. Cada tag é formada por um nome indicador, como uma chave primária
no banco de dados temporal, que armazena todos os registros de valor do instrumento
em um determinado momento e o carimbo de tempo (timestamp) de cada valor
armazenado, que é a data e hora em que o determinado evento ocorreu.
Além
de nome, valor e tempo, a tag possui também o nome do instrumento na rede de
automação ou variável que queira ser armazenada, descrição, área de processo, tipo
do dado e mais algumas informações de qualidade. (ANDRADE et al., 2011)
Em um banco de dados relacional é possível definir a chave primária e criar
correlações entre tabelas através desta chave. "No PIMS a chave primária é definida
pelo nome da tag e os dados organizados de acordo com o timestamp” (URBANO,
2009). Com esta estrutura temporal, onde o armazenamento e a leitura do banco
de dados é seqüencial, as consultas se tornam mais rápidas, já que o período de
consulta é bem definido no tempo, não sendo necessário comparar vários índices em
uma tabela. Somente é necessário retornar todo um trecho entre dois timestamps.
Em geral, a estrutura básica dos PIMS consiste em três módulos: servidor
principal, servidores de comunicação e estações clientes. A figura 5 apresenta o
fluxo dos dados por esta estrutura em três módulos adotada em sistemas PIMS, mais
especificamente no sistema PI da Osisoft. Na figura o PI Server é o servidor principal,
a Interface Node é o Servidor de comunicação e o Smart Client e Thin Client, são as
estações cliente.
Figura 5: Arquitetura do sistema historiador PIMS
Fonte: OSISOFT (2009)
Os servidores de comunicação, geralmente chamados de interfaces, recolhem
os dados da supervisão ou controle da planta e enviam-nos para o armazenamento
no servidor principal de banco de dados. Geralmente os sistemas PIMS possuem
interfaces com os sistemas de controle automatizado presentes no mercado, mas na
maioria dos casos fazem aquisição de dados de supervisão via protocolo OLE for
process control (OPC). OPC é um padrão de acesso à dados em tempo real sob o
sistema operacional Windows, baseado na tecnologia Object Linking and Embedding/
Distributed Component Object Model (OLE/DCOM) da Microsft.
O OPC surgiu da necessidade de se estabelecer comunicação entre diferentes
fontes de dados em uma rede de controle industrial.
O padrão OPC estabelece
as regras para que sejam desenvolvidos sistemas com interfaces comuns para
comunicação dos dispositivos de campo (CLP, sensores, etc.)
com sistemas de
monitoração, supervisão e gerenciamento.
O servidor principal é responsável pelo armazenamento dos dados vindos
dos sistemas de coleta em um banco de dados temporal centralizado, fazendo o
tratamento de compressão em tempo real destes dados antes da gravação. Nas
estações cliente podem ser instaladas ferramentas para acessar o servidor principal,
que por sua vez retornam dados históricos e em tempo real de forma gráfica. A partir
de ferramentas clientes é possível analisar as diversas variáveis do processo.
Os sistemas PIMS fazem o armazenamento dos dados de forma especial,
diferente dos bancos de dados convencionais, armazena em bancos de dados
temporais como compactação em tempo real com baixa perda de informação e maior
velocidade de resposta a consultas. Para a compactação são utilizados algoritmos
com taxa de compressão típica de 10:1, podendo chegar até a 20:1.
Estas características fazem com que dez a vinte anos de produção de um
sistema possam ser armazenadas em um disco rígido típico, dependendo do caso,
por exemplo, o PIMS que armazena as informações de produção termelétrica de
uma grande empresa brasileira que tem aproximadamente sessenta mil tags em sua
base de dados, armazena os dados de sua produção anual em aproximadamente
110 Gigabytes, se não estiver utilizando uma compressão de 20:1 o armazenamento
seria de 2,2 TeraBytes. Levando isso para a meteorologia seria o fim do trabalho de
recuperação de backup de informações antigas. (ANDRADE et al., 2011; CARVALHO
et al., 2005; URBANO, 2009)
O autor Carvalho et al. (2005) define bem nas páginas 3 e 4 a compressão de
dados em sistemas PIMS.
Ao invés de comprimir dados usando um algoritmo de codificação de repetição (run leght encoding), típica de compressores de texto, ou resumir os dados em um segmento pelos valores dos extremos do período e por figuras auxiliares como valores médio mínimo e máximo no intervalo, que causam grande perda de informação intermediária; os PIMS desenvolveram algoritmos mais engenhosos. Ao invés de amostrar os dados a intervalos fixos onde a única maneira de melhorar a compressão é aumentando o período de amostragem, o que implica muitas vezes em perda de informações, o sistema PIMS amostram a curva no ponto certo, ou seja o valor é armazenado quando existem mudanças significativas acontecendo.
Um sistema de compressão eficiente e eficaz é de fundamental importância
para sistemas historiadores de dados de automação.
Em PIMS a informação é
recuperada com integridade e com grande velocidade. Analisando a estratégia de
compressão, os PIMS possuem as seguintes características:
• Taxa de compressão alta;
• Reconstrução simples dos dados;
• Algoritmo veloz na compressão e reconstrução dos dados;
Os algoritmos mais utilizados para fazer a compressão em PIMS são o
Boxcar/Backslope e o Swinging Doors. O algoritmo Boxcar/Backslope possui critérios
que definem se a informação recebida será salva, o Boxcar e o Backslope. Basea-se
ainda em três parâmetros: o desvio de compressão, o tempo máximo de compressão
e a qualidade do dado, que são utilizados para configuração dos critérios Boxcar e
Backslope.
Sempre que o tempo transcorrido entre o último valor armazenado e o último valor recebido for maior que o tempo máximo de compressão, o último valor recebido será armazenado. Se a qualidade do último dado recebido mudar, o valor anterior ao último recebido será armazenado. A cada novo dado que é recebido, são verificados os dois critérios. Se ambos os critérios forem violados, então o dado será armazenado no Banco de Dados. Violar o critério Boxcar significa que o último valor recebido apresentou um desvio maior que o limite do desvio de compressão, em relação à reta paralela ao eixo do tempo, e que passa pelo último valor armazenado. Violar o critério Backslope significa que o último valor recebido apresentou um desvio maior que o limite do desvio de compressão, em relação à reta definida com os dois últimos valores armazenados. Se apenas um dos critérios for violado, nenhum dado será armazenado. (ANDRADE et al., 2005)
A figura 6 apresenta o funcionamento do algoritmo, sendo que o critério Boxcar
se baseia na reta paralela à linha do tempo que passa pelo último ponto preto, que foi o
último dado salvo. Caso o próximo valor esteja fora das retas formadas paralelamente
à do último valor salvo, com distância igual ao desvio de compressão, o valor violou o
critério Boxcar, como indicado na figura 6 pela primeira bola em branco.
O critério Backslope utiliza a reta formada pelos dois últimos valores salvos, os
dois pontos pretos, como base. Caso o valor seguinte esteja fora das retas formadas
paralelamente à reta base, com distância igual ao desvio de compressão, o valor violou
o critério Backslope, como indicado na figura 6 pela segunda bola em branco. O valor
a ser salvo é a bola colorida, que viola os dois critérios de compressão.
Figura 6: Algoritmo de compressão Boxcar/Backslope
Fonte: Almeida et. al. (2005)
de sistemas PIMS. Segundo os autores Andrade, Souza e Feijó ”Esse algoritmo é
classificado como um compressor com perda de informações, ou seja, os dados
reconstituídos não são idênticos aos dados originais.” Um dos grandes diferencias
desse algoritmo é a compressão em tempo real, pois não há necessidade de
janelamento em um período, sendo que à medida que chegam da interface de coleta
os dados são armazenados de forma comprimida.
"O algoritmo contém três parâmetros que são definidos para cada variável
cujas informações serão comprimidas. Esses parâmetros são: tempo mínimo de
compressão, tempo máximo de compressão e desvio de compressão.” (ANDRADE
et al., 2011)
"O algoritmo Swinging Doors cria uma área de cobertura no formato de um paralelogramo e com largura igual ao dobro do desvio de compressão, este paralelogramo se estende desde o último valor armazenado até o último valor recebido. Se qualquer um dos valores recebidos entre o último armazenado e o último recebido ficar fora da área de cobertura, então o valor anterior ao último recebido será armazenado no Banco de Dados. O último valor recebido é sempre armazenado se o tempo transcorrido desde o último valor armazenado for maior que o tempo máximo de compressão”. (ANDRADE et al., 2005)
Na figura 7 é apresentado o paralelogramo que é utlizado como base para fazer
as análises no algoritimo Swinging Doors. A reta formada pelo último valor salvo, a
bola preta, e o último valor recebido, bola colorida, servem de base para as laterais do
paralelogramo, a reta superior com distância da reta base igual à soma do desvio e a
inferior com distância da reta base igual à subtração do desvio.
Figura 7: Paralelogramo Formado no algoritmo Swinging Doors
Fonte: Andrade et. al. (2005)
Na figura 8 é apresentado o próximo valor que será salvo, é a terceira bola
branca, que é exibida fora do paralelogramo.
Figura 8: Condição para salvar o valor no algoritmo Swinging Doors
Fonte: Andrade et al. (2005)
A figura 9 apresenta um fluxograma baseado no algoritmo Swinging Doors
definido no trabalho de Urbano (2009).
O autor Carvalho et al. (2005, p.2) cita vários benefícios do uso de sistemas
PIMS:
• Centralização de dados de processo: Os sistemas PIMS concentram toda informação em uma única base de dados de forma a permitir uma melhor correlação e análise sobre estes dados.
• Democratização da informação: O PIMS possibilita que qualquer usuário tenha acesso aos dados da planta instantaneamente. • Visualização do processo produtivo em tempo real: Tal
visualização pode ser feita de várias formas, como gráficos de tendências, gráficos XY, relatórios dinâmicos, telas sinóticas, aplicações Web e etc.
• Maior interatividade com os dados do processo: Ferramentas simples mas poderosas permitem realizar, entre outras funcionalidades cálculos, estudos estatísticos e lógica de eventos, utilizando os dados do processo.
• Histórico de dados: Capaz de armazenar até 15 anos de dados de processo graças a eficiência do seu algoritmo de compressão que pode chegar a uma taxa de 20:1.
• Receita de processo: Os sistemas PIMS permitem identificar e armazenar os dados correspondentes ao melhor resultado obtido na produção, para que estes sirvam como referência às intervenções futuras.
Hoje em dia, os historiadores de dados, que estão deixando de ser somente
ferramentas de armazenamento e visualização, tornando-se uma plataforma para
o desenvolvimento de aplicativos em tempo real, tais como, "controle estocástico
da qualidade em tempo real, gestão de indicadores, gestão de ativos de rede,
combinação de dados, consolidação de dados dos equipamentos como tempo de
funcionamento, tempo de paradas, correlação de variáveis, análise de bateladas,
Figura 9: Fluxograma Swinging Doors
Fonte: Baseado em Urbano (2009)
rastreabilidade, análise de produção dentre outras funções.” (URBANO, 2009)
Os sistemas PIMS destacam-se também como ferramenta de fundamental
importância para manutenção dos sistemas industriais, fazendo gestão, manutenção
de ativos e geração de cronograma de manutenção corretiva. Este tipo de análise traz
a diminuição da variabilidade do produto, extensão da vida útil dos equipamentos e
diminui as chances de ocorrência de acidentes de trabalho por quebra de máquinas.
(SOUZA; CORREIA; NETO, 2009)
Os sistemas PIMS armazenam informações em bancos de dados proprietários
e com caracteristicas específicas de cada fabricante. Não há um padrão de sistema de
armazenamento e consulta de dados a ser seguido. Há somente um conceito utilizado
no desenvolvimento para armazenamento de dados de automação com segurança,
portabilidade e alta velocidade.
2.7
SISTEMA PI OSISOFT
Um exemplo de sistema de armazenamento em PIMS é o Sistema PI Osisoft,
que armazena dados em arquivos que podem ser fixos ou dinâmicos. Para arquivos
fixos o tamanho é sempre o mesmo, independentemente da quantidade de dados que
contêm. O tamanho de um arquivo dinâmico cresce à medida que se obtém os dados.
O arquivo de recepção de dados atual é chamado de archive pPrimário. Quando
o archive primário é completado, um shift (mudança de posição) ocorre e o arquivo
seguinte disponível torna-se o novo archive primário. (OSISOFT, 2009)
Como apresentado na figura 10, no momento do shift, o archive piarch.003
deixa de ser o primário, passando o archive piarch.004 à essa condição. Porém o
piarch.003 continua mantido como um archive secundário no servidor. Se o gestor de
sistema não criar novos archives neste servidor PI, no próximo shift o novo archive
primário será o mais antigo, o piarch.001. Para que isso não ocorra o servidor pode
ser configurado para criar um novo archive a cada shift.
Enquanto há um shift de archive o usuário não tem permissão para adicionar,
editar ou excluir tags. Enquanto o shift ocorre, o PI armazena os dados de entrada
na fila de eventos até que esta rotina seja completada e, em seguida, os eventos que
estavam na fila são salvos no novo archive primário. (OSISOFT, 2009)
Cada archive contém os eventos armazenados por um período de tempo
especificado, definido pelo horário de início e fim do archive.
Cada archive PI
armazena eventos como registros de dados, que podem ser primários ou de overflow
(estouro). (OSISOFT, 2009)
Cada tag no banco de dados tem um registro primário alocado em cada
archive. Registros primários são armazenados no início do arquivo e com o tempo
vão acumulando os valores e datas para determinada tag. Quando o registro principal
enche, os dados passam a ser armazenados em um registro de estouro no archive.
Figura 10: Estratégia de mudança do archive primário
Fonte: OSISOFT (2009)
Registros de estouro começam a ser criados do final do archive para o início, como
apresentado na figura 11, onde as colunas iniciais do archive file são registros
primários e as colunas finais, são registros secundários. Cada registro é definido
pelo sistema com um kilobyte de espaço. (OSISOFT, 2006)
Figura 11: Archive PI
Fonte: OSISOFT (2006)
Uma tag pode ter o número de registros de estouro que forem necessários.
Por exemplo, uma tag que recebe eventos em uma taxa lenta nunca alocará um
registro de estouro, enquanto que pontos que recebem eventos em um ritmo rápido
podem precisar alocar muitos registros de estouros. PI usa registros de índice para
acompanhar dados de vários registros de estouro para uma tag. (OSISOFT, 2006)
O sistema da Osisoft, apresentado, trata do armazenamento dos seus dados
em arquivos bem definidos. A manipulação, inserção, leitura e atualização destes
dados é feita em rotinas e subsistemas bem definidos pelo fabricante. Para uma
estrutura simplificada deste projeto não é necessário o desenvolvimento de um
sistema de banco de dados temporal em arquivos com seus subsistemas, já que
existem SGBDs de uso livre no mercado que fazem este papel, somente sendo
necessário especificar um modelo de banco de dados temporal baseado no conceito
de historiamento de dados de automação dos PIMS. Essa modelagem temporal para
banco de dados será apresentada a seguir.
2.8
BANCO DE DADOS TEMPORAL
O tempo é um dos aspectos mais difíceis de lidar em aplicações que incorporam
características do mundo real, como sistemas de banco de dados. Hoje não há grande
suporte às características temporais da informação em linguagem de consulta para
gerenciamento de dados. Muitas extensões temporais do modelo relacional foram
propostas e algumas delas são implementadas. (MAHMOOD; BURNEY; AHSAN,
2010)
Para a implementação de um sistema baseado em armazenamento PIMS,
podem ser utilizadas as estratégias de modelagem propostas no trabalho de Oliveira
(2001) - Temporal Entidade Relacionamento (TempER), e no trabalho de Mahmood,
Burney & Ahsan (2010). Em resumo, são variações do modelo de banco de dados
relacional com associação de atributos temporais.
O modelo de dados relacional só suporta funcionalidades para acesso a um
único estado do mundo real (o mais recente), conjunto chamado snapshot. No entanto,
existem muitas aplicações que precisam ter acesso não só ao estado mais recente,
mas também ao passado, como em históricos de pacientes e em análises financeiras.
A noção de permanência dos dados deve ser alargada para todo o período histórico
abrangendo todos os seus estados.
Para superar essa desvantagem, o modelo
relacional foi estendido para uma forma que suporte a história em aplicações no
mundo real, trazendo gestão de dados em tempo variável.
Esta nova perspectiva possui aplicações diversas, como financeiras, sistemas
de inventário, pedidos de seguro, reserva de sistemas, sistemas de gestão da saúde,
bases de dados para assistência médica e sistemas de apoio à decisão. Esforços
para incorporar o domínio temporal em sistema de gestão de banco de dados estão
em curso há mais de um década e dezenas de modelos temporais foram propostos.
(MAHMOOD; BURNEY; AHSAN, 2010)
Segundo Oliveira (2001), a diferença básica entre um banco de dados relacional
e um banco de dados temporal é a dimensão do tempo. No banco de dados relacional
as tabelas se desenvolvem em duas dimensões: as linhas (instâncias dos dados)
e as colunas (atributos). A dimensão temporal traz a associação do timestamp a
cada valor. Desta forma, o que era alterado, geralmente perdendo o valor no modelo
tradicional, agora é armazenado como uma nova linha onde a informação é associada
a um tempo, o que faz com que seja armazenado todo o histórico do determinado
atributo, dando uma terceira dimensão, temporal, ao banco de dados. Isso não quer
dizer que no modelo temporal os dados não podem ser alterados, mas quando ocorrer
serão corrigidos em um ou mais instantes na linha do tempo.
Dados temporais têm a sua própria semântica e organização, requerendo
algumas modificações do modelo relacional. Atributos em uma relação podem ser
variáveis no tempo (temporais) ou não variáveis no tempo (atemporais). Por exemplo,
para o atributo salário de um empregado existe uma associação de tempo variável,
pois, geralmente, os valores salariais mudam com o passar do tempo. O atributo
de sexo do empregado, ao contrário, não se associa a um tempo, não variando.
(MAHMOOD; BURNEY; AHSAN, 2010)
As figuras 12 e 13 traduzem o conceito de dimensão temporal. Na primeira, o
dado é mostrado sem a dimensão do tempo; na segunda, a cada momento, o dado é
armazenado com valores diferentes criando um histórico dos dados com o passar do
tempo.
Figura 12: Dado relacional
Fonte: Edelweiss (2011)
Até agora o modelo relacional é o método mais eficaz para a organização de
grandes quantidades de dados e ainda é a tecnologia amplamente aceita entre os
fornecedores e empresas em todo o mundo.
A abordagem de inserção de datas em tuplas foi adotada na definição do
modelo temporal para manter a simplicidade e essência do modelo relacional, pois
desta forma é possível manter a característica relacional com o armazenamento das
variações do dado no tempo. A proposta lógica do modelo de dados temporal é
composto por três construções principais, ou seja, a entidade (temporal ou atemporal),
Figura 13: Dado temporal
Fonte: Edelweiss (2011)
atributo (variável no tempo e não variável no tempo) e relação n-ária (temporal,
não-temporal ou semi-temporal).
Seguem-se algumas restrições para garantir a consistência do esquema:
• Tipo de entidade Temporal pode combinar atributos variáveis enão variáveis no tempo.
• A Tupla pode ser composta por atributo variável no tempo mais a chave primária que é um atributo não variável.
• Uma relação n-ária determina se o esquema é atemporal, se os atributos de duas tabelas relacionadas não variam no tempo; temporal se os atributos de duas tabelas relacionadas variam no tempo; ou semi relacional-temporal se o atributo de somente uma das tabelas varia no tempo;(MAHMOOD; BURNEY; AHSAN, 2010)
Um dos modelos temporais propostos como base para este projeto é o
TempER que, segundo Oliveira (2001) "surge com a intenção de suprimir os pontos
desfavoráveis identificados nas propostas de modelagem temporal pesquisadas na
literatura". O modelo TempER, como outros modelos temporais, agrega a dimensão
temporal a um objeto simplesmente relacional apresentando entidades, relações e
atributos.
A primitiva temporal utilizada é o elemento temporal, um valor de tempo discreto
sempre associado ao valor que é alterado naquele instante de tempo. Uma das
características que aproximam o modelo de PIMS e o TempER é o eixo do tempo,
existe somente uma linha do tempo onde são armazenados os valores no momento
da alteração. Não existe tempo de validade ou de transação para uma informação.
O valor sofre alteração em instantes no tempo, se mantendo nessa condição
até a próxima modificação. Diferente de outras abordagens, que devem garantir o
período no tempo em que o valor existe ou é válido, sendo necessário armazenar uma
tempo inicial e um final para cada alteração.
Uma vantagem do modelo é a capacidade de associar tanto entidades
temporalizadas, quanto não temporalizadas, apesar de todas as entidades nesse
modelo apresentarem a dimensão temporal.
Para fazer a diferenciação entre as
entidades que mudam ou não com o tempo são feitas duas classificações. Transitórias,
são entidades temporalizadas que existem com suas modificações durante todo um
período de tempo, "são aquelas cuja validade temporal é um subconjunto de pontos
do tempo do eixo temporal". (OLIVEIRA, 2001)
As entidades e relações perenes apresentam características fixas, sem
modificações durante o tempo e sem armazenamento dos dados temporalizados.
Segundo Oliveira (2001) "São aquelas cuja validade temporal é exatamente igual a
todo o eixo temporal."... "a sua validade temporal inicia no primeiro ponto do eixo
temporal e se estende até o último. Normalmente as entidades que o modelador não
necessita ou não deseja associar ao tempo são consideradas como perenes".
Em relacionamentos temporais são relacionadas duas entidades no âmbito da
dimensão temporal, "este tipo de relacionamento serve para modelar as associações
das quais se necessita conhecer a validade temporal. Os relacionamentos temporais
só são válidos nos momentos especificados pelos seus rótulos temporais” (OLIVEIRA,
2001). Já os relacionamentos atemporais não levam em consideração o tempo, não
apresentando momento inicial ou final.
Os relacionamentos temporais se diferenciam dos antemporais por apresentar
restrições de cardinalidade com base no tempo. A cardinalidade é demonstrada por
Oliveira (2001). Para relacionamentos intemporais:
(0,1) a entidade pode não participar em relacionamentos; se participa, limita-se a no máximo uma vez;
(0,N) a entidade pode não participar em relacionamento, ou pode participar mais de uma vez;
(1,1) a entidade participa uma única vez do relacionamento;
(1,N) a entidade participa no mínimo uma vez no relacionamento, podendo participar mais vezes.
Para relacionamentos temporais:
(0,1) a entidade pode não participar em relacionamentos; se participa, limita-se a no máximo uma vez a cada momento do tempo;
(0,N) a entidade pode não participar em relacionamento, ou pode participar mais de uma vez a cada momento do tempo;
(1,1) a entidade participa uma única vez do relacionamento, a cada momento do tempo;
(1,N) a entidade participa no mínimo uma vez em relacionamento, podendo participar mais vezes a cada momento do tempo.
A figura 14 descreve a notação utilizada para modelagem pelo TempER.
Enquanto um modelo relacional apresenta um retângulo como entidade e um losango
como relacionamento, o TempER adiciona a estas marcas, sendo ’Tr’ para um
elemento transitório e ’P’ para um elemento perene.
Figura 14: Notação para modelagem TempER
Fonte: Oliveira (2001)
Os atributos temporais são aqueles que armazenam as mudanças ocorridas
na linha do tempo.
Eles armazenam todo o histórico de alterações dos valores,
associando a cada mudança uma marca de tempo.
Os atributos atemporais
armazenam valores que podem ser alterados sem a preservação os antigos, como
no modelo convencional Entidade Relacionamento.
Em geral as entidades devem possuir um identificador, que deve ser único
e normalmente utilizado como chave primária. Independente do tipo, as entidades
podem combinar atributos transitórios e perenes. Já nas relações, ou se utilizam
atributos transitórios ou perenes, de acordo com a sua característica de temporalidade.
Como explicado anteriormente, em sistemas temporais o tempo de validade
da informação não é considerado. Os dados temporais serão representados como
pontos na linha do tempo mostrando o momento de atualização da informação. A
granularidade na linha do tempo é variável, ou seja, o tempo entre dois dados
consecutivos pode variar de segundos a anos, assim como em sistemas PIMS.
3
METODOLOGIA
Esta seção descreve a metodologia do desenvolvimento do projeto do sistema,
sendo apresentados os modelos que basearam esse processo de desenvolvimento.
Para as etapas de análise e projeto foi criada uma modelagem do sistema em Unified
Modeling Language (UML, traduzindo, Linguagem de modelagem unificada), que é
um padrão de modelagem amplamente aceito e empregado na demonstração dos
padrões e interações de software antes do desenvolvimento. Essa modelagem é
apresentada nesta seção, assim como a modelagem do banco de dados utilizado
e a visão geral do sistema(OMG, 2010)
3.1
ORGANIZAÇÃO EM 3 MÓDULOS
O sistema é organizado como um PIMS, possuindo 3 módulos como já
explicado na seção 2.6.
O módulo de coleta, o módulo de armazenamento e o
módulo de exibição, essa organização é apresentada na figura 15. Fazem parte do
módulo de coleta, a estação meteorológica Nomad II, que é a fonte de dados, e a
interface de coleta, podendo funcionar em qualquer máquina do sistema. O módulo de
armazenamento funciona no servidor principal que executa o sistema de compressão
e o banco de dados da aplicação, além disto, neste mesmo servidor é executado o
serviço web que contém as páginas do módulo de exibição, funcionando como as
ferramentas cliente do sistema PIMS.
3.2
MODELO DE BANCO DE DADOS TEMPORAL
A modelagem do banco de dados feita neste trabalho utiliza a abordagem
TempER, contendo cinco entidades (como apresentado na figura 16): NODE, é uma
entidade perene que representa o sistema de coleta de dados; DATASOURCE, é uma
entidade perene que representa de qual fonte o nó de coleta vai receber o dado;
SNAPSHOT, é uma entidade perene que representa a tabela com os dados mais
recentes recebidos; TAG é uma entidade perene que armazenará informações de
parametrização dos tags; e a entidade VALORES, que é transitória e armazena todo
o histórico de valores recebidos por cada tag.
Para este modelo, um NODE possui nenhum ou vários DATASOURCES, que
por sua vez possui um ou vários TAGS, que possuem um SNAPSHOT, e um ou vários
valores.
Figura 15: Arquitetura em três módulos, Coleta, Armazenamento e Exibição
Fonte: Próprio autor
3.3
MODELAGEM UML DOS SUBSISTEMAS
O diagrama de casos de uso apresenta as formas de interação dos atores com
o sistema. Dentro do projeto existem dois atores: o usuário e o gerente. O usuário
possui duas ações possíveis no sistema: buscar valor de um tag em tempo real e
buscar o histórico de um tag, como apresentado na figura 17. Além de buscar tags o
gerente possui os papeis de criar, editar e deletar tags e pointesources.
O sistema é composto por pacotes com funções específicas, por isso na
modelagem as estruturas são divididas e cada um destes pacotes contém o conjunto
de classes necessárias para desempenhar corretamente sua função no sistema. A
figura 18 apresenta o diagrama de pacotes de classes do sistema. O primeiro pacote
é o interface, que possui a função de coletar os dados da fonte e enviar ao pacote de
armazenamento e é executado no servidor de coleta de dados possuindo três classes:
PrincipalInt, Coleta e Transmissão.
O segundo pacote é o de armazenamento que é responsável por compactar e
guardar as informações no banco de dados. Ele é executado no servidor de dados e
Figura 16: Modelo de banco de dados Temporal
Fonte: Próprio autor
Figura 17: Modelagem de casos de uso do sistema
Fonte: Próprio autor
possui três classes: Principal, Leitura e Compressão.
O terceiro pacote é o de visualização que tem como característica principal
exibir a informação desejada ao usuário.
Ele é executado por um serviço web
presente no mesmo servidor do banco de dados e possui as classes PrincipalWeb,
ConsultaHistórico e ConsultaTempoReal. À frente serão detalhadas as classes de
cada módulo.
Figura 18: Diagrama de pacotes
Fonte: Próprio autor
No módulo de coleta, a classe PrincipalInt tem como variável o atributo
EntradaUsuário que é lido e passado como parâmetro para os métodos ParaColeta()
e IniciaColeta(). A classe Coleta lê o dado pelo método Leitura() e valida o dado a ser
armazenado, retornando-o para a classe Transmissão que possui a função de enviar a
informação ao sistema de armazenamento utilizando o método EscreveModLeitura().
O pacote coleta é melhor apresentado na figura 19.
O módulo de armazenamento, apresentado na figura 20, interage diretamente
com o banco de dados. A classe Principal executa os métodos IniciaArmazenamento()
e ParaArmazenamento().
A classe Leitura aguarda os dados chegarem da
interface pelo método LeColeta().
A cada dado recebido é executado o método
TesteParalelogramo() que faz a análise de compressão com base no algoritmo
Swinging Doors.
Este lê o desvio definido para a tag e o tempo máximo de
compressão, cria o paralelogramo de análise e armazena o dado comprimido.
Figura 19: Classes do pacote Coleta
Fonte: Próprio autor
Figura 20: Classes do pacote armazenamento
Fonte: Próprio autor