SIRC 2012 XI SIMPÓSIO DE INFORMÁTICA DA UNIFRA www.sirc.unifra.br 23 a 25 de Outubro de 2012 Realização:
Apoio:
Patrocínio:
Coordenação Geral
Tiago Rios da Rocha
Comissão Organizadora
Alessandro André Mainardi de Oliveira
Alexandre de O. Zamberlan
Ana Paula Canal
Guilherme C. Kurtz
Gustavo Cantarelli
Henrique Gabriel Gularte Pereira
Mirkos Ortiz Martins
Reiner F. Perozzo
Ricardo G. Martini
Simone Regina Ceolin
Sylvio Vieira
Tiago Rios da Rocha
Comissão Avaliadora
Dr. Afonso Sales (UFRGS)
Dr. Alvaro Miyazawa (University of York)
Dr. Antonio Schneider Beck Filho (UFRGS)
Dr. André Cordenonsi (UFSM)
Ms. Célio Trois (UFSM)
Dr. Edson Prestes (UFRGS)
Dr. Eugenio Simonetto (UFSM)
Dr. Felipe Meneguzzi (PUCRS)
Dr. Giovani Librelotto (UFSM)
Dra. Giliane Bernardi (UFSM)
Ms. Guilherme Dhein (UFSM)
Dr. José Eduardo Bágio (UFSM)
Dra. Juliana Vizotto (UFSM)
Dr. Leandro Indrusiak (University of York)
Dr. Leonardo Freitas (University of Newcastle)
Dr. Leonardo Brenner (Université de Reims Champagne-Ardene)
Dra. Leila Ribeiro (UFRGS)
Dra. Lizandra Manzoni Fontoura (UFSM)
Dr. Luis Alvaro de Lima e Silva (UFSM)
Dr. Luciano Ost (IRMM)
Ms. Marcos Cassal (UFSM)
Dr. Mateus Beck (UFSM)
Dr. Osmar Marchi dos Santos (UFSM)
Ms. Pryscilla Dora Selister (UFCG)
Dr. Ricardo Czekster (PUCRS)
Ms. Rogério Turchetti (UFSM)
Dra. Thais Webber (PUCRS)
Ms. Walter Priesnitz Filho (UFSM)
Anais do XI Simpósio de Informática da UNIFRA - SIRC2012
ISSN: 2175-0955 Santa Maria - RS, Outubro de 2012
Análise do Gerenciamento de Transações Concorrentes
no SGBD Firebird
.com
Daniel Pezzi da Cunha*
*
CCAET – Universidade de Cruz Alta (UNICRUZ)
www.unicruz.edu.br – Cruz Alta – RS – Brasil
[email protected]
Abstract. The use of database organizations, especially those that handle
large size information, has direct to new challenges and therefore the
improvement of data management techniques. However, many database
administrators are faced with complaints about the failures occurrence in
operations and the low performance of databases. This paper outlines the
results of study on the transactional handling DBMS Firebird and critical
analysis of the impact attributions imposed on transactions concurrency
situations.
Resumo. O uso de banco de dados pelas organizações, especialmente aquelas
que manipulam grandes volumes de informações, tem conduzido a novos
desafios e, por conseguinte, ao aperfeiçoamento das técnicas de
gerenciamento de dados. No entanto, muitos administradores de bancos de
dados se deparam com reclamações acerca da ocorrência de falhas em
operações e do baixo desempenho de bancos de dados. Neste artigo são
expostos os resultados de uma pesquisa sobre o controle transacional do
SGBD Firebird e análise crítica do impacto das atribuições impostas a
transações mediante situações de concorrência.
1. Introdução
O uso de banco de dados pelas organizações, especialmente aquelas que manipulam
grandes volumes de informações, tem conduzido a novos desafios e, por conseguinte, ao
aperfeiçoamento das técnicas de gerenciamento de dados (Silberschatz et al, 1999;
Elmasri & Navathe, 2011).
No entanto, muitos administradores de bancos de dados (DBA) recebem
reclamações acerca da ocorrência de falhas em operações e, consequentemente, do
baixo desempenho de bancos de dados. Muitas vezes persistem questionamentos quanto
a capacidade de controle do DBA e os reflexos de configurações consideradas rígidas na
eficácia geral de um Sistema Gerenciador de Banco de Dados (SGBD).
A aplicação adequada do controle sobre transações em banco de dados é de
suma importância, uma vez que possibilita a potencialização das ações ACID1
comumente praticadas nas camadas de gerenciamento dos SGBD distribuídos (Ozsu &
Valduriez, 1999). O conhecimento e controle por parte de um DBA pode trazer diversos
benefícios como a manutenção da estabilidade dos sistemas de informação em
1
ACID: Atomicidade, Consistência, Isolamento e Durabilidade
3
Anais do XI Simpósio de Informática da UNIFRA - SIRC2012
ISSN: 2175-0955 Santa Maria - RS, Outubro de 2012
detrimento de transações concorrentes e, sobretudo, na garantia da consistência dos
dados. Por outro lado, pode conduzir a severas consequências em caso de uso incorreto
ou inadequado.
Neste artigo são expostos os resultados de uma pesquisa acerca do controle
transacional do SGBD Firebird, Software Livre amplamente difundido em sistemas de
informações corporativos. A pesquisa também envolveu o desenvolvimento de um
aplicativo educacional, distribuído livremente, que pode ser adotado como ferramenta
complementar no ensino superior, especialmente na disciplina de Banco de Dados. Em
termos científicos foi realizada uma análise crítica do impacto das atribuições impostas
a transações mediante situações de concorrência.
2. Controle de concorrência no Firebird
O controle de concorrência no SGBD Firebird, segundo Firebird (2012) Transaction Handling2 - tem a finalidade de assegurar a coerência do banco de dados,
baseando-se nas propriedades ACID, a partir da configuração de parâmetros, que afetam
a simultaneidade das transações. Os quatro parâmetros existentes são: isolation level,
lock resolution mode, access mode e table reservation.
DevMedia (2006) complementa que a arquitetura do Firebird e Intebase é do
tipo versioning, cuja abordagem obriga que qualquer operação em banco de dados,
incluindo consultas, seja transacional.
No Firebird adota-se a Multi Generational Architecture (MGA), que armazena
as alterações diretamente no banco de dados, juntamente com informações para reverter
ao estado original (backversions), dispensando log de transações. Com isso, versões
temporárias de dados modificados são criadas e permanecem “ativas”, permitindo que
fiquem acessíveis – com seu conteúdo original – a outras transações, de maneira
consistente (Vinkenoog 2012).
Os backversions são criados na execução de update ou delete. Um mesmo
registro pode ter diferentes versões, sendo que cada nova versão contém um link
apontando para a anterior, formando uma cadeia de versões. Em caso de rollback o
começo se dará pela versão mais recente (Cantu, 2005).
Como no Firebird o controle transacional é feito pela aplicação cliente, não há
como iniciar ou encerrar uma transação a partir de triggers ou stored procedures. Na
ocorrência de algum conflito transacional o Firebird gera deadlock, o qual pode ser
identificado por uma aplicação cliente, que tomará as providências necessárias e
notificar ao usuário da ocorrência de uma falha.
3. Estudo de caso
A aplicação prática dos conceitos teóricos relativos a controle transacional foi realizada
sobre a base de dados Matriculas, criada apenas para o propósito da realização de testes
experimentais (de carga e de controle transacional).
Com o propósito da realização de testes quantitativos na base de dados
Matriculas foi desenvolvido, na linguagem Delphi, um protótipo intitulado Database
Charge Test, o qual foi disponibilizado livremente para o propósito de ensino em
2
Transaction Handling está disponível em http://www.firebirdsql.org/manual/isql-transactions.html
4
Anais do XI Simpósio de Informática da UNIFRA - SIRC2012
ISSN: 2175-0955 Santa Maria - RS, Outubro de 2012
http://www.4shared.com/rar/K3zysTqZ/DatabaseChargeTest.html. A partir deste
aplicativo foram realizadas variadas baterias de testes, dentre os quais a inclusão de 100
mil tuplas por tabela, com dados aleatórios, com emprego do Firebird 2.5 (32bits) e 2.0
(64bits) para Windows.
Além do sistema Database Charge Teste, optou-se por utilizar a ferramenta
IBExpert3 (da HK-Software) para as configurações DDL na base de dados e a
ferramenta gráfica de monitoramento chamada Sinática Monitor For Firebird4 (da
Sinática), que possibilitou o acompanhamento dinâmico das transações.
Quanto aos computadores utilizados nos testes práticos, optou-se por um desktop
típico de escritório, configurado com Windows XP 32bits, CPU Intel Celeron 1,8GHz e
2GB de memória e um laptop com Windows Seven 64bits, AMD Turion X2 DualCore
Mobile 2,1 GHz e 4GB de Memória Principal.
4. Resultados das experimentações práticas
Nas simulações práticas, o banco de dados foi “colocado a prova” com execução
simultânea de múltiplos update e delete de usuários com papéis (roles) diferenciados. A
configuração do banco de dados ocorreu em tempo de execução, por meio do Firebird
ISQL Tool (console disponível junto à instalação do Firebird), mediante a execução
intensa de transações a partir do Database Charge Test.
A seguir são descritas as linhas de comando aplicadas a base de dados
Matriculas e os respectivos resultados obtidos conforme cada tipo de controle
transacional disponível no banco de dados analisado:
Tentativa de dirty read
Configuração da transação:
set transaction read write isolation level read uncommitted;
O modo read uncommitted enquadra-se no tipo chamado “dirty read” (ou
“leitura suja”), o qual permite que uma transação faça leituras de todas as modificações
realizadas por outra transação, mesmo que estas não tenham sido confirmadas. No teste
prático foi executada uma sequência de updates (t1) não confirmadas. Mesmo com o
modo read uncommitted ativado não foi possível fazer leituras “dirty read”. Assim, foi
necessário o término da transação (commit) para que o comando de leitura retornasse
um resultado com os valores modificados por t1. Mesmo que, em teoria o Firebird
ofereça Arquitetura Multigeracional, não suporta este nível de isolamento, restringindose ao protocolo conservador.
Modo no wait
Configuração da transação:
set transaction read write isolation level read committed no record_version no wait;
A função record_version é um sub-modo de read commited, onde a última
versão confirmada de uma determinada tupla pode ser lida imediatamente. Na opção no
3
4
IBExpert é disponibilizada nas versões free, trial e customer em http://ibexpert.net/ibe/.
Sinática Monitor é disponibilizada na versão trial em http://www.sinatica.com/
5
Anais do XI Simpósio de Informática da UNIFRA - SIRC2012
ISSN: 2175-0955 Santa Maria - RS, Outubro de 2012
record_version pode-se optar pelo tipo bloqueio no wait, o qual não esperará até que
uma transação não confirmada alcance o status de concluída. Nos testes práticos, na
tentativa de leitura de determinada tupla que estava com uma transação update não
confirmada em andamento, o Firebird retornou imediatamente um erro do tipo
deadlock, negando acesso ao conteúdo solicitado. No entanto, outro teste mostrou que
não apenas a tupla em modificação é bloqueada, mas sim todos os demais registros da
tabela, mesmo que estes não estejam sob efeito de qualquer transação.
Configuração de lock timeout
Ao se atribuir o modo wait para uma transação, esta não conseguirá obter
resultados em consultas até que as transações update e delete tenham sido concluídas
(committed) por outras transações.
Configuração da transação:
set transaction read write isolation level read committed no record_version wait lock
timeout 10;
Uma forma de evitar que uma consulta fique por muito tempo (talvez
indeterminado) em modo de espera aguardando um commit de outra transação é pela
atribuição de um timeout. Dessa forma, uma consulta ficará em modo de espera (wait)
até um tempo, em segundos, determinado. No experimento prático foi definido um
prazo de 10 segundos. Após a conclusão desse período, o Firebird retornou um erro, que
pode ser mapeado e tratado pela interface.
Modo snapshot
Configuração da transação:
set transaction read write isolation level snapshot table stability;
O modo snapshot permite que uma transação obtenha uma imagem completa
dos registros de uma base de dados e incapacita o acesso a possíveis modificações nos
dados feitas por transações concorrentes. Este nível de isolamento tem aplicabilidade
em relatórios onde se queira fazer avaliações repetitivas sobre os dados armazenados em
um determinado instante de tempo.
No experimento prático desta pesquisa também foi testada a configuração table
stability, a qual, além da propriedade do snapshot citada, impede que outras transações
realizem operações de escrita. Este nível de isolamento não é adequado para situações
de uso habitual, mas sim em fase de prototipação de sistemas ou em curtos e isolados
períodos de tempo, uma vez que causaria erros de escrita em cascata para usuários
finais.
Pré-alocação
Configuração da transação:
set transaction isolation level read committed reserving alunos for protected write;
A condição de pré-alocação, atribuída por meio do modo reserving, possibilita a
definição dos níveis de isolamento shared ou protected para tabelas em bancos de
dados. No nível compartilhada (shared) uma ou mais tabelas (especificadas pelo
usuário) podem ser compartilhadas entre transações. Já no nível protegida (protected),
6
Anais do XI Simpósio de Informática da UNIFRA - SIRC2012
ISSN: 2175-0955 Santa Maria - RS, Outubro de 2012
são bloqueadas para outras transações. Em ambas é preciso definir o tipo de préalocação: escrita (write) ou leitura (read). O bloqueio de uma ou mais tabelas ocorre de
maneira que somente a transação que o ativou possa executar determinadas operações.
Nos testes práticos a tabela Alunos foi colocada em processo contínuo de
múltiplas e diferenciadas modificações. Em determinado momento, com as operações
update em andamento, foi atribuído o nível de isolamento protegido, o qual interrompeu
momentaneamente as transações update. As operações foram automaticamente
reativadas mediante o comando:
set transaction isolation level read committed reserving alunos for shared write;
5. Conclusões
Em muitas ocasiões as reclamações de lentidão com o Firebird estão relacionadas com o
controle incorreto das transações (ou falta dele). No entanto, o mecanismo de
gerenciamento de transações do SGBD Firebird oferece uma gama de funcionalidades
importantes que podem oferecer um bom nível de controle de consistência se aplicado
adequadamente.
O Firebird emprega de forma padrão o nível de isolamento read committed wait,
ou seja, caso uma transação ocorra enquanto existe uma modificação não confirmada, o
mesmo irá aguardar até a ocorrência de um commit ou rollback. Em consequência, o
usuário final poderá ficar por um longo período sem obter os dados solicitados por uma
consulta. Nesse caso é de suma importância a implementação de um timeout em
transações para evitar casos de inanição de aplicações.
Dentre as constatações desta pesquisa, destaca-se quanto ao bloqueio causado
pelo sub-modo record_version no wait, uma vez que não apenas a tupla em situação de
modificação é bloqueada para consultas, mas sim todos os demais registros da tabela,
mesmo que estes não estejam sob efeito de qualquer transação. A não espera até que
uma transação não confirmada alcance o status de concluída é uma configuração
benéfica para manter um bom nível de escalonamento. Entretanto, o bloqueio integral
da tabela (constatado neste experimento) pode ser considerado um problema, pois
impediria inúmeros acessos a itens de dados que não incorreriam na perda da garantida
de manutenção das propriedades ACID do banco de dados. Por consequência, essa
condição poderia ainda comprometer significativamente o funcionamento de um
sistema de informação que produza múltiplas ações a partir de uma única solicitação de
usuário.
Outro ponto analisado foi a ativação do modo wait para uma transação. Isso
pode ser de grande valia, principalmente para evitar o acesso a dados inválidos oriundos
de modificações nos dados. Contudo, pode acarretar uma situação de inanição,
mantendo uma transação ativa por um período de tempo indeterminado. Uma alternativa
para minimizar seu efeito bloqueante é optar pela inclusão de um tempo de espera finito
(timeout), assim garantiria uma melhor interação entre o banco de dados e a interface de
um aplicativo.
Quanto ao recurso snapshot, amplamente empregado por administradores de
bancos de dados, é um instrumento útil para situações onde seja preciso a geração de
relatórios parciais. Mas, caso seja constatado a existência de algum problema nos dados
durante uma inspeção periódica, como por exemplo, a observação de que um produto a
7
Anais do XI Simpósio de Informática da UNIFRA - SIRC2012
ISSN: 2175-0955 Santa Maria - RS, Outubro de 2012
venda esteja com validade vencida, o usuário não teria controle sobre possíveis
modificações desde a geração da imagem da base de dados pelo snapshot até a
constatação de erro nos dados. Nesse caso, seria oportuna a ativação conjunta do modo
table stability, que causaria situações de deadlock devido ao bloqueio de modificações,
mas que poderia evitar danos ainda maiores, como a compra desse produto em situação
irregular por diversos consumidores.
No quesito de teste de pré-alocação, constatou-se que o Firebird se comportou
de maneira estável e confiável, garantindo um controle de concorrência satisfatório em
uma condição de séries intensas de operações de escrita. Em termos práticos, pode-se
afirmar que o emprego de pré-alocação em sistemas corporativos dinâmicos, como sites
com inúmeros acessos a base de dados pode ser muito importante para se obter controle
transacional. Cabe salientar que o uso desse tipo de ação precisa restringir-se a situações
especiais, uma vez que pode acarretar em desfazimentos de transações em cascata.
Por fim, conclui-se que o SGDB Firebird possibilita um bom controle
transacional, atingindo as expectativas iniciais da pesquisa. Dispõe dos principais
mecanismos necessários ao gerenciamento de operações, é estável e com critérios
rígidos de manutenção da consistência. No entanto, seria conveniente o aprimoramento
do seu módulo de controle de concorrência para torná-lo mais flexível, de modo que os
bloqueios, que são abrangentes, se tornem mais restritos quanto a itens de dados,
aumentando assim a granularidade da concorrência entre as transações nesse importante
e difundido banco de dados.
Referências
Cantu, Carlos H. (2005). “Firebird Essencial”. Rio de Janeiro: Ciência Moderna, 1ª
edição.
Devmedia. (2006). “Transações no Firebird & Interbase”. DevMedia: Revista Clube
Delphi, 42ª edição.
Elmasri, Ramez; Navathe, Shamkant B. (2011). “Sistemas de Banco de Dados”. São
Paulo: Pearson Addison Wesley, 6ª edição.
Fernandes, Adriano dos Santos. (2011). “ClubeDelphi 125: CODESIT”. DevMedia:
Revista Clube Delphi, 125ª edição.
Firebird. (2012). “Reference Manuals”. Disponível em: < http://www.firebirdsql.org/>.
Acesso em 18 de abril de 2012.
Holanda, Maristela; Brayner, Angelo; Fialho, Sergio. (2006). “EIT - Escalonador
Inteligente de Transações”. XXI Simpósio Brasileiro de Banco de Dados,
Florianópolis.
Ozsu, M. T.; Valduriez, P. (1999). “Principles of Distributed Database Systems”.
Prentice-Hall, 1ª edição.
Silberschatz, Abrahan; Korth, Henry F.; Sudarshan, S. (1999). “Sistemas de Banco de
Dados”. São Paulo: Makron Books, 3ª edição.
Vinkenoog, Paul; et al. (2011). “Firebird 2.5 Language Reference Update”. Disponível
em: < http://www.firebirdsql.org/>. Acesso em 18 de abril de 2012.
8
Anais do XI Simpósio de Informática da UNIFRA - SIRC2012
ISSN: 2175-0955 Santa Maria - RS, Outubro de 2012
Computação Consciente do Contexto: um estudo sobre
técnicas de Computação Pervasiva aplicada ao
desenvolvimento de um Controlador Lógico Programável
Djalmo Etiene Cardinal, Patricia Mariotto Mozzaquatro, Rodrigo Luiz Antoniazzi
1
Universidade de Cruz Alta (UNICRUZ)
Campus Universitário Dr. Ulysses Guimarães - Rodovia Municipal Jacob Della Méa,
Km 5.6 - Parada Benito - CEP 98.020-290 - Cruz Alta/RS – Brazil
[email protected], [email protected],
[email protected]
Abstract. There are many homes that have some kind of automation, and an
environment totally controlled by their owners, where everyday tasks, and
generate confusion and forgetfulness about their drives, can cause potential
waste. The comfort, as well as the security of these environments often leaves
something to be desired with existing projects and consequently exposes
residents or workers to unnecessary risks. The Programmable Logic
Controllers (PLC) systems integrating aware of the context can be used in
solving these problems. The work proposed was the development of a
programmable logic controller aware of the context that captures data from
various sensors generating a unique information to the user. We used context
sensors, a microcontroller with RISC architecture and organization as defined
HARVARD, thus, allows collecting information captured by different sensors
generating a fully integrated system.
Resumo. Existem muitas residências que possuem uma espécie de automação,
sendo um ambiente totalmente controlado por seus proprietários, onde as
tarefas diárias, além de gerar confusões e esquecimentos quanto a seus
acionamentos, podem acarretar possíveis desperdícios. O conforto, assim
como a segurança destes ambientes muitas vezes deixa a desejar com os
projetos existentes e, consequentemente expõe os moradores ou trabalhadores
a riscos desnecessários. Os Controladores Lógicos Programáveis (CLP)
integrando sistemas conscientes do contexto podem ser utilizados na
resolução destes problemas.
O trabalho de proposto apresentou o
desenvolvimento de um controlador lógico programável consciente do
contexto que captura dados de diversos sensores gerando uma única
informação ao usuário. Foram utilizados sensores de contexto, um micro
controlador com arquitetura RISC e organização definida como HARVARD,
para assim, permitir a obtenção de informações capturadas pelos diferentes
sensores gerando um sistema totalmente integrado.
1. Introdução
O surgimento de novas tecnologias aumenta a complexidade dos ambientes e, neste
sentido, os mesmos necessitam adaptar-se a uma computação altamente dinâmica, onde
9
Anais do XI Simpósio de Informática da UNIFRA - SIRC2012
ISSN: 2175-0955 Santa Maria - RS, Outubro de 2012
o ambiente está em constante mudança em função da mobilidade do usuário. Assim,
abriu-se espaço ao surgimento de um novo paradigma computacional: a computação
pervasiva, disponibilizando acesso à computação de forma natural ou invisível (sem a
necessidade de ações conscientes para essa finalidade), em todo lugar e tempo (SAHA,
2003). A computação pervasiva se propõe a dar uma visão do futuro onde serviços serão
oferecidos para os usuários através de inúmeros dispositivos espalhados pelo ambiente.
A criação de uma rede onde dispositivos se comunicam dando estados do contexto esta
se tornando popular.
Segundo (SAHA, 2003) um dos principais desafios da Computação Consciente
do Contexto é interpretar a grande quantidade de informações disponíveis e conseguir
determinar ações a partir da interpretação dessas informações integrando-as e,
apresentando uma única resposta. Pode-se, além disso, combinar informações
provenientes de diferentes fontes (sensores) e fundi-las em uma nova informação com
mais significado agregado. Neste contexto, o desenvolvimento de um Controlador
Lógico Programável consciente do contexto que captura dados de diversos sensores
gerando uma única informação ao usuário poderá possibilitar a obtenção de informações
capturadas pelos diferentes sensores gerando um sistema totalmente integrado.
2. Controlador Lógico Programável (CLP)
Nos anos 60 e 70, clientes que tinham certo desejo por um automóvel em uma cor
específica eram obrigados a esperar longos períodos, para serem atendidos pelo motivo
de que os carros eram produzidos em “safras” pelas montadoras. O tempo do setup de
uma linha de produção tinha um custo muito elevado porque as fábricas daquela época
não haviam sido projetadas para serem flexíveis devido às limitações da tecnologia de
automação (FAUSTINO, 2005). Diante desta limitação, em 1968, foram definidas
várias especificações para o desenvolvimento do primeiro controlador programável:
facilidade de programação e reprogramação, facilidade de manutenção e reparos,
capacidade de operação em ambientes industriais. Segundo SILVEIRA et.al. (2002), no
Brasil os CLPs se expandiram a partir dos anos 80 por causa da adoção da tecnologia
usada nas matrizes das indústrias multinacionais. O mesmo autor complementa que na
construção de um CLP é necessário ter uma estrutura básica para suas funcionalidades
serem reconhecidas e aplicadas a um contexto especifico, onde são elas: 1-Necessitando
de um fonte de alimentação onde converte a tensão da rede de 110 ou 220 V de corrente
alternada denominada VCA em +5V, +12V ou +24V de corrente continua denominada
VCC, para alimentação dos circuitos, entradas e saídas; 2- Unidade de processamento
também conhecida de Central Processing Unit (CPU), onde pode se usar micro
controladores ou microprocessadores; 3- Bateria para utilização do circuito, dando
autonomia para ficar acionado sem a energia da rede; 4- Memória do programa
supervisor onde é responsável pelo gerenciamento do CLP, não podendo ser modificado
pelo usuário e fica normalmente em memórias do tipo Programable read-only memory
(PROM), Erasable Programmable read-only memory (EPROM) e Electrically Erasable
Programmble Read-only Memory (EEPROM); 5- Memória para o usuário constituída
pela memória Random Access Memory (RAM) ou EEPROM.
10
Anais do XI Simpósio de Informática da UNIFRA - SIRC2012
ISSN: 2175-0955 Santa Maria - RS, Outubro de 2012
2.1. Microprocessador, Sensores e Atuadores
Os micros controladores são chips inteligentes, que tem um processador, pinos de
entradas/saídas e memória. Programando o micro controlador tem-se o controle de suas
saídas/entradas. O que diferencia os diversos modelos de micro controladores é a
quantidade de memória interna tanto para dados ou programa, velocidade do seu
processamento, quantidades de pinos de entradas e saídas, alimentação, periféricos que
pode se utilizar (PEREIRA, 2010). A série dos micro controladores PIC18 é derivada da
série PIC17. Tanto os PIC18 quanto os PIC17 são micro controladores que residem no
fato de utilizarem uma organização interna conhecida como Harvard. Onde caracteriza
se por utilizar barramentos distintos para acesso à memória de programa e a memória de
dados (PEREIRA, 2010). O funcionamento de um sensor é realizado sob a atuação de
uma grandeza física que altera as propriedades do dispositivo, como uma resistência,
capacitância ou a indutância. Este gera informações de acordo com essas alterações que
serão levadas ao CLP para tratá-las (NATALE, 2003). O sensor de presença é um
comando inteligente que se destina ao acionamento de cargas temporizadas, a função do
sensor é fazer detecções de fontes de calor como pessoas e carros, através de um sensor
infravermelho, acionando a carga e desligando-a após a ausência, de acordo com o
tempo programa no sistema do sensor (ALIEVI, 2008).
Os atuadores têm por função converter os sinais elétricos provenientes das saídas
do CLP em uma condição física, normalmente ligando ou desligando algum elemento.
Um exemplo básico de seu funcionamento é o controle do acionamento de uma bobina
contatora a qual comandará o acionamento de um motor, através de uma saída do CLP
(FRANCHI et.al., 2008). Os contatores/relés são normalmente equipados com três,
quatro ou cinco contatos, podendo ser de força, auxiliares ou mistos, além disso, em
muitos modelos de contatores ainda é possível acrescentar blocos de contatos auxiliares
aumentando o número de contatos auxiliares disponíveis (FRANCHI et.al., 2008).
2.2. Protocolo de Comunicação Modbus
A interface escolhida para o desenvolvimento deste projeto é o padrão RS-232, Modbus
é um protocolo de comunicação de dados utilizado em sistemas de automação industrial.
Geralmente seu meio de comunicação é pela porta serial, mas hoje pode ser
implementado também por meio de rede ethernet, onde seu paradigma é baseado em
mestre-escravo (ALIEVI, 2008). A comunicação Modbus pode ser realizada de duas
formas: Remote Terminal Unit (RTU) e American Standard Code for Information
Interchange (ASCII). Os dois modos de requisição ou resposta possuem um formato de
pacote específico, que é para requisição ou para resposta. Cada pacote é composto de
seis campos que são representados por dados binários, no modo RTU, e por caracteres,
no modo ASCII. Estes campos são definidos conforme a Tabela 1.
Tabela 1. Campos representados por dados binários
Início
Indica o começo do pacote;
Endereço
Indica qual dispositivo receberá ou enviará o pacote. A faixa válida de
endereços dos dispositivos varia de 0 a 247, sendo o endereço 0 (zero)
utilizado para mensagens que são enviadas para todos os escravos;
Função
Objetivo do pacote;
11
Anais do XI Simpósio de Informática da UNIFRA - SIRC2012
ISSN: 2175-0955 Santa Maria - RS, Outubro de 2012
Dados
Campo onde os dados serão alocados. Ele tem o conteúdo de acordo com
o campo Função do pacote;
Controle
Responsável pela detecção de erros no pacote, conhecido como Cyclic
Redundancy Check (CRC).
Fim
Indica o fim do pacote;
O protocolo Modbus possui algumas funções que dependem do dispositivo que
implementa o protocolo. As funções possuem diferentes objetivos, como a verificação
da comunicação, visualização da quantidade de eventos, leitura e escrita de registradores
específicos ou um grupo, dentre outras, sendo as mais utilizadas as funções de escrita e
de leitura.
3. Desenvolvimento do sistema
O desenvolvimento do software supervisório que faz a aquisição dos dados para melhor
leitura do ambiente, foi desenvolvido na linguagem JAVA, pertencente a empresa
Oracle, a ferramenta para a programação foi a IDE Netbeans, verão 7.1, onde é um
ambiente de desenvolvimento integrado de código fonte aberto e gratuito para
desenvolvedores de software. A ferramenta não é específica para a linguagem de
programação Java, mas sim suporta também C/C++, PHP, Groovy, Android
(NETBEANS, 2012).
O software projetado necessitou de uma porta serial no micro computador que
foi instalado, para fazer a comunicação direta com o CLP. Os comandos dados pelo
sistema supervisor foram solicitados pelo usuário, pois o sistema não possui nenhuma
iniciativa própria para execução de tarefas, apenas realiza perguntas para o CLP sobre o
ambiente em questão. O software desenvolvido tem suas funções bem acessíveis, para
rápida visualização e execução, conforme ilustrado na Figura 1, do mesmo recebendo as
informações enviadas do CLP.
Figura 1. Sistema supervisório em conexão com o CLP
12
Anais do XI Simpósio de Informática da UNIFRA - SIRC2012
ISSN: 2175-0955 Santa Maria - RS, Outubro de 2012
4. Validação e testes
O sistema desenvolvido pôde ser testado visando analisar o comportamento do
programa que está embarcado no micro controlador e do software supervisor. O
software e o hardware foram testados em nível de unidade, de integração e de
validação. Para a realização dos testes foram utilizados os métodos de caixa branca e
caixa preta. No método de caixa branca se testa o funcionamento interno, usando nível
de unidade e integração. No teste caixa preta foi validada a interface do sistema em
nível de integração e validação tentando atender a acessibilidade ao usuário final do
sistema em questão.
Figura 2. Grafico comparativo de mensagens de solicitações e respostas do CLP
Na Figura 2, fez-se o comparativo entre os sete testes utilizando as quantidades
de mensagens de solicitação de informação e a resposta e o número de retornos que o
equipamento fornece. Observou-se que começa a ter diferença entre os valores de
solicitação e resposta, a partir do teste número três. Salienta-se que no teste de número
sete, usando o cabo de 45 metros, obteve-se uma perda de informações (foi solicitado
678 vezes para o CLP a resposta das informações no ambiente, mas apenas foi retornado
480 vezes). Desta forma, pode-se constatar pelo gráfico gerado que o sistema
desenvolvido permitiu atingir um bom resultado, sem muita perda de dados, com o teste
de número seis, onde utilizou-se 20 metros de cabo para comunicação serial.
5. Conclusão
Os sistemas de automação residencial necessitam ser seguros, confiáveis e
principalmente possuírem um baixo custo de instalação. Assim sendo, cada projeto deve
realizar a melhor combinação destas características, para que haja maior conforto e
economia para o usuário.
Em relação ao sistema de supervisão do CLP, instalado na estação de trabalho,
totalmente desenvolvida com a plataforma Java Enterprise Edition, mostrou se bastante
estável, produtiva, eficiente e confiável para amostragem das informações contidas no
protocolo e executando funções implementadas.
13
Anais do XI Simpósio de Informática da UNIFRA - SIRC2012
ISSN: 2175-0955 Santa Maria - RS, Outubro de 2012
Com o desenvolvimento deste trabalho foi possível perceber que aplicações
residenciais de controle podem ser realizadas utilizando-se componentes de baixo custo
e protocolos flexíveis, gratuitos, onde podem se comunicar com outros tipos de
equipamentos se padronizados as comunicações. Isso aumentaria a popularização de
casa inteligente. Mas para que esta popularização se dê de forma correta, é necessário
investimento na criação de equipamentos simples e seguros e na padronização de
estruturas de rede, todos “falando” a mesma linguagem.
6. Referências
Alievi, C. A. Automação Residencial com Utilização de Controlador Lógico
Programável. Monografia de Graduação em Ciência da Computação, Centro
Universitário Feevale, 2008.
Faustino, M. R. “Norma IEC61131-3: Aspectos Históricos, Técnicos e um exemplo de
aplicação”, Dissertação de Mestrado em Engenharia de Energia e Automação
Elétricas, Universidade de São Paulo, São Paulo, 2005.
Franchi, C. M. Camargo, V. L. A. de. Controladores Lógicos Programáveis – Sistemas
Discretos. 1ª Ed., São Paulo: Editora Érica Ltda, 2008.
Natale, F. Automação Industrial. São Paulo: Editora Érica, 2003.
Netbeans.
Datasheet,
mar
2012.
Disponível
em:
<
http://
http://netbeans.org/community/releases/71/index.html>. Acesso em: 17 jul. 2012.
Pereira, F. Microcontrolador PIC 18 Detalhado: Hardware e Software. São Paulo:
Editora Érica Ltda, 2010.
Saha, D. Mukherjee, A. “Pervasive Computing: a paradigm for the 21st Century”, IEEE
Computer, New York, v. 36, n.3, Mar. 2003.
Silveira, P. R. da, Santos, W. E. dos. Automação e Controle Discreto. São Paulo,
Editora Érica, 2002.
14
Anais do XI Simpósio de Informática da UNIFRA - SIRC2012
ISSN: 2175-0955 Santa Maria - RS, Outubro de 2012
Algoritmos Genéticos como Solução para o Problema da
Mochila Múltipla 0-1
Thiego Yukiu Maeda, Rodrigo Luiz Antoniazzi2
1
Ciência da Computação – Universidade de Cruz Alta (UNICRUZ)
Rodovia Municipal Jacob Della Méa, Km 5.6 – 98.020-290 – Cruz Alta – RS – Brazil
2
Departamento de Ciência da Computação – Universidade de Cruz Alta (UNICRUZ)
Cruz Alta, RS – Brasil.
[email protected], [email protected]
Abstract. The Knapsack Problem is characterized as an NP-hard problem and
finding an optimal solution for a large input size is considered an intractable
problem. However, an instance of this problem has not received due attention,
called the 0-1 Multiple Knapsack Problem (MKP). The MKP is metaphorically
characterized in a situation that must be put in different bags, objects of
different weights and values, you must fill these backpacks with the highest
value possible, respecting the maximum weight of each one. The aim of this
paper is to suggest a viable solution in polynomial time and optimized for the
0-1 Multiple Knapsack Problem using Genetic Algorithms as a solution.
Resumo. O Problema da Mochila se caracteriza como um problema NPDifícil e encontrar uma solução ótima para um tamanho de entrada grande é
considerado um problema intratável. Entretanto, uma instância desse
problema não recebeu a devida atenção, o chamado Problema da Mochila
Múltipla 0-1 (PMM). O PMM é metaforicamente caracterizado em uma
situação que é preciso colocar em várias mochilas, objetos de pesos e valores
diferentes, deve-se preencher essas mochilas com o maior valor possível,
respeitando o peso máximo de cada uma. O objetivo desse trabalho é o de
sugerir uma solução viável em tempo polinomial e otimizada para o Problema
da Mochila Múltipla 0-1, usando Algoritmos Genéticos como solução.
1. Introdução
Atualmente são inúmeros os problemas que podem ser considerados como
computacionalmente intratáveis, como por exemplo, problemas de roteamento, de
empacotamento, de alocação, entre outros [Goldbarg 2000].
De acordo com Toscani (2002) problemas intratáveis não podem ser resolvidos
com algoritmos determinísticos em tempo polinomial. Isso significa que resolver um
problema intratável pelo tradicional método de busca exaustiva (ou força bruta), onde
todas as soluções possíveis são analisadas, acarreta em um tempo de computação que,
para entradas suficientemente grandes, levaria séculos para gerar o resultado, como pode
ser visto em [Garey 1979 and Papadimitriou 1994].
15
Anais do XI Simpósio de Informática da UNIFRA - SIRC2012
ISSN: 2175-0955 Santa Maria - RS, Outubro de 2012
Existem formas alternativas para se buscar uma solução viável a estes problemas
em tempo polinomial. Uma possível solução é o uso de algoritmos aproximativos
[Cormen 2002], que se constituem em algoritmos que encontram soluções próximas da
solução ótima, já que muitas aplicações não requerem uma solução exata [Toscani
2002].
Outra alternativa para buscar soluções a problemas intratáveis é o uso de
métodos heurísticos. De acordo com [Toscani 2002] existem vários exemplos de
métodos heurísticos, entretanto os mais expressivos são: Algoritmos Genéticos, que são
problemas interpretados de forma análoga ao código genético de seres vivos e então
processos naturais de reprodução e melhoria de genes são utilizados; Simulated
Annealing, que se baseia em processos termodinâmicos envolvidos no resfriamento de
metais, onde a temperatura do metal fundido precisa ser controlada e gradualmente
reduzida de acordo com um roteiro de resfriamento; Redes Neurais, que por sua vez
utiliza a mesma abordagem utilizada por neurônios naturais para resolver problemas, ou
seja, aprendizagem através de exemplos; e GRASP, baseado em outras abordagens,
como por exemplo, método guloso agregado a características randômicas para
solucionar seus problemas.
Um problema de grande interesse é o denominado Problema da Mochila
(knapsack problem) [Garey 1979]. O problema da Mochila se caracteriza pelo estreito
relacionamento com um grande número de outros modelos de programação.
Metaforicamente pode-se entendê-lo como o desafio de encher uma mochila sem
ultrapassar um determinado limite de peso, otimizando o valor do produto carregado
[Goldbarg 2000].
Existe uma série de problemas correlatos para o problema da mochila, que
comprova as várias aplicações do modelo e permite uma visão de sua importância.
Segundo [Goldbarg 2000], uma dessas variações é um caso especial quando os custos
possuem o mesmo valor dos pesos, assim define-se o Subset-Sum Problem (SSP),
formulado por Christofides (1979). A Mochila 0-1 Multidimensional (PK-nDimensional) é outra variação do problema, onde para cada objeto carregado na mochila
seja exigido um pagamento e uma limitação no capital disponível. De acordo com
Goldbarg (2000) outra variação do problema é a Mochila Múltipla 0-1 (PKM), definida
por trabalhar não apenas com uma única mochila. Existem n mochilas a serem
carregadas, cada uma dessas mochilas com uma capacidade de peso diferente.
2. Algoritmos Genéticos
Os Algoritmos Genéticos foram desenvolvidos nos meados dos anos 60 por vários
cientistas, entretanto John Holland foi quem iniciou os primeiros trabalhos nessa área
[Golbarg 2000]. Holland (1975) estudou formalmente a evolução das espécies e propôs
um modelo heurístico computacional que quando implementado poderia oferecer boas
soluções para problemas extremamente difíceis. Holland apresenta os algoritmos
genéticos como uma metáfora para os processos evolutivos, de forma que ele pudesse
estudar a adaptação e a evolução no mundo real [Linden 2008].
Nos algoritmos genéticos populações de indivíduos são criadas e submetidas aos
operadores genéticos: seleção, recombinação ou crossover e mutação. Estes operadores
utilizam uma caracterização da qualidade de cada indivíduo como solução do problema
16
Anais do XI Simpósio de Informática da UNIFRA - SIRC2012
ISSN: 2175-0955 Santa Maria - RS, Outubro de 2012
em questão. Entretanto é importante que fique claro que a evolução natural não é um
processo dirigido à obtenção da solução ótima, e sim que o processo simplesmente
consiste em fazer competir uma serie de indivíduos e pelo processo de sobrevivência do
mais apto, os melhores indivíduos tendem a sobreviver [Linden 2008].
3. Problema da Mochila Multipla 0-1
O Problema da Mochila pertencente a classe de problemas NP-Difíceis. Ele foi
inicialmente reportado por Dantzig, em 1957 [Goldbarg 2000]. Teoricamente pode-se
entender o problema como o desafio de preencher uma mochila com objetos de
diferentes valores e pesos, sem ultrapassar o limite de peso da mochila e assim
alcançando sua meta de otimizar o valor dos respectivos objetos. No caso do Problema
da Mochila Múltipla 0-1 que consiste em n mochilas, cada uma com um peso específico
bi, i=1, ..., n. Onde, se n=1, a mochila múltipla se reduzirá ao problema da mochila. Os
pesos e os valores de cada item são os mesmo para todas as mochilas, sendo necessário
incluir uma restrição que evite a inclusão de um mesmo produto em mais de uma
mochila [Goldbarg 2000].
4. Metodologia
O algoritmo desenvolvido foi dividido em dois módulos. Num desses módulos, consta a
implementação do cromossomo, ou seja, dentro dele esta os métodos de operadores
genéticos, isto é, o operador de crossover e o operador de mutação, esse módulo
também contem a função de avaliação. O outro módulo vai conter o mecanismo de
controle do algoritmo genético, ou seja, o método de inicialização da população, método
de seleção e o módulo da população.
Seu comportamento segue da seguinte maneira: o número de mochilas é
estipulado no início da implementação, juntamente com a capacidade máxima de cada
mochila. A quantia de itens também pré-determinado é de 30 itens, os seus respectivos
seus pesos e valores também foram determinados no início do algoritmo. Após a
inclusão dos dados, se dá inicio a geração da primeira população, a qual será de forma
aleatória, ou seja, a escolha de qual item irá participar da mochila será randômica.
Escolhido os itens que irão participar do cromossomo em questão, haverá a soma total
de seu valor e peso. Esse passo se repetirá pelo número da população.
A partir desse ponto todos os métodos envolvidos serão aplicados novamente até
o número de gerações serem concluídos. Com a primeira população pronta o próximo
passo é a função de avaliação de cada cromossomo, com essa nota serão escolhidos pelo
método da roleta viciada os cromossomos que irão participar dos operadores genéticos
(crossover e mutação). Os cromossomos que sofrerão a aplicação dos operadores
genéticos serão avaliados novamente. Em seguida será aplicado o elitismo onde vai
comparar com a primeira população e a população atual e determinar quem vai fazer
parte da nova população, por fim, será verificado se a condição de parada foi satisfeito.
A saída será sob a forma de um arquivo texto que serão as possíveis soluções do
problema, ou seja, irá conter quais objetos irão preencher o espaço na determinada
mochila. Com os dados de saída prontos, eles serão analisados e comparados, para poder
validar sua eficiência.
17
Anais do XI Simpósio de Informática da UNIFRA - SIRC2012
ISSN: 2175-0955 Santa Maria - RS, Outubro de 2012
5. Resultados
Inicialmente foi necessário aplicar alguns testes para determinar a probabilidade de
crossover, probabilidade de mutação e sua probabilidade de elitismo, na procura de
parâmetros onde seu retorno fosse os melhores desempenhos para as populações. Nos
testes iniciais de acordo com Linden (2008), foi utilizado uma taxa de crossover de
75%, para a mutação foi usada uma taxa de 1% o qual também foi utilizada para o
elitismo. Nos testes subseqüentes foi possível notar que se aumentar a taxa de crossover
para 90% obteremos uma alta nos resultados. É notável também que o aumento da taxa
de mutação gera resultados menos satisfatórios, uma vez que a probabilidade de
mutação escolhe os genes de forma aleatória, tornando as soluções randômicas levando
a indivíduos menos aptos. Com isso a mutação assumiu uma taxa de 5%. Um fator
importante também é sobre o modulo da população, ou seja, o elitismo, pois um leve
aumento em sua taxa levou os cromossomos a convergirem para ótimos locais, onde
com isso facilitava a criação de super cromossomos, logo seu surgimento era cada vez
mais frequente, eliminando a diversidade da população. Para evitar esse problema
permaneceu a taxa de 1% para o elitismo.
Após concluir a escolha das probabilidades de crossover, mutação e elitismo, foi
possível iniciar os testes, onde eles são diferenciados pelo número de cromossomos e
pelo número de gerações. Primeiramente, foi indicado que os valores e pesos dos itens
em questão seriam gerados randomicamente, porém, para ser leal e expressar da melhor
forma os resultados, os valores (benefícios) e pesos de cada item foi pré-determinado,
com isso os pesos totalizavam 617 e os valores totalizavam 619. Segundo Kellerer
(2004), dessa forma se podem comparar os resultados obtidos pelas respectivas
execuções mantendo um padrão nos benefício adquiridos.
Na Tabela 1 foi realizado um teste onde se tem 5 mochilas com uma população
de 100 indivíduos e a quantidade de gerações é alterada num intervalo de 100, 1000 e
10000, em seguida mostra o valor que cada mochila obteve e o tempo em que ela levou
para gerar. Consequentemente, quanto maior o número de gerações maior será o tempo
de execução, contudo, esse tempo é razoável se levar em conta a quantidade de itens e
indivíduos.
Tabela 1. Resultados gerados de cinco mochilas com 90% de crossover e com população
de 100 cromossomos e 100 a 10000 gerações.
Valor Adquirido
Teste
Gerações
População
Tempo de
Moc.
Moc.
Moc.
Moc.
Moc.
A
B
C
D
E
Execução
A
100
100
501
552
331
478
522
0.093 s
B
1000
100
580
581
482
516
565
0.640 s
C
10000
100
617
615
471
533
586
6.078 s
18
Anais do XI Simpósio de Informática da UNIFRA - SIRC2012
ISSN: 2175-0955 Santa Maria - RS, Outubro de 2012
Figura 1. Gráfico de execução de cinco mochilas com 90% de crossover e com
população de 100 cromossomos e 100 a 10000 gerações
Como demonstra o gráfico juntamente com a Tabela 1 se pode verificar que os
resultados obtidos pelo teste C que possui 10000 gerações teve bons resultados e, com
isso é possível notar que o aumento no numero de gerações altera de forma drástica os
benefícios dos testes, superando aqueles onde o numero de gerações é menor, sem sofrer
um aumento muito grande no tempo de sua execução.
6. Conclusão
Constatou-se, a grande importância das técnicas de metaheurísticas, mais
especificamente os algoritmos genéticos. Os algoritmos genéticos, conforme Linden
(2008), são considerados uma técnica de busca global, visto que não usam apenas dados
locais, com isso, não necessariamente ficam presos em máximos locais, tornando o
algoritmo genético, uma técnica apropriada para funções multimodais e de perfis
complexos. Resultando em ótimas técnicas, para confrontar problemas de busca com
espaços de soluções intratavelmente grandes e que não podem ser resolvidos por
técnicas tradicionais.
Usando 90% para o operador de crossover, 5% para o operador de mutação e 1%
para o elitismo, é possível analisar que ao manter uma taxa alta para o operador de
crossover e taxas menores para os operadores de mutação e elitismo, obtêm-se bons
resultados. Para a quantidade da população e da quantidade de gerações, houve uma
19
Anais do XI Simpósio de Informática da UNIFRA - SIRC2012
ISSN: 2175-0955 Santa Maria - RS, Outubro de 2012
pequena diferença, onde alcançamos bons resultados quando é maximizada a quantidade
de população, entretanto o tempo que leva para ser executado é alto. Porém, isso não
ocorre quando se aumenta a quantidade de gerações, que em certos momentos é bem
superior. Fica fácil de analisar que quanto maior for o número da população melhores
serão os resultados, porém seu tempo sofre alterações a cada vez que é acrescentado
mais cromossomos. A busca de uma melhor solução por algoritmos genéticos com uma
análise sobre os resultados encontrados mostrou-se eficiente em encontrar boas
alternativas de caminhos sobre o problema analisado. Logo, conclui-se que a
Metaheurística Algoritmos Genéticos é viável para a solução do Problema da Mochila
Múltipla 0-1.
Referências
Cormen, Thomas H. et al. (2002) “Algoritmos: teoria e prática”, Tradução da segunda
edição Souza, V. D. Rio de Janeiro: Ed. Campus.
Garey, M. R. and Johnson, D. S. (1979) “Computers and Intractability; a Guide to the
Theory of Np-Completeness”, W. H. Freeman & Co.
Goldbarg, Marco Cesar. (2000) “Otimização Combinatória e Programação Linear:
Modelos e Algoritmos”, Rio de Janeiro: Campus.
Kellerer, Hans; PFERSCHY, Ulrich; PISINGER, David. (2004) “Knapsack Problems”,
Germany: Heidelberg.
Linden, Ricardo. (2008) “Algoritmos Genéticos: Uma importante ferramenta da
inteligência computacional”, Segunda edição. Rio de Janeiro: Brasport.
Papadimitriou, Christos M. (1994) “Computational complexity”, Addison-Wesley
Publishing Company Inc.
Toscani, Laira V; Veloso, Paulo A. S. (2002) “Complexidade de Algoritmos”, Porto
Alegre: Instituto de Informática da UFRGS: Editora Sagra Luzzatto.
20
Anais do XI Simpósio de Informática da UNIFRA - SIRC2012
ISSN: 2175-0955 Santa Maria - RS, Outubro de 2012
Jogos Educativos: estimulação do raciocínio por meio de um
dispositivo móvel
Leander Cordeiro de Oliveira1, Andreia Rosangela Kessler Muhlbeier2, Patricia
Mariotto Mozzaquatro1, Rodrigo Luiz Antoniazzi1
1
Universidade de Cruz Alta (UNICRUZ)
Campus Universitário Dr. Ulysses Guimarães - Rodovia Municipal Jacob Della Méa,
Km 5.6 - Parada Benito - CEP 98.020-290 - Cruz Alta/RS – Brazil
2
Programa de Pós Graduação de Informática (PPGI) – Universidade Federal de Santa
Maria (UFSM)
Av. Roraima, 1000 – Santa Maria – RS – Brazil
{leander_dewon, andreiamuhlbeier, rodrigoantoniazzi}@yahoo.com.br,
[email protected]
Abstract. This article presents the development of an application that aims to
stimulate logical reasoning. It was developed with the help of software Hot
Potatoes, considering their access through the concepts of M-Learning. The
playful perspective allied to mobility is efficient and makes it considerably
easier to use.
Resumo. Este artigo apresenta o desenvolvimento de um aplicativo que visa
estimular o raciocínio lógico. Desenvolveu-se com o auxílio do software Hot
Potatoes, considerando seu acesso por meio dos conceitos de M-Learning. A
perspectiva lúdica aliada à mobilidade é eficiente e torna a utilização
consideravelmente mais facilitada.
1. Introdução
Os aplicativos educacionais aparecem no atual contexto como um recurso didático que
contém características podendo trazer uma série de benefícios para as práticas de ensino
e aprendizagem. Neste sentido, como tornar o computador um instrumento mediador no
processo de ensino/aprendizagem?
No presente artigo, foi demonstrado o desenvolvimento e a aplicação do jogo
educativo eNIGMA. Os tópicos explorados serão os seguintes: A seção 2 apresenta um
estudo sobre Mobile Learning. A seção 3 é dedicada aos Jogos Educacionais. A seção 4
apresenta as ferramentas para construção dos jogos educacionais. O Jogo eNIGMA é
apresentado na seção 5. Os resultados e discussões são apresentados na seção 6. E por
fim, a seção 8 conclui o artigo, seguida de suas referências.
2. Mobile Learning
Vivenciam-se atualmente dificuldades relacionadas à mobilidade geográfica do usuário,
o que se torna um empecilho de acesso no processo contínuo de ensino/aprendizagem,
devido a necessidade do usuário em utilizar seu computador ou notebook de maneira
estática.
21
Anais do XI Simpósio de Informática da UNIFRA - SIRC2012
ISSN: 2175-0955 Santa Maria - RS, Outubro de 2012
Considerando tais fatos e a caracterização da computação móvel por meio do
processamento computacional aliado a mobilidade, exposto por (Augustin et al., 2004),
surge um novo paradigma, a Mobile Learning (M-Learning), unificando os conceitos de
E-Learning e computação móvel, proporcionando ao usuário novas perspectivas em
relação à liberdade de locomoção e deslocamento.
O chamado Mobile Learning ou M-Learning, por trazer tamanha facilidade e
benefícios ao usuário, está no foco de pesquisadores como parte de um modelo de
aprendizado integrado, caracterizado pelo uso de dispositivos de comunicação sem fio,
de forma transparente e com alto grau de mobilidade (Syvänen et al., 2003). Desse
modo, foi desenvolvido o aplicativo eNIGMA, integrado a computação móvel, com o
intuito de facilitar o acesso a conteúdos que trabalham o raciocínio lógico de usuários
em diferentes áreas de interesse.
3. Jogos Educacionais
Os Jogos Educacionais ainda encontram algumas dificuldades na sua utilização, tanto
em sua construção como software, quanto na inserção destes no dia a dia.
Os mesmos têm vários pontos positivos, tais como: a facilidade de ensinar em
vários níveis e áreas da educação, bem como definiu (Mitchell e Savill-Smith, 2004)
quando disseram que os jogos colocam o aluno no papel de tomador de decisão e o
expõe a níveis crescentes de desafios para possibilitar uma aprendizagem através da
tentativa e erro. O usuário desenvolve com agilidade suas habilidades cognitivas, e
segundo (Gros, 2003), promovem o desenvolvimento intelectual. A fim de vencer os
desafios, o jogador precisa elaborar estratégias e entender como os diferentes elementos
do jogo se relacionam.
4. Ferramentas para construir jogos educacionais
Uma das características do computador é o fato dele não possuir apenas uma forma de
uso, e sim inúmeras possibilidades, por meio de softwares ou materiais elaborados pelo
próprio educador, auxiliando na problematização, que desafia e motiva à aprendizagem.
Conforme Haetinger:
Para o uso das novas tecnologias aplicadas à educação, deve-se considerar
uma nova postura, tanto do professor como dos alunos. O aluno, através do
uso dessas ferramentas, compromete-se muito mais com o seu aprendizado (o
que não acontecia no ensino tradicional) (Haetinger, 2003).
As ferramentas tecnológicas associadas ao desenvolvimento de jogos educativos
promovem o trabalho colaborativo no contexto educacional.
Como exemplo de ferramenta neste trabalho, destaca-se o software Hot
Potatoes, um conjunto de cinco ferramentas de autoria, desenvolvidas pela equipe
da University of Victoria CALL Laboratory Research and Development, que
possibilitam a elaboração de cinco tipos básicos de exercícios interativos, utilizando
páginas Web para aplicações voltadas ao uso educacional.
A interatividade dos exercícios é obtida pelo uso de JavaScript. As ferramentas
admitem caracteres acentuados, o que possibilita a criação de exercícios em qualquer
22
Anais do XI Simpósio de Informática da UNIFRA - SIRC2012
ISSN: 2175-0955 Santa Maria - RS, Outubro de 2012
língua baseada no conjunto de caracteres do alfabeto romano, incluindo o francês, o
alemão e outras línguas européias.
O Hot Potatoes possibilita a elaboração de cinco tipos básicos de exercícios
interativos usando páginas da Web: Quiz (Módulo que realiza testes de múltipla escola e
resposta simples), Jmix (Sopa de palavras), JCross (Palavras cruzadas) JMatch
(Exercícios de correspondências) e JClose (Exercícios de preenchimento de espaço).
Existem três passos fundamentais para elaborar um exercício: A introdução dos
dados (perguntas, respostas, etc.), A configuração do aspecto final (preparação dos
nomes dos botões, as instruções e outras características de suas páginas Web) e a
elaboração das páginas Web (organizar seus exercícios em páginas HTML).
5. Jogo Enigma
O jogo educacional eNIGMA integrou treze problemas de raciocínio lógico inspirados
na série de jogos “Professor Layton”, jogo de enigmas da plataforma Nintendo DS. As
atividades propostas envolveram interação do usuário por meio de questões textuais
respondidas em tempo determinado.
A aplicação pode ser acessada por diversos modelos de dispositivos móveis.
Conforme observado na Figura 1, o usuário tem acesso à página inicial que apresenta o
jogo com o botão “Iniciar”.
Figura 1. Tela inicial da ferramenta
Em cada uma das atividades o software apresenta botões de ajuda que
disponibilizam dicas para a resolução das questões. Vale lembrar que quando uma dica
for acessada a pontuação, que é gerada para cada enigma, é reduzida. Ainda existe o
botão “Soletrar” que soletra a resposta, fazendo assim a pontuação diminuir conforme as
letras são reveladas. Estuda-se agora a possibilidade de exclusão deste botão de
soletração, considerando que o botão de ajuda é suficiente nas dicas para a resolução.
Uma sucinta explicação da resolução somente é apresentada ao usuário mediante o
acerto da questão, ainda, se o limite de tempo não for alcançado a questão não poderá
ser respondida. Para o acesso ao próximo desafio o botão “Próximo” está disponível em
todas as atividades e pode ser usado a qualquer momento. A Figura 2 apresenta a
23
Anais do XI Simpósio de Informática da UNIFRA - SIRC2012
ISSN: 2175-0955 Santa Maria - RS, Outubro de 2012
atividade “Descubra o Dia”, a mesma objetiva trabalhar a matemática aplicada ao
raciocínio lógico e a interpretação de textos.
A Figura 3 apresenta uma equação matemática na qual o usuário deverá utilizar
todos os algarismos de 1 a 9 sem repeti-los para completar a equação. Na imagem pode
ser vista uma pequena janela de ajuda que dá dicas de resolução ao usuário.
Figura 2. Atividade “Descubra o dia”
Figura 3. Atividade “Complete a equação”
6. Resultados e Discussão
O A aplicação desenvolvida foi validada por onze acadêmicos do curso de Graduação
em Ciência da Computação por meio de seus próprios dispositivos. Alguns dos
utilizados foram o Sony Ericsson Xperia x10 Mini Pró com Android 2.1, o Nokia C3-00
com Symbian S40 através do navegador Opera Mini, o iPhone 3GS com sistema
operacional iOS4.2, dentre outros.
Na sequência, foi aplicado um questionário com intuito de avaliar diversos
pontos relacionados a aplicação, tais como: usabilidade, acessibilidade e conteúdo
pedagógico. Os resultados quantitativos decorrem da compilação do formulário
aplicado. Para a elaboração e disponibilização do questionário foi utilizada a ferramenta
on-line Makesurvey1, que possibilita a criação de questionários on-line com questões
em vários formatos e o acesso adaptado através para dispositivos móveis. Na Figura 4,
observa-se que a maioria dos entrevistados (73%) consideraram o tempo de resposta e a
velocidade de execução aceitável. Acredita-se que a discordância dos 38% deve-se ao
fator de acesso através de dispositivos móveis.
1
Disponível em http://www.makesurvey.net/
24
Anais do XI Simpósio de Informática da UNIFRA - SIRC2012
ISSN: 2175-0955 Santa Maria - RS, Outubro de 2012
Figura 4. O tempo de resposta
Figura 5. Usabilidade
Na Figura 5, questionou-se os usuários quanto as ferramentas do sistema se
atendem ao objetivo proposto. Constatou-se positivamente (73%).
As instruções apresentadas durante a execução das atividades, conforme
ilustrado na Figura 6, constataram que (64%), concordam que o software disponibiliza
as informações necessárias, tais como: ajuda, dicas, feedback da resposta, entre outros.
Figura 6. As instruções apresentadas
Figura 7. Interação com o sistema
Relacionando o nível da dificuldade na interação com o software Figura 7, 37%
respondeu que a dificuldade encontrada foi média, 36% (alta) e 27% (baixa). Acreditase que a dificuldade encontrada deve-se a dificuldade dos enigmas, o tempo
disponibilizado para sua resolução e ainda ao fato dos usuários não estarem muito
familiarizados a acessar esse tipo de ferramenta através de dispositivos portáteis. Com
telas reduzidas e botões adaptados.
Pela abordagem do desenvolvimento de uma aplicação para dispositivos móveis,
foram questionados os recursos de texto, imagens e cores. Na Figura 8, constatou-se que
estes foram considerados facilitadores na interação com o a ferramenta (82%). Salientase que, conforme os testes realizados pelos desenvolvedores e usuários, o aplicativo
pode ser executado em diversos modelos de dispositivos móveis.
25
Anais do XI Simpósio de Informática da UNIFRA - SIRC2012
ISSN: 2175-0955 Santa Maria - RS, Outubro de 2012
Figura 8. O tamanho da fonte, imagens e cores apresentadas facilitam a leitura?
7. Conclusão
Jogos educacionais e ferramentas interativas bem projetadas podem ser criados e
utilizados para unir práticas educativas com recursos multimídia, em ambientes lúdicos,
a fim de estimular e enriquecer as atividades de ensino/aprendizagem em diversos
momentos de descontração dos usuários.
Além disso, ao longo de todo o processo de desenvolvimento desse trabalho,
percebeu-se a existência de um espaço para desencadear outras pesquisas nessa área, tais
como: a inclusão de objetos de aprendizagem e jogos educacionais.
Ao concluir esta pesquisa, observa-se que o aplicativo abrange usuários de
diferentes níveis de conhecimento (ao longo de todo o processo de desenvolvimento
desse artigo, a existência de espaço para desencadear outras pesquisas nessa área tais
como a inclusão de objetos de aprendizagem e jogos educacionais (fundamental, médio
e superior).
8. Referências
Augustin, I. et al. (2004). ISAM, joining context-awareness and mobility to building
pervasive applications. Mobile Computing Handbook. Ed. Florida.
Gros, Begoña. (2003). The impact of digital games in education. First Monday, v. 8, n.
7.
Disponível
em:
<http://www.firstmonday.org/issues/issue8_
7/xyzgros/index.html>. Acesso em: Jul. 2012.
Haetinger, Max Günther. (2003). Informática na Educação: Um Olhar Criativo, Coleção
Criar. vol. 02 – Instituto Criar Ltda.
Mitchell, Alice; Savill-smith, Carol. (2004). The use of computer and video games for
learning: A review of the literature. Londres: Learning and Skills Development
Agency (LSDA). Disponível em: <htttp://www.lsda.org.uk/files/PDF/1529.pdf>.
Acesso em: Jul. 2012.
Syvänen, A.; Ahonen, M.; Jäppinen, A.; Pehkonen, M.; Vainio, T. (2003). Accessibility
And Mobile Learning. In: IFIP ETRAIN CONFERENCE IN PORI, Finlândia.
26
Anais do XI Simpósio de Informática da UNIFRA - SIRC2012
ISSN: 2175-0955 Santa Maria - RS, Outubro de 2012
Uma Arquitetura Móvel e Ubíqua para Acesso ao Registro
Eletrônico de Saúde do Paciente
Leandro Ferreira Paz1, Rafael Boufleur1, Juliano Gomes Weber1, Rogério S. de M.
Martins1, Vinicius Maran1, Alencar Machado2
1
Departamento de Ciências Exatas e Engenharias – Universidade do Noroeste do Estado
do Rio Grande do Sul (UNIJUÍ)
Caixa Postal 489 – 98.900-000 – Santa Rosa – RS – Brasil
2
Campus Tecnológico de Alegrete – Universidade Federal do Pampa (UNIPAMPA)
Av. Tiarajú, 810 – Bairro Ibirapuitã – Alegrete – RS
{leandro.paz,rafael.boufleur,jgw,rogerio.martins,vinicius.maran}@uniju
i.edu.br, [email protected]
Abstract. The access to clinical information of patients in hospitals focuses on
workstations, which complicates the work of healthcare professionals, as
demand for information requires time and attention. With the advent of
Information Technology, areas such as Ubiquitous Computing, demonstrates a
fundamental transformation in innovation with incentives for health, with
goals to achieve agility of processes, information availability by increasing the
quality and productivity of services. This article proposes an architecture that
enables mobile and ubiquitous access to Electronic Health Record (EHR) of
the patient.
Resumo. O acesso às informações clínicas de pacientes em hospitais
concentra-se em estações de trabalho, o que dificulta o trabalho dos
profissionais de saúde, pois a procura pela informação demanda tempo e
atenção. Com o advento da Tecnologia da Informação, áreas como a
Computação Ubíqua, demonstra uma transformação fundamental na inovação
com incentivos para área da saúde, com objetivos de atingir agilidade dos
processos, disponibilidade da informação e aumentando a qualidade e
produtividade dos serviços. Este artigo propõe uma arquitetura móvel e
ubíqua que possibilita o acesso ao Registro Eletrônico de Saúde (RES) do
paciente.
1. Introdução
As informações clínicas de pacientes registradas por profissionais de saúde são
extremamente importantes e devem ser constituídas do histórico de saúde do enfermo.
Elas servem também como documento legalizado dos atos médicos, bem como fonte de
pesquisa, ensino e gerenciamento dos serviços à saúde [Filho; Xavier; Adriano, 2001].
Com o advento da tecnologia, os sistemas de informações hospitalares foram
desenvolvidos para área administrativa médica, mas com o tempo a Tecnologia da
Informação foi adequada também para guardar eletronicamente os registros clínicos do
paciente.
Desta forma, o acesso e a disponibilidade do Registro Eletrônico de Saúde
(RES) do paciente é restrito à estações de trabalho, os desktops. Isto gera uma
dificuldade em ter a informação no momento que o profissional necessita. Segundo
27
Anais do XI Simpósio de Informática da UNIFRA - SIRC2012
ISSN: 2175-0955 Santa Maria - RS, Outubro de 2012
Filho, Xavier e Adriano (2001) “informações administrativas podem ser coletadas
retrospectivamente, mas as informações sobre o tratamento do paciente devem ser
oportunas e disponíveis no ponto ou hora do cuidado”.
Diante do exposto, o uso da Computação Ubíqua vem para melhorar esta
situação. Com a interoperabilidade dos sistemas, a disponibilidade da informação,
facilita e diminui o tempo de acesso ao RES dos pacientes, sem que o usuário detenha
toda sua atenção à usabilidade da aplicação, é a proposta de melhoria dos serviços da
saúde.
Uma das principais características da Computação Ubíqua é a sensibilidade ao
contexto. A aplicação sensível ao contexto coleta elementos do cenário e a partir deste
ponto diversas adaptações podem ser realizadas. Essas modificações auxiliam na
realização das tarefas do usuário, pois não há necessidade dele preocupar-se em como
utilizar o sistema totalmente, apenas com sua finalidade [Souza, 2010].
De acordo com Chen (2002), contexto computacional pode ser definido como:
(i) físico; (ii) do usuário ou do tempo; (iii) emocional, que projeta dados que ajudem na
realização de tarefas. O contexto do usuário é adaptar o perfil dele com a finalidade de
suas ações, ou seja, moldar a aplicação de acordo com as suas preferências, tornando
essas mudanças algo imperceptível para o usuário [Machado e Augustin, 2011]. De
acordo com Dey [2001], “contexto é qualquer informação que pode ser usado para
caracterizar a situação de uma entidade. Uma entidade é uma pessoa, lugar ou objeto
que considerado relevante para a interação entre um usuário e uma aplicação”.
Este artigo propõe uma arquitetura de um sistema móvel executado em um
dispositivo rodando Android que, utilizando conceitos de Computação Ubíqua, tem o
objetivo de diminuir o tempo que um médico leva para obter do prontuário do paciente
os dados relevantes à sua especialidade a fim de agilizar o diagnóstico. Para ressaltar os
dados relevantes à especialidade do médico em questão, utiliza a informação da sua
especialidade para mudar o fundo da cor do texto, dando destaque a palavras que
estejam associadas à especialidade cadastrada para o médico usuário do sistema.
O restante do artigo está organizado como segue. A seção 2 apresenta a
aplicabilidade da ferramenta proposta. A seção 3 descreve a arquitetura do sistema. A
sensibilidade ao contexto é descrita na seção 4. Seção 5, resultados e discussões. Por
fim, a seção 6 apresenta conclusões.
2. Aplicabilidade da Ferramenta Proposta
O software proposto consiste na utilização por profissionais clínicos dentro de um
ambiente hospitalar. O sistema é instalado num dispositivo móvel que é conectado numa
rede sem fio disponibilizada pelo hospital. Num sistema ubíquo, a mobilidade é
fundamental [Augustin; Yamin; Geyer, 2005], com esse intuito a arquitetura proposta
nesse artigo, os usuários obterão às informações de saúde dos pacientes de modo rápido
e acessível através da aplicação móvel.
A sensibilidade ao contexto no sistema é tratada na especialidade do
profissional. Ou seja, a aplicação ajuda no diagnóstico das doenças e prevenção
destacando na interface do aplicativo palavras que sejam relacionadas com a
especialidade do médico. Outro ponto importante da Computação Ubíqua é a
interoperabilidade, a qual foi garantida com a adoção de um padrão de troca de
28
Anais do XI Simpósio de Informática da UNIFRA - SIRC2012
ISSN: 2175-0955 Santa Maria - RS, Outubro de 2012
mensagens clínicas, o Health Level Seven (HL7) [HL7, 2011]. Desta forma, as
informações médicas do aplicativo podem ser trocadas entre bases de dados
heterogêneas ou outras aplicações que utilizam este tipo de padrão.
Com relação ao uso de etiquetas bidimensionais, elas compõem um dos
elementos chave de um sistema ubíquo, a identificação [Ley, 2007, p.64]. Além disso, o
usuário deixa de trabalhar de forma estática e passa a agir dinamicamente com o espaço.
3. Arquitetura do Sistema
A aplicação foi desenvolvida na linguagem de programação Java com Software
Development Kit (SDK) para Android 2.2. O banco de dados no dispositivo foi criado
no SQLite, nativo do sistema operacional. Para leitura do código de barras
bidimensional, o QRCode, será utilizado o aplicativo Barcode Scanner.
A arquitetura do sistema, conforme Figura 1, é composta pela aplicação móvel
proposta rodando em um celular com sistema operacional Android. A base de dados que
contém o RES do paciente se encontra instalada no SQLite de cada dispositivo. Todos
os celulares estão conectados na rede sem fio do ambiente hospitalar onde podem trocar
informações médicas entre si ou com outras bases de dados através do protocolo de
troca de mensagens médicas, o HL7.
As informações antes de serem exibidas nas interfaces da aplicação como:
Exams, Medical Procedures, Diagnosis, Allergies e Chronic Diseases são
contextualizadas de forma a destacar na tela palavras que sejam relevantes para o
profissional clínico, de acordo com sua especialidade.
AMBIENTEHOSPITALAR
(WI-FI)
(HL7)
(WI-FI)
(HL7)
(WI-FI)
(HL7)
(ACCESS POINT)
RES NO DISPOSITIVO
TELA EXAMS
TELA M. PROCEDURES
(RES)
CONTEXTUALIZAÇÃO DA
INFORMAÇÃO
(RES)
TELA DIAGNOSIS
TELA ALLERGIES
TELA CHRONIC DISEASES
Figura 1. Arquitetura do sistema.
29
Anais do XI Simpósio de Informática da UNIFRA - SIRC2012
ISSN: 2175-0955 Santa Maria - RS, Outubro de 2012
4. Sensibilidade ao Perfil do Usuário
A sensibilidade ao contexto foi criada com o desenvolvimento da classe Java
IdentifierOfContext.class. O objetivo é buscar as informações que sejam importantes no
momento do atendimento ao paciente a partir da especialidade do profissional. O
fluxograma dessa operação é representado na Figura 2.
Figura 2. Fluxograma do processo de identificação de contexto.
Ao entrar na aplicação, o sistema identifica a especialidade do profissional. Essa
especialidade está relacionada com uma tabela de palavras relacionadas a ela. Seguindo,
as activities (telas) antes de apresentar o conteúdo na tela chamam a classe
IdentifierOfContext.class, cuja função é comparar cada palavra existente nos campos
das tabelas Allergy, ChronicDisease, Exam, MedicalProcedure, Diagnosis com o
conjunto de strings existentes na tabela WordListOFSpecialty. Se uma palavra existir, a
classe IdentifierOfContext.class informa para as activities que destaquem essa
informação na tela do usuário.
Toma-se como exemplo um médico com especialidade em cardiologia, atende
um enfermo. Acessa a aplicação, faz a leitura do QRCode.
Figura 3. Interfaces de consulta às informações médicas de um
paciente.
30
Anais do XI Simpósio de Informática da UNIFRA - SIRC2012
ISSN: 2175-0955 Santa Maria - RS, Outubro de 2012
Conforme Figura 3, no momento da visualização das informações do paciente,
são observadas em destaque (fundo da fonte em cor diferente) as palavras Hipertrofia
Ventricular e Eletrocardiograma na interface Exams. Isto explora a atenção do usuário
nas informações que sejam cruciais, e ajudando o médico ou outro profissional a obter
um diagnóstico rápido.
5. Resultados e Discussões
A elaboração do diagrama de classes foi focada nas classes principais, bem como
métodos e variáveis. O sistema operacional móvel Android controla o ciclo de vida das
activities ou telas. Uma tela poderá estar sendo executada em segundo plano, pausada
ou parada. Quando uma tela sai do topo da pilha, ou seja, quando ela sai da execução,
outra assume seu posto [Lecheta, 2010].
Figura 4. Diagrama de classes.
Conforme a Figura 4 todas as telas produzidas são subclasses da classe
LifeCycle.class Essa classe controla o ciclo de vida de todas as activities. Isso se faz
necessário pelo fato de que as telas são chamadas através de passagem de parâmetro.
Por exemplo, caso o médico atenda outro paciente, a aplicação deve destruir telas que
guardam o código do paciente, evitando consultar o enfermo incorreto. Enfim, a partir
desse ponto a classe IdentifierOfContext.class aplica a sensibilidade ao contexto.
6.
Conclusões
A quantidade de informações em sistemas de gestão hospitalar inviabiliza o trabalho dos
profissionais de saúde, pois procurar a informação de que se necessita no momento do
atendimento ao paciente é necessário tempo e atenção. Assim, a disponibilidade da
informação e a interoperabilidade dos sistemas são extremamente importantes para o
andamento dos processos. É com essa concepção que Computação Ubíqua na saúde
pretende retirar dos usuários a preocupação de manusear a tecnologia da informação e
focar no atendimento ao paciente.
É nesse contexto que a proposta desse artigo tem o objetivo de tornar ágil o
atendimento utilizando dados relevantes da saúde do paciente e contextualizando as
31
Anais do XI Simpósio de Informática da UNIFRA - SIRC2012
ISSN: 2175-0955 Santa Maria - RS, Outubro de 2012
informações a partir do perfil do usuário.
Como trabalhos futuros pretende-se aperfeiçoar a segurança do sistema,
utilizando certificados digitais, parte considerada fundamental numa aplicação que
disponibiliza informações sigilosas sobre os pacientes. Outro ponto a trabalhar é a
sincronização com bases remotas, utilizando algum middleware livre como ferramenta
de sincronismo. Isso por que o espaço para armazenamento de dados em dispositivos
móveis é relativamente pequeno e não demanda tanto processamento.
7. Referências Bibliográficas
Android Developer. (2011) “Android 2.2 platform”. Disponível em:
http://developer.android.com/sdk/android-2.2.html. Acesso em: 28 de Julho, 2012.
Augustin, I.; Yamin, A.; Geyer C. F. R. (2005) ” Managing the follow-me semantics to
build large-scale pervasive applications”. In: INTERNATIONAL WORKSHOP ON
MIDDLEWARE FOR PERVASIVE AND AD-HOC COMPUTING, 3, 2005, France.
Disponível
em:
http://www.sciweavers.org/publications/managing-follow-mesemantics-build-large-scale-pervasive-applications. Acesso em: 07 de Julho, 2012.
Chen, G. e Kotz, D. (2002) “Solar: A pervasive-computing infrastructure for contextaware mobile applications”. Technical Report TR2002-421, February 2002.
Disponível em: http://www.cs.dartmouth.edu/reports/TR2002-421.pdf. Acesso em:
05 de Agosto, 2012.
Dey, A. K. (2001) “Understanding and using context”. Disponível em:
http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.67.236&rep=rep1&type=p
df. Acesso em: 11 de Agosto 2012.
Filho JR, Xavier JCB, Adriano AL. (2001) “A tecnologia da informação na área
hospitalar: um caso de implementação de um sistema de registro de paciente”. Rev
Adm Contemp. Disponível em: http://www.scielo.br/pdf/rac/v5n1/v5n1a07.pdf.
Acesso em: 02 de Setembro 2012.
HL7. (2011) “About HL7”. Disponível em: http://www.hl7.org/about/index.cfm?ref=n
av. Acesso em: 26 de Julho, 2012.
Lecheta, R. R. (2010) “Google android: aprenda a criar aplicações para dispositivos
móveis com o android sdk”. 2.ed. São Paulo: Novatec, 2010.
Ley, D. (2007) “Ubiquitous Computing”. 2007, p.64. Disponível em: http://www.m
miweb. rg.org.uk/publications/ict/emerging_tech02.pdf. Acesso em: 10 Agosto 2012.
Machado A. e Augustin I. (2011) “Associando contexto às tarefas clínicas na arquitetura
clinicspace”. In: SIMPÓSIO BRASILEIRO DE SISTEMAS DE INFORMAÇÃO, 7,
2011,
Salvador.
Anais...
Bahia:
UFBA,
2011.
Disponível
em:
http://www.lbd.dcc.ufmg.br/colecoes/sbsi/2011/associandocontexto.pdf. Acesso em:
11 de Agosto, 2012.
Souza, M. V. B. de. (2010) “Inferência de atividades clínicas na arquitetura clinicspace
a partir de propriedades do contexto”. 153 f. Dissertação de Mestrado em
Computação, Universidade Federal de Santa Maria, Santa Maria, 2010. Disponível
em:
http://cascavel.cpd.ufsm.br/tede/tde_busca/arquivo.php?codArquivo=3444.
Acesso em: 27 de Julho, 2012.
32
Anais do XI Simpósio de Informática da UNIFRA - SIRC2012
ISSN: 2175-0955 Santa Maria - RS, Outubro de 2012
Planejamento de Percepções e Ações de Agentes Jason no
Robô LEGO® Mindstorms® NXT 1.0
Rafael C. Cardoso1, Alexandre de Oliveira Zamberlan2
1
Faculdade de Informática - Pontifícia Universidade Católica do Rio Grande do Sul
(PUCRS) – Porto Alegre – RS – Brasil
2
Centro Universitário Franciscano (UNIFRA) – Santa Maria – RS – Brasil
[email protected], [email protected]
Abstract. This project intends to integrate two study fields from Artificial
Intelligence - Robotics and Intelligent Agents. The purpose of this paper is the
planning of actions and perceptions of BDI intelligent agents for the brand of
robots LEGO Mindstorms NXT. In order to achieve that purpose it is utilized
the Jason framework for multi-agent programming and the leJOS NXJ
programming language for the communication between computer and robot.
Resumo. Este trabalho busca integrar duas áreas de estudo da Inteligência
Artificial, a Robótica e Agentes Inteligentes. Objetiva-se realizar o
planejamento de ações e percepções de agentes inteligentes BDI para robôs
LEGO Mindstorms NXT. Para isso, é utilizado o framework Jason para
programação de sistemas multiagentes e a linguagem de programação leJOS
NXJ para a comunicação entre o computador e o robô.
1. Introdução
A robótica é uma área que se encontra em constante expansão, pois ela é utilizada em
conjunto com diversas outras áreas como por exemplo Medicina e Educação. Este artigo
pretende associar a Robótica à Teoria de Agentes, e para isso, é projetado um agente por
meio do framework para sistemas multiagentes (SMA) Jason, que realiza a comunicação
com o robô LEGO Mindstorms NXT utilizando a linguagem de programação leJOS
NXJ. Em específico, cita-se alguns trabalhos científicos que envolvem a tecnologia
LEGO Mindstorms e Inteligência Artificial realizados em (Jensen 2010) e (Benedettelli
2009).
É necessária utilizar a integração entre Jason e leJOS NXJ, pois o brick
programável do Kit LEGO Mindstorms NXT não tem capacidade suficiente para
suportar a máquina virtual Java, impossibilitando o uso do Jason diretamente no robô.
Nota-se que apesar da proposta estar sendo utilizada em um ambiente com apenas um
agente, a integração é voltada para SMA, porém não foi possível obter mais robôs a
tempo da conclusão deste artigo.
O artigo está dividido em cinco seções. Na seção 2 é abordada a robótica LEGO
Mindstorms. A seção 3 apresenta a teoria de agentes, conceitos fundamentais e uma
breve introdução ao framework. Na seção 4 é descrita a proposta de trabalho. Por fim,
na seção 5 apresenta-se os resultados e trabalhos futuros.
33
Anais do XI Simpósio de Informática da UNIFRA - SIRC2012
ISSN: 2175-0955 Santa Maria - RS, Outubro de 2012
2. Robótica LEGO Mindstorms
Existem várias definições para o que é um robô, porém a que mais se encaixa com a
proposta deste trabalho é a sugerida por Russel e Norvig (2004): os robôs são agentes
físicos que executam tarefas manipulando o mundo físico. Para isso, eles são equipados
com efetuadores como pernas, rodas, articulações e garras. Os efetuadores têm um único
propósito: exercer forças físicas sobre o ambiente. Os robôs também estão equipados
com sensores, que lhes permitem perceber seu ambiente.
O Kit LEGO Mindstorms (Mindstorms 2011) é composto de peças de brinquedo
(bricks) LEGO que podem ser conectadas com motores e sensores, tornando possível
projetar e construir robôs com facilidade. Ele possui quatro sensores e três motores que
acompanham o Kit. Por conta da ampla documentação disponibilizada pela LEGO,
programadores tem a sua disposição uma grande quantidade de linguagens de
programação. O NXT possui a sua própria linguagem de programação, que vem inclusa
no Kit LEGO Mindstorms, chamada NXT-G.
A linguagem de programação de alto nível leJOS NXJ é baseada na linguagem
Java, que implementa uma minimização da máquina virtual Java. Porém, devido ao fato
do hardware do brick programável NXT ser muito limitado, não foram incluídas todas
as classes da linguagem Java. Ela possui plugins para as IDEs Eclipse e Netbeans, além
de permitir a execução e a compilação diretamente pela linha de comando (leJOS 2011).
3. Teoria de Agentes
Agentes inteligentes, segundo Rezende (2005), são personagens computacionais que
atuam de acordo com um script definido, direta ou indiretamente, por um usuário. Eles
podem atuar isoladamente ou em comunidade formando um SMA.
Hübner, Bordini e Vieira (2004) apresentam que as mais importantes
arquiteturas de agentes deliberativos são baseadas em um modelo de cognição
fundamentado em três principais atitudes mentais que são as crenças, os desejos e as
intenções - BDI (Beliefs, Desires and Intentions), em que: i) crenças: o que o agente
sabe sobre o ambiente, e dos agentes presentes naquele ambiente; ii) desejos: os estados
desejados; iii) intenções: sequências de ações que um agente deve executar para atingir
os seus objetivos.
Wooldridge (1999) explica que: a função de revisão de crenças recebe a
informação de entrada dos sensores, que atualiza as crenças com base nas crenças
anteriores do agente. Devido a essa atualização, é possível gerar novos estados a serem
atingidos com base nas intenções particulares do agente em questão. Um filtro atualiza
as intenções do agente, a partir das crenças e desejos já atualizados e das suas intenções
atuais. Finalmente, com as intenções atualizadas, é realizada a escolha da ação a ser
executada pelo agente.
3.1. AgentSpeak(L) e Jason
Apresentada por Rao (1996), a linguagem AgentSpeak(L) foi projetada para a
programação de agentes utilizando o modelo BDI, na forma de sistemas de
planejamento reativos. Segundo Hübner, Bordini e Vieira (2004), um agente em
AgentSpeak(L) corresponde à especificação de um conjunto de crenças que formarão a
34
Anais do XI Simpósio de Informática da UNIFRA - SIRC2012
ISSN: 2175-0955 Santa Maria - RS, Outubro de 2012
base inicial de crenças e um conjunto de planos. Um plano é composto por um evento
ativador interno ou externo, seguido de suas crenças, que representam um contexto.
O interpretador Jason é uma extensão da linguagem AgentSpeak(L), que inclui
comunicação entre agentes baseada em diretivas de comunicação. A ferramenta Jason é
implementada em Java e é disponibilizada como código aberto sob a licença GNU
LGPL (Jason 2011). Além da documentação disponibilizada no site da linguagem,
encontra-se um livro para um aprofundamento da linguagem (Bordini, Hübner e
Wooldridge 2007).
4. Proposta de Trabalho
Baseando-se no contexto apresentado nas seções anteriores, é proposto o planejamento
de ações e percepções de agentes inteligentes em robôs reais. Isso é realizado através da
interação entre a linguagem de programação leJOS para robôs LEGO Mindstorms NXT
e o ambiente de programação para SMA Jason.
A interação entre o robô e o computador resulta no agente, esquematizado na
Figura 1, que é composto por 'cérebro', 'efetuadores' e 'olhos'. O código em Jason
representa o 'cérebro' do agente, via crenças e planos, executando em um computador.
Esse código faz a comunicação com os ' efetuadores' (motores) e 'olhos' (sensores) do
robô LEGO Mindstorms NXT, por meio do seu brick programável que está executando
o código em leJOS. Os sensores do robô captam as mudanças no ambiente e enviam
essas percepções para o 'cérebro' do agente no computador, onde está todo o
planejamento de seu comportamento, que por sua vez envia a intenção resultante do
plano escolhido ao robô, finalmente realizando a sua execução.
Figura 1. Esquema do Agente Robótico.
Os códigos em Jason foram executados em um computador que, através da
tecnologia bluetooth, permite a comunicação sem fio entre o robô, rodando leJOS, e o
computador.
Para testar a interação entre leJOS e Jason, foi projetado um circuito, ilustrado
pela Figura 2. O agente deverá perceber os obstáculos no caminho e desviar, ao mesmo
tempo que se mantém dentro do circuito que é delimitado pelas diferentes cores da
linha, em que: i) a linha em preto informa que o agente está no limite da pista, e caso a
encontre deverá virar para a direita; ii) a linha em cinza escuro informa que o agente está
35
Anais do XI Simpósio de Informática da UNIFRA - SIRC2012
ISSN: 2175-0955 Santa Maria - RS, Outubro de 2012
no limite da pista, e caso a encontre deverá virar para a esquerda; iii) a linha em cinza
claro determina a chegada, é o critério de parada e o objetivo do agente.
Os retângulos representam os obstáculos que podem ser encontrados no
caminho, e não possuem uma posição necessariamente pré-determinada. Eles podem ser
movidos para uma posição diferente da que se encontram na Figura 2, desde que o
caminho entre a partida e a chegada não se torne impossível (obstáculos muito próximos
que impossibilitam a passagem do robô). A estrutura do robô desenvolvida para este
circuito é composta por dois motores, cada um responsável por uma roda, um sensor de
luz (A) para detectar as diferentes cores da linha, e um sensor ultrassônico (B) para a
detecção dos obstáculos, como representado na Figura 3.
Figura 2. Modelo do circuito a ser
percorrido pelo agente.
Figura 3. Estrutura do Agente
Robótico para a tarefa proposta.
4.1. Implementação
O trabalho é baseado na implementação realizada por Jensen (2010), com algumas
correções e ajustes. Destaca-se uma correção onde estava sendo incluída a biblioteca
'classes.jar' nos códigos executados no computador (Jason) e, portanto, causando um
erro já que ela deve ser utilizada apenas para os códigos executados no robô (leJOS).
Este erro pode ter sido originado pelas diferenças nas versões das ferramentas, já que
Jensen (2010) não especificou quais foram utilizadas em seu trabalho.
Além disso, foi encontrada uma limitação do sensor de luz do robô LEGO
Mindstorms NXT 1.0 onde não é possível detectar três cores distintas com o sensor,
pois ele aceita apenas valores maiores ou menores que um coeficiente de luz informado.
Isso pode ser resolvido com a versão 2.0 do Kit LEGO Mindstorms que introduz o
sensor de cor, porém não foi possível obter nem a versão 2.0 do Kit, nem um sensor de
cor a tempo da conclusão deste artigo. Logo, a estrutura da pista de corrida foi
modificada, removendo-se os limites laterais da pista e mantendo-se apenas a linha de
chegada, alterando para a cor preta.
As versões dos componentes utilizadas no presente artigo são: Jason 1.3.4,
leJOS 0.8.5 NXJ, Apache Ant 1.8.2, Java JDK 1.6.0_13 e Sistema Operacional
Windows XP SP 3. Os códigos necessários para reprodução deste trabalho estão
disponíveis no link: <https://github.com/rafaelcaue/Jason-NXT>.
36
Anais do XI Simpósio de Informática da UNIFRA - SIRC2012
ISSN: 2175-0955 Santa Maria - RS, Outubro de 2012
Figura 4. Codificação do agente 'tfg.asl'.
A Figura 4 apresenta a codificação da tarefa em Jason. Observa-se que o valor
necessário para identificar a linha de chegada foi configurado como sendo menor que
400 (pode variar com o material da linha, a luminosidade do ambiente, e outros fatores),
e os obstáculos devem ser da mesma largura para que as manobras funcionem
corretamente. O agente assume como regra inicial a busca pela linha de chegada, e ao
iniciar move-se lentamente até encontrar a linha ou um obstáculo a menos de 20
centímetros. Caso encontre a linha finaliza-se o agente, e caso encontre um obstáculo é
realizado o desvio.
5. Conclusão
A comunicação por bluetooth resultou em um tempo de resposta do agente
consideravelmente alto, tornando os casos em que há uma alta atividade por parte dos
sensores, ou a necessidade de um tempo de resposta rápido, inviáveis. O atraso no
tempo de resposta se dá pelo fato de que as percepções captadas pelos sensores do robô
devem ser tratadas e enviadas para o computador, que por sua vez modificam a base de
crenças do agente, e resultam em uma intenção que é tratada e enviada ao robô, que
finalmente a transforma em uma ação e realiza a sua execução.
Com o tempo, espera-se que as novas versões do robô LEGO Mindstorms se
tornem cada vez mais aptas a essa tarefa, caso ocorra um aprimoramento no hardware,
aumentando a capacidade do brick programável. Eventualmente, será possível a
implementação da máquina virtual Java completa, o que permitiria a implementação do
framework Jason diretamente no robô, ocasionando em um aumento considerável no
tempo de resposta e possibilitando a programação de tarefas mais complexas.
A programação de SMA com Jason em robôs LEGO Mindstorms NXT é
possível, e sugere-se que seja explorada. Alguns exemplos demonstrados por Jensen
37
Anais do XI Simpósio de Informática da UNIFRA - SIRC2012
ISSN: 2175-0955 Santa Maria - RS, Outubro de 2012
(2010) expõe o potencial no uso de SMA em robôs LEGO Mindstorms NXT, entretanto
foram utilizados apenas dois robôs, pode-se expandir tal ideia e verificar os resultados
na implementação de uma sociedade com um maior número de agentes robóticos. Por
fim, espera-se que este trabalho auxilie trabalhos futuros na implementação de agentes
inteligentes e SMA em robôs LEGO Mindstorms NXT através da extensão do
framework Jason.
Referências Bibliográficas
Benedettelli, D. et al. (2009) "A LEGO Mindstorms experimental setup for multi-agent
systems", In: Proc IEEE Control Applications CCA Intelligent Control ISIC, p.12301235.
Bordini, R. H., Hübner, J. F. e Wooldridge, M. (2007) “Programming Multi-agent
Systems in AgentSpeak Using Jason”, Editora John Wiley & Sons.
Hübner, J. F., Bordini, R. H. e Vieira, R. (2004) "Introdução ao desenvolvimento de
sistemas multiagentes com Jason", XII Escola de Informática da SBC - Paraná.
Guarapuava, PR: Editora da UNICENTRO, Capítulo 2, p. 51 - 89.
Jason. (2012) "A Java-based interpreter for an extended version of AgentSpeak",
Disponível em: http://jason.sourceforge.net/, Maio.
Jensen, A. S. (2010) "Implementing LEGO Agents Using Jason", Disponível em:
http://arxiv.org/abs/1010.0150, Outubro.
leJOS.
(2012)
"Java
for
LEGO
http://leJOS.sourceforge.net/, Março.
Mindstorms",
Mindstorms.
(2012)
"LEGO
Mindstorms
http://mindstorms.LEGO.com/, Março.
NXT",
Disponível
em:
Disponível
em:
Rao, A. S. (1996) "AgentSpeak(L): BDI Agents speak out in a logical computable
language", In Van de Velde, W. e Perram, J., editors, Proceedings of the Seventh
Workshop on Modelling Autonomous Agents in a Multi-Agent World (MAAMAW'96), 22-25 January, number 1038 in Lecture Notes in Artificial Intelligence,
p.42-55, London.
Rezende, S. O. (2005) "Sistemas Inteligentes: Fundamentos e Aplicações", Editora
Manole, Barueri - SP.
Russel, S. e Norvig, P. (2004) "Inteligência Artificial", Traduzido por Vandenberg D. de
Souza, 2ª edição, Editora Campus, Florianópolis - SC.
Wooldridge, M. (1999) "Intelligent Agents", In Weiß, G., editor, Multiagent Systems A Modern Approach to Distributed Artificial Intelligence, chapter 1, p.27-77. MIT
Press, Cambridge, MA.
38
Anais do XI Simpósio de Informática da UNIFRA - SIRC2012
ISSN: 2175-0955 Santa Maria - RS, Outubro de 2012
Obtenção, normalização e disponibilização de informações
coletadas a partir de magnetômetros
Evandro Bolzan¹, Rafael Augusto de Almeida Lima², Clezio Marcos De Nardin²,
Adriano Petry3
¹ Universidade Federal de Santa Maria, Bolsista PCI/CNPq do Instituto Nacional de
Pesquisas Espaciais
² Instituto Nacional de Pesquisas Espaciais, Divisão de Aeronomia
3
Instituto Nacional de Pesquisas Espaciais, Centro Regional Sul de Pesquisas Espaciais
[email protected],[email protected],{rafael.lima,
denardin}@dae.inpe.br
Resumo. Magnetômetros são aparelhos que medem a intensidade, sentido e
direção do campo magnético em sua proximidade. Atualmente estão sendo
usados para medir as variações do campo magnético da terra causadas por
eventos associados ao clima espacial. Com o objetivo de facilitar o acesso dos
dados aos pesquisadores do Instituto Nacional de Pesquisas Espaciais foi
criado um Banco de Dados relacional e um software que faz a leitura e
inserção desses dados no Banco de Dados. Também foi desenvolvido um site
que mostra essas informações em formato gráfico.
Abstract. Magnetometers are devices that measure the intensity, orientation
and direction of magnetic field in its proximity. Currently they have been used
to measure changes in the Earth's magnetic field caused by events associated
with space weather. With the objective of facilitating access to data to
researchers from the National Institute of Space Research it was created a
relational database and a software that reads and integrates these data in the
database. It was also developed a website that displays the information in
charts.
1. Introdução
Tempestades geomagnéticas são ocasionadas por explosões solares que afetam
diretamente a camada ionosférica devido ao alto nível de radiação solar, com isso
gerando vários problemas para o ambiente terrestre. Segundo Matsuoka et al (2006),
explosões solares abruptas afetam o sistema de posicionamento global (GPS) porque
modificam a distância de medição. Outro fenômeno causado por explosões solares são
as tempestades ionosféricas que também tem consequências negativas sobre a terra.
Conforme Negreti (2012) elas podem causar quedas de energia e blackouts, danos a
satélites, aumento do risco da exposição humana a radiação no espaço, entre outras
consequências.
Para realizar o monitoramento das alterações geradas pelas tempestades
geomagnéticas o Instituto Nacional de Pesquisas Espaciais (INPE) usa magnetômetros,
que são aparelhos que medem a intensidade, sentido e direção do campo magnético em
sua volta. Há atualmente três desses aparelhos em funcionamento nas cidades de
39
Anais do XI Simpósio de Informática da UNIFRA - SIRC2012
ISSN: 2175-0955 Santa Maria - RS, Outubro de 2012
Cachoeira Paulista (SP), Eusébio (CE) e São Luiz (MA).
2. Desenvolvimento
Este trabalho visou à criação de um software para disponibilização dos dados obtidos a
partir de arquivos de magnetômetros armazenados em um servidor. Os dados devem ser
normalizados, processados e armazenados em um banco de dados relacional, facilitando
a visualização com gráficos em um sítio na Internet.
2.1 Análise do problema
Cada magnetômetro tem um computador que processa as medições e posteriormente
envia arquivos textuais para outro servidor de arquivos, onde ficam armazenados. Cada
magnetômetro utiliza uma estrutura de pastas pré-definida dentro do servidor de
arquivos cujo nome é abreviação do local onde está instalado o aparelho. Como
exemplo, o magnetômetro de São Luiz (MA) é representado como SLZOES. Dentro de
cada diretório de cada magnetômetro existe uma separação por ano, ou seja, pastas que
mantém arquivos relativos a cada ano. Esta estrutura de pastas pode ser vista na figura
1.
Figura 1. Hierarquia de diretórios do servidor de arquivos dos magnetômetros.
Em outro computador fica o software elaborado na linguagem de programação
PHP que faz a leitura, processamento e armazenagem das informações contidas no
servidor de arquivos de magnetômetros. Utilizando um banco de dados que está
instalado, a execução do programa é feita a cada hora usando o serviço de agendamento
CRON do sistema operacional LINUX. A comunicação entre o computador em que está
40
Anais do XI Simpósio de Informática da UNIFRA - SIRC2012
ISSN: 2175-0955 Santa Maria - RS, Outubro de 2012
o banco de dados e o software de processamento com o servidor de arquivos de
magnetômetros é feita usando o protocolo de transferência de arquivos (FTP).
Cada computador de magnetômetro envia dois tipos de arquivos textuais para o
servidor de arquivos de magnetômetros, um contento informações relativas a medidas
realizadas a cada minuto, neste caso gerando um arquivo de texto por dia com
aproximadamente 1440 registros, e outro compactado que guarda informações relativas
a medidas realizadas a cada segundo, gerando um arquivo por hora, que tem em torno
de 3600 registros. Os registros em ambos os tipos de arquivos tem um formato
padronizado, onde cada coluna armazena um valor de medição do magnetômetro,
proporcionando uma leitura segura e inequívoca.
2.2 Modelagem relacional
A modelagem do banco de dados foi planejada de modo que evitasse redundância e
inconsistência de informação e utilizando técnicas de normalização de arquivos segundo
Heuser (2008). Para concretização do banco de dados foi usada a tecnologia de sistema
gerenciador de banco de dados (SGBD) PostgreSQL, porque conforme Alecrim (2008)
tem bom desempenho em tabelas com grande número de registros e oferece vários tipos
de dados, além de ser um SGDB gratuito.
Foram criadas 7 tabelas como poder ser visto na figura 2, a qual representa a
modelagem do banco de dados. A primeira tabela usada na execução do software é a
Mag_file que armazena detalhes pertinentes ao arquivo manipulado no momento e tem
um campo identificador que será usado mais tarde para futuras relações. Cada arquivo
gera várias linhas de registros que são salvos na tabela Collect_Date, que armazena
dados como data, hora e tipo (pode ser valores coletados a cada segundo ou a cada
minuto) de cada registro. Esta tabela também contém chave estrangeira para a tabela
Instrument, que reuni nome e descrição de cada magnetômetro. A tabela Mag_Data
guarda os valores da medição, e é identificada por três chaves estrangeiras: uma da
tabela Collect_Date, outra da tabela Label e a última da tabela Unit. A tabela Label tem
informações relativas ao valor medido, e a tabela Unit contém a unidade do valor
armazenado em Mag_Data. Há mais uma tabela nomeada Mag_Detail com campos que
guardam maiores detalhes de cada magnetômetro e possui uma chave estrangeira
relativa a tabela Instrument.
2.3 Software de processamento
No primeiro estágio o software desenvolvido realiza a conexão com o banco de dados e
a conexão FTP com o servidor de arquivos de magnetômetros. O processamento do
software acontece de forma recursiva. Primeiro é feita a leitura de todas as pastas de
magnetômetros – CXPOES, EUSOES, SLZOES, esses valores são armazenados em um
vetor. Adiante é feita uma nova leitura dentro dos diretórios citados anteriormente.
Conforme a figura 1, serão lidos: cxp12, cxp13, cxp14, cxp15 e eus12, eus13, eus14,
eus15 e slz12, slz13, slz14, slz15. Estes valores lidos são guardados em outro vetor,
concatenado com o nome de seu respectivo magnetômetro, como exemplo:
CXPOES/cxp12. Com isso o caminho para o acesso FTP é criado. Antes da próxima
varredura que é dentro dos diretórios referentes a cada ano e que irá armazenar os
nomes dos arquivos, o programa faz uma consulta a tabela Mag_file do banco de dados
para pegar a data do último registro armazenado do presente diretório magnetômetro.
41
Anais do XI Simpósio de Informática da UNIFRA - SIRC2012
ISSN: 2175-0955 Santa Maria - RS, Outubro de 2012
Com essa data, pode-se comparar e armazenar em um vetor os nomes dos arquivos que
tiverem a data mais recente, resolvendo assim a maneira de obter os novos arquivos que
foram submetidos no servidor. Dessa maneira, apenas novos registros serão cadastrados
no banco de dados, evitando inconsistência de informação.
Antes de cada arquivo ser interpretado, ele é transferido para o computador onde
está o software e após é aberto. No caso dos arquivos compactados, os mesmos também
são transferidos, mas antes de serem lidos eles são descompactados. Ao final do
processamento desses arquivos, eles são fechados e excluídos do computador onde está
o software.
O programa também foi elaborado visando processar novas informações
automaticamente, ou seja, caso um novo magnetômetro seja instalado e seu diretório
criado no servidor de arquivos de magnetômetros, o software detectará e realizará a
leitura, processamento e inserção dessas novas informações no banco de dados.
Figura 2. Modelo do Banco de Dados dos Magnetômetros.
2.4 Acesso aos dados
Na última fase do projeto, foi desenvolvido um sítio na Internet para consulta desses
dados coletados e geração de gráficos, onde o usuário poderá interagir obtendo
diferentes formas de visualização da informação. As opções disponibilizadas incluem
amostragem dos dados dos três magnetômetros juntos ou separadamente, ambas com
opção de escolha de data. Há ainda outra página que mostra detalhes de cada
magnetômetro, referentes à tabela Mag_Detail. A figura 3 exibe gráfico que contém
informações de todos os magnetômetros.
42
Anais do XI Simpósio de Informática da UNIFRA - SIRC2012
ISSN: 2175-0955 Santa Maria - RS, Outubro de 2012
Figura 3. Exibe informações dos três magnetômetros.
3. Conclusão
O processamento e armazenagem de dados oriundos de magnetômetros é uma
importante ferramenta para auxiliar pesquisadores no estudo e monitoramento do clima
espacial. Dispondo de um software para interpretação dos registros dos arquivos de
magnetômetros e que faz a inserção dos mesmos no banco de dados, estrutura-se a
informação de modo organizado. Desse modo, facilita a disponibilização dessas
informações de maneira rápida e amigável com gráficos e pela internet e garante acesso
rápido e irrestrito para a busca e a filtragem dos valores requeridos em determinado
período.
Referências bibliográficas
Matsuoka, m. T; Camargo, P. O; Batista, I. S. (2006). Impacto de explosões solares no
comportamento da ionosfera e no posicionamento com GPS na região brasileira:
estudo de caso para o dia 28 de outubro de 2003. Bolelim Ciências Geodeséticas,
secão Artigos, Curitiba, v. 12, no 2, p.315-334, jul-dez, 2006.
Negreti, P. M. de S. (2012). Estudo do conteúdo eletrônico total na região brasileira em
períodos magneticamente perturbados. http://urlib.net/8JMKD3MGP7W/3BS8S7H.
Agosto.
Heuser C. A. (2008). Projeto de Banco de Dados. Editora Artmed, 2008.
43
Anais do XI Simpósio de Informática da UNIFRA - SIRC2012
ISSN: 2175-0955 Santa Maria - RS, Outubro de 2012
Alecrim, E. (2008). Banco de dados MySQL e PostgreSQL. Acessado em
http://www.infowester.com/postgremysql.php. Agosto.
44
Anais do XI Simpósio de Informática da UNIFRA - SIRC2012
ISSN: 2175-0955 Santa Maria - RS, Outubro de 2012
Aumento da Capacidade de Processamento de um Cluster
de Computadores
Eduardo C. Biassus1, Henrique M. Gasparotto2, Adriano Petry3, Haroldo Fraga de
Campos Velho4
1
2
Curso de Ciência da Computação – Centro Universitário Franciscano (UNIFRA)
Rua dos Andradas, 1614 – Santa Maria – RS – Brasil
Curso de Engenharia de Computação – Universidade Federal de Santa Maria (UFSM)
Av. Roraima, s/n – Santa Maria – RS – Brasil
3
Centro Regional Sul de Pesquisas Espaciais (CRS/INPE)
Av. Roraima, s/n, Prédio do INPE – Santa Maria – RS – Brasil
4
Laboratório Associado de Computação e Matemática Aplicada (LAC/INPE)
Av. dos Astronautas, 1758, São José dos Campos – SP – Brasil
[email protected], [email protected],
[email protected], [email protected]
Abstract. This work presents the activities performed to increase the
processing capacity of an existing computer cluster. Several processing nodes
were available to this task, which consisted of hardware analysis, software
installation, internal network configuration, and resources inclusion in
resource manager database. At last, functioning tests were run in the new
cluster, and the jobs execution capacity improvement was verified.
Resumo. Esse trabalho apresenta as atividades desenvolvidas para o aumento
da capacidade de processamento de um cluster de computadores existente.
Diversos nós de processamento foram disponibilizados para essa tarefa, que
consistiu na análise do hardware, instalação de software, configuração da
rede interna do cluster, e inclusão dos recursos no banco de dados do
gerenciador de recursos utilizado. Ao final, testes de funcionamento foram
executados no novo cluster, que demonstraram o aumento em sua capacidade
de execução de tarefas.
1. Introdução
A Computação de Alta Performance (HPC) [Cheung, A.L 1992][Kuck, D. J. 1996]
abrange, dentre outras coisas, o trabalho cooperativo de diversos computadores
conectados em um cluster, a fim de que a execução paralelizada de programas aconteça
no menor tempo possível. O Laboratório de Computação para Clima Espacial (LCCE)
do Centro Regional Sul de Pesquisas Espaciais (CRS/INPE) realiza diversas simulações
que exigem grande poder de processamento para serem executadas em tempo hábil. Este
trabalho relata o aumento na capacidade de processamento de um cluster de
computadores existente, a partir de equipamentos ociosos recebidos pelo grupo de
trabalho.
45
Anais do XI Simpósio de Informática da UNIFRA - SIRC2012
ISSN: 2175-0955 Santa Maria - RS, Outubro de 2012
2. Desenvolvimento
O LCCE dispõe de um cluster em pleno funcionamento, usado para fazer a previsão da
dinâmica da ionosfera terrestre [Petry et al. 2012]. Recentemente foram recebidos novos
nós de processamento para serem adicionados a esse cluster. Esses equipamentos
passaram por verificações de integridade, de desempenho e configurações de hardware.
A partir dessa análise do hardware recebido, foram feitas as instalações e configurações
da rede e dos diversos softwares necessários ao bom funcionamento dos novos nós. A
última etapa realizada foi a integração desses nós ao gerenciador de recursos OAR
[Nicolas e Joseph 2011][Machado, Cargnelutti e Petry, 2012] para utilização na
previsão realizada.
2.1. Cluster disponível
O cluster inicialmente contava com 7 nós de processamento e 2 nós para
armazenamento de dados. Esses nós de processamento podem ser divididos em dois
grupos, de acordo com a sua configuração de hardware: no primeiro grupo, existem 2
nós de processamento, cada um contando com 2 processadores Intel Xeon 2.93 GHz,
24 núcleos de processamento e 32 GB de memória RAM; o segundo grupo consiste nos
5 nós de processamento restantes, onde cada um apresenta 2 processadores Intel Xeon
2.53 GHz, 16 núcleos de processamento e 16 GB de memória RAM. Os dois nós
restantes possuem 3.6 TB para armazenamento de dados.
2.2. Avaliação do hardware disponível
Inicialmente foi feito um levantamento das peças, equipamentos, e cabos disponíveis
para atualização do cluster existente. Com isso, foi constatada a existência de outros 23
nós de processamento, além de vários cabos de redes e de energia. Tratam-se de nós HP
Proaliant dl 145 G2, que possuem 2 processadores dual core AMD Opteron 275
trabalhando a frequência de 2.2 Ghz, contando com 1 MB de memória cache, 2 GB de
memória principal e 2 discos rígidos (HDs) com capacidade de 80 GB cada.
Como o equipamento não era novo, ele foi inicialmente limpo e a integridade
das peças foi verificada. Constataram-se vários problemas com as placas de rede deles,
sendo tais problemas solucionados com uma limpeza utilizando uma simples borracha.
Um dos nós apresentou problemas na fonte de alimentação e outro na placa mãe. Então
foi aproveitada a fonte do segundo no primeiro. Com isso, 22 nós completos foram
disponibilizados, e 4 placas de memória de 512 MB, 2 HDs e 2 processadores ficaram
de reserva para eventuais substituições que se façam necessárias no futuro.
2.3. Instalações de software e configurações de rede
Foi realizada a instalação do sistema operacional CentOS versão 6.3 64bits [Morimoto
2008] nos nós utilizados na atualização do cluster, o qual se adapta muito bem para as
necessidades, além de ser o sistema operacional livre e já em uso no cluster. Os HDs
foram configurados utilizando redundância tipo RAID 10 [Alecrim 2012] via software,
com um espaço subdividido em 10Gb (/), 300Mb (/boot), 20Gb (/var), 8Gb (swap) e o
restante disponível em /home.
Para a comunicação na rede interna e externa do cluster (ver figura 1), foram
utilizadas as 2 interfaces de rede existentes em um dos nós (storage). Uma delas é foi
46
Anais do XI Simpósio de Informática da UNIFRA - SIRC2012
ISSN: 2175-0955 Santa Maria - RS, Outubro de 2012
configurada para acesso externo, e outra para comunicação na rede interna do cluster.
Assim, qualquer acesso aos recursos do cluster deverá, necessariamente, passar por esse
nó, onde as configurações de segurança devem ser cuidadosamente definidas, a fim de
evitar problemas de acesso indevido. Cada nó de processamento tem seu número IP
variando de 192.168.100.50 a 192.168.100.80. A pasta /home de um dos nós (node000)
está mapeada em todos os demais via Network File System (NFS) [Jones 2010], de
forma que a execução paralela de rotinas possa acessar o mesmo espaço de memória em
disco.
Figura 1. Conexão de rede dos computadores constituintes do cluster
2.3. Integração ao gerenciador de recursos
O OAR [Nicolas e Joseph 2011] é um gerenciador de recursos e tarefas para clusters e
outras infraestruturas computacionais que vem sendo utilizado pelo grupo. Nessa etapa
do projeto, foi feita a integração dos novos nós com o OAR. Para isso, foi realizada a
instalação e configuração do gerenciador nos novos nós, além da criação do usuário
“oar” necessário ao funcionamento desse sistema. Por fim, foi efetuada a atualização do
banco de dados do OAR, atentando ao fracionamento dos recursos em função da
memória disponível, da seguinte forma: foram adicionados os campos “mem” e “core” à
tabela “resources” do banco de dados. Para que o hardware pudesse ser alocado tanto
em função de um número de núcleos de processamento, quanto em função de uma
quantidade de memória principal disponível, foi estabelecida uma unidade de memória
comum entre os grupos de nós (1/24 GB) de forma que todos os nós pudessem dividir a
memória disponível entre os núcleos de processamento utilizando unidades inteiras (e
não fracionárias) de memória. Os detalhes desse tipo de abordagem são mostrados em
[Machado, Cargnelutti e Petry, 2012]. Com isso, o primeiro grupo de nós antigos
conterá 32 unidades de memória por core, o segundo, 24 registros por core, e o grupo de
nós novos, 12 registros por core.
3. Resultados alcançados
O desempenho do cluster resultante (figura 2), foi comparado com o cluster original
para a execução da previsão do conteúdo eletrônico da ionosfera na região da América
do Sul [Petry et al. 2012], em termos de tempo de processamento requerido para rodar
47
Anais do XI Simpósio de Informática da UNIFRA - SIRC2012
ISSN: 2175-0955 Santa Maria - RS, Outubro de 2012
56 instâncias do modelo Sheffield University Plasmasphere-ionosphere Model (SUPIM)
[Bailey et al. 1997]. Com o aumento da capacidade do cluster, o tempo de
processamento foi reduzido de 1812 segundos para 1630 segundos. Essa redução de
pouco mais de 10% no tempo total se deu, basicamente, em razão da redução do número
de processos simultaneamente executados em cada nó de processamento. No entanto, é
importante mencionar que o cluster resultante não requereu a ocupação de todos os
recursos de hardware disponíveis. Isso possibilitará, portanto, a previsão do conteúdo
eletrônico da ionosfera para uma região maior, executando mais instâncias do SUPIM, e
dentro do mesmo tempo de processamento.
Figura 2. Imagem do cluster após aumento da capacidade de processamento
4. Conclusão
Este trabalho detalhou as atividades relacionadas ao aumento da capacidade de
processamento de um cluster existente, utilizando recursos de hardware que foram
avaliados, configurados e instalados para funcionarem de forma conjunta ao hardware
existente. Após a atualização, o novo cluster pode contar com uma capacidade de
processamento significantemente superior, abrangendo um total de 58 CPUs, 216
núcleos de processamentos (cores), 4512 unidades de memória equivalendo a uma
quantidade total de 188 GB de memória RAM. Esses recursos podem ser livremente
alocados para execução de tarefas que exijam muito esforço computacional ou alocação
de memória. Para isso, está sendo usado o gerenciador de recursos OAR, que permite a
submissão de tarefas tanto em função do número de CPUs, cores ou unidades de
memória.
Como trabalhos futuros, espera-se integrar outro conjunto de equipamentos
focados na questão do aumento da capacidade de armazenamento de dados. Tal
melhoria visa possibilitar que as saídas processadas pelas simulações possam ser
mantidas para acessos futuros.
48
Anais do XI Simpósio de Informática da UNIFRA - SIRC2012
ISSN: 2175-0955 Santa Maria - RS, Outubro de 2012
Agradecimentos: Os autores agradecem o auxílio recebido via Fundação da Amparo à
Pesquisa do Estado do Rio Grande do Sul (FAPERGS), através das bolsas: PROBIC
processo 0254-2551/12-4, e PROBIT processo 0256-2551/12-0.
Referências
Alecrim, E. . Sistemas RAID (Redundant Array of Independent Disks). Publicado em
25/01/2012. Disponível em: <http://www.infowester.com/raid.php>. Acesso em
08/09/2012.
Bailey, G.J., Y.Z. Su, and N. Balan, The Sheffield University plasmasphere ionosphere
model - a review, J. Atmos. Terr. Phys., 59, 1541-1552, 1997.
Cheung, A.L. . High performance computing on a cluster of workstations. In: HighPerformance Distributed Computing, 1992. (HPDC-1), Sep 1992, pp 152-160.
Jones, T. . Network File System and Linux. 2010. Disponível em:
<http://www.ibm.com/developerworks/linux/library/l-network-filesystems/>. Acesso
em 10/9/2012.
Kuck, D.J. . High Performance Computing: Challenges for Future Systems. Oxford
University Press, Inc., New York, NY, USA,1996.
Machado, E.R.P., Cargnelutti, R. e Petry, A. . Otimização do Balanceamento de Carga
Usando OAR. In: 12a Escola Regional de Alto Desempenho, 2012, Erechim, 2012.
p. 185-188.
Morimoto,
C.E.
.
Tutorial
do
CentOS.
2008.
Disponível
<http://www.hardware.com.br/tutoriais/centos/>. Acesso em 10/9/2012.
em:
Nicolas, C. and Joseph, E. (2011) “Resource Management System for High Performance
Computing”, http://oar.imag.fr, Novembro de 2011.
Petry, A. et al. Operational Ionospheric Dynamics Prediction in Brazilian Space
Weather Program. Submetido para Journal of Atmospheric and Solar-Terrestrial
Physics, 2012.
49
Anais do XI Simpósio de Informática da UNIFRA - SIRC2012
ISSN: 2175-0955 Santa Maria - RS, Outubro de 2012
EJBCA: solução de software livre para implementação e
gerenciamento de infraestrutura de chaves públicas*
Thiago G. Silva, Josivan B. Silva, Elionildo S. Menezes, Lívio L. Ribeiro
Instituto Federal de Educação, Ciência e Tecnologia da Paraíba (IFPB)
Av. 1º de Maio, 720, Jaguaribe, João Pessoa - PB - CEP: 58.015-430
{thiago.gouveia.da.silva,van.jp01}@gmail.com, [email protected],
[email protected]
Abstract. This paper performs an analysis on the tool EJBCA as a solution for
a public key infrastructure, as well as its advantages and disadvantages and
exemplifies two organizations that use it. Moreover, a comparison is made
with OpenCA PKI, another free software tool for the same purpose, and a
common use case is also demonstrated.
Resumo. Este trabalho realiza uma análise da ferramenta EJBCA como
solução para infraestrutura de chaves públicas, bem como suas vantagens e
desvantagens e exemplifica duas organizações que a utilizam. Além disso, é
realizada uma comparação com o OpenCA PKI, outra ferramenta de software
livre destinada ao mesmo propósito, e um caso comum de uso também é
demonstrado.
1. Introdução
De acordo com Tanenbaum e Wetherall (2011, p.506), uma Autoridade Certificadora
(CA, do inglês Certification Authority) é uma organização que certifica chaves públicas,
sendo responsável por garantir que determinada chave pertença a determinado
indivíduo. Desta forma, a CA assume o papel de terceira parte confiável com o intuito
de garantir comunicação segura em um ambiente que utilize criptografia assimétrica.
A certificação efetuada pela CA ocorre por meio da emissão de certificados
digitais, que são compostos, basicamente, pela chave pública do usuário mais seus
dados de identificação assinados digitalmente pela CA, para garantir que foi realmente
emitido por esta.
A CA é um dos elementos que compõem a infraestrutura de chaves públicas,
denominada PKI (do inglês, Public Key Infraestruture), definida na RFC 2828 como
um conjunto de hardware, software, pessoas, políticas e procedimentos necessários para
criar, gerenciar, armazenar, distribuir e revogar certificados digitais com base na
criptografia assimétrica (SHIREY, BBN TECHNOLOGIES e GTE, 2000, p. 136).
Segundo Stallings (2008, p. 309), em linhas gerais, os principais elementos de
uma PKI podem ser descritos da seguinte maneira:
*

Entidade final: Usuário, servidor, ativo de rede ou quaisquer entidades que
possam ser identificadas por um certificado digital;

Autoridade Certificadora (CA): Entidade responsável pela emissão de
certificados e listas de revogação (CRLs, do inglês Certificate Revocation Lists);
Trabalho patrocinado pelo Projeto SIM – Sistema de Informação Municipal
50
Anais do XI Simpósio de Informática da UNIFRA - SIRC2012
ISSN: 2175-0955 Santa Maria - RS, Outubro de 2012

Autoridade de Registro (RA, do inglês, Registration Authority): Elemento
opcional responsável pelo registro das entidades finais;

Emissor da CRL: Membro, também opcional, para o qual a CA pode delegar a
responsabilidade de publicação das CRLs. Uma alternativa ao uso das CRLs é o
protocolo OCSP (Online Certificate Status Protocol), descrito na RFC 2560,
utilizado para obter o estado de revogação de um certificado em tempo real (
Myers, et al., 1999);

Repositório: Indica qualquer método de armazenamento de certificados e
CRLs.
Este trabalho descreve a ferramenta EJBCA como solução para implementar
uma PKI, a compara com outras soluções disponíveis no mercado e apresenta um
cenário comum de uso desta solução.
2. EJBCA
Esta seção descreve a ferramenta EJBCA, vantagens e desvantagens de utilizá-la,
enumera organizações que utilizam, apresenta uma comparação entre esta e o OpenCA
PKI (OPENCA LABS, 2012), uma solução para PKI de código aberto, e apresenta um
caso de uso comum.
2.1. Descrição da ferramenta
O EJBCA é uma solução para implementação de uma PKI desenvolvida sobre a
plataforma Java EE (ORACLE, 2012) e com uma arquitetura baseada em componentes,
podendo ser usada de forma independente ou integrada a outras aplicações (EJBCA
TEAM, 2012a).
A Figura 1 demonstra um exemplo de implementação do EJBCA em uma
arquitetura distribuida, onde cada elemento ou componente da PKI opera em servidores
distintos. A Autoridade de Registro (RA) e os Servidores OCSP estão situados na zona
desmilitarizada (logicamente situada entre os firewalls FW1 e FW2) enquanto a CA está
situada na rede interna. Desta maneira não é possível efetuar requisições diretamente
através da Internet, cabendo à RA a intermediação entre o entidade final e a CA.
Figura 1 - Exemplo de implementação distribuída do EJBCA (EJBCA TEAM, 2012b)
51
Anais do XI Simpósio de Informática da UNIFRA - SIRC2012
ISSN: 2175-0955 Santa Maria - RS, Outubro de 2012
2.2. Vantagens e desvantagens
A utilização do EJBCA para implementação de PKI oferece algumas vantagens
(EJBCA TEAM, 2012c):

Facilidade de administração, possuindo uma interface web onde é possível
administrar diversos recursos da PKI;

Possibilidade de administrar inúmeras CAs em diversos níveis e cadastrar vários
administradores com níveis de privilégio específicos;

Configuração de perfis de entidades finais e certificados;

Integração com infraestrutura Java já existente na organização, evitando a
necessidade de configurar uma nova infraestrutura para a CA;

Implementada como Software Livre.
Contudo, seguem algumas desvantagens da adoção do EJBCA como PKI:

Versão mais recente disponível apenas para clientes comerciais (PRIMEKEY
SOLUTIONS AB, 2012);

Suporte comunitário e profissional disponível apenas para os servidores de
aplicação JBoss 5.1 e Glassfish 2.1.1 (EJBCA TEAM, 2012d);
Analisando os itens citados, percebe-se que as desvantagens não são suficientes
para inviabilizar o uso do EJBCA.
2.3. Organizações que utilizam o EJBCA
A qualidade e robustez do EJBCA podem ser corroboradas pelas diversas organizações
que o utilizam para gerenciar suas PKIs, entre as quais:

Ministério das finanças da França: Possui três CAs e uma subCA utilizadas
para emitir certificados para servidores e para usuários se autenticarem através
do navegador. Possui até 40000 usuários (EJBCA TEAM, 2012e).

Serasa: Órgão que faz parte da estrutura da ICP-Brasil e utiliza o EJBCA para
gerar certificados para o setor financeiro. Possui até 20000 usuários (EJBCA
TEAM, 2012e).
2.4. Comparativo entre EJBCA e OpenCA PKI
Existem outras soluções de software livre para a criação de PKIs, sendo uma delas o
OpenCA PKI, composta por uma interface web desenvolvida em Perl, uma base de
dados e o OpenSSL, para as operações de criptografia (OPENCA LABS, 2010).
O OpenCA PKI, da mesma maneira que o EJBCA, funciona de forma modular,
criando assim uma arquitetura distribuída. Ao contrário do EJBCA, não utiliza a
plataforma Java EE e, por isso, não é independente de sistema operacional, funcionado
apenas em sistemas unix-like.
Ao comparar o OpenCA PKI com o EJBCA, percebe-se que a primeira é
incipiente em relação à segunda, pois carece de diversos recursos encontrados na
segunda solução, como a criação e administração de múltiplas CAs e monitoramento do
estado de funcionamento da CA. Além disso, também não possui suporte comercial
disponível e seu desenvolvimento demonstra pouca atividade, pois sua versão mais
52
Anais do XI Simpósio de Informática da UNIFRA - SIRC2012
ISSN: 2175-0955 Santa Maria - RS, Outubro de 2012
recente, OpenCA PKI V1.1.1, foi lançada em 2010 (OpenCA Labs, 2010) tendo apenas
a publicação de um pacth para correções de erros logo após seu lançamento (OpenCA
Labs, 2011).
2.5. Cenário de uso do EJBCA como uma CA auto-assinada
Um dos possíveis cenários de uso do EJBCA é a implementação de uma CA autoassinada a fim de gerar certificados para uso na rede interna de uma organização, onde
tais certificados são utilizados para autenticação de usuários nos serviços internos.
Neste cenário, quando um usuário é cadastrado no sistema da organização, ele
também deve ser cadastrado pelo administrador no EJBCA para que este possa emitir o
certificado. Então, o usuário acessa a interface web do EJBCA, entra com suas
credenciais e o seu certificado é gerado e transferido para o navegador, por meio do qual
o usuário poderá realizar a autenticação.
Vale salientar que antes de realizar a autenticação, a aplicação deve consultar o
EJBCA através do protocolo OCSP para verificar o estado de revogação do certificado
e, estando este válido, o usuário é autenticado. Caso contrário, a aplicação nega a
autenticação.
3. Considerações Finais
A implementação e utilização de uma PKI traz significantes benefícios à organização no
âmbito da Segurança da Informação, dos quais é possível citar a autenticação segura de
usuários e máquinas, não-repúdio – impossibilidade de negar a autoria da informação –,
sigilo e a integridade das informações que trafegam na rede.
A ferramenta de implementação e gerenciamento de infraestrutura de chaves
públicas EJBCA oferece meios para criar e administrar autoridades certificadoras,
certificados e entidades finais de maneira simples tanto para administradores quanto
para usuários, de forma que o incremento na segurança não trará uma redução
significativa na produtividade dos usuários e, consequentemente, da organização.
Referências
Myers, M., Ankney, R., VeriSign, CertCo, Malpani, A., ValiCert, . . . Entrust
Technologies. (1999). X.509 Internet Public Key Infrastructure Online Certificate
Status Protocol - OCSP. Acesso em 14 de Setembro de 2012, disponível em Request
for Comments: 2560: http://www.ietf.org/rfc/rfc2560.txt
EJBCA Team. (2012a). Home. Acesso em 24 de Agosto de 2012, disponível em EJBCA
- Open Source PKI Certificate Authority: http://www.ejbca.org
EJBCA Team. (2012b). Architeture. Acesso em 14 de Setembro de 2012, disponível em
EJBCA
Open
Source
PKI
Certificate
Authority:
http://www.ejbca.org/architecture.html
EJBCA Team. (20 de Agosto de 2012c). Features. Acesso em 14 de Setembro de 2012,
disponível em EJBCA - Open Source PKI Certificate Authority:
http://www.ejbca.org/features.html
EJBCA team. (2012d). Installation. Acesso em 14 de Setembro de 2012, disponível em
EJBCA
Open
Source
PKI
Certificate
Authority:
http://www.ejbca.org/installation.html#Application servers
53
Anais do XI Simpósio de Informática da UNIFRA - SIRC2012
ISSN: 2175-0955 Santa Maria - RS, Outubro de 2012
EJBCA Team. (2012e). Reference installations. Acesso em 14 de Setembro de 2012,
disponível em EJBCA - Open Source PKI Certificate Authority:
http://ejbca.org/installations.html
OpenCA Labs. (2010). OpenCA Labs: OpenCA PKI. Acesso em 15 de Setembro de
2012,
disponível
em
OpenCA
Research
Labs:
http://www.openca.org/projects/openca/
OpenCA Labs. (2011). OpenCA PKI v1.1.1. Acesso em 15 de Setembro de 2012,
disponível
em
OpenCA:
Wiki:
http://wiki.openca.org/wiki/index.php/OpenCA_PKI_v1.1.1
OpenSSL Project. (2009). Welcome to the OpenSSL Project. Acesso em 24 de Agosto
de 2012, disponível em OpenSSL: http://www.openssl.org/
Oracle. (2012). Java EE Reference at a Glance. Acesso em 9 de Setembro de 2012,
disponível
em
Oracle:
http://www.oracle.com/technetwork/java/javaee/documentation/index.html
PrimeKey Solutions AB. (2012). EJBCA Editions. Acesso em 14 de Setembro de 2012,
disponível em PrimeKey: http://www.primekey.se/Products/EJBCA+PKI/Editions/
Shirey, R., BBN Technologies, & GTE. (2000). Internet Security Glossary. Acesso em
31 de Julho de 2012, disponível em Request for Comments: 2828:
http://www.ietf.org/rfc/rfc2828.txt
Stallings, W. (2008). Criptografia e segurança de redes (4ª Ediçao ed.). São Paulo:
Pearson Pretince Hall.
Tanenbaum, A. S., & Wetherall, D. (2011). Redes de Computadores (5ª ed.). São Paulo:
Pearson Prentice.
54
Anais do XI Simpósio de Informática da UNIFRA - SIRC2012
ISSN: 2175-0955 Santa Maria - RS, Outubro de 2012
Estudo comparativo entre os sistemas gerenciadores de
bancos de dados SQLite e Perst em Smartphone Android
.com
Tiago Roberto Lammers* e Daniel Pezzi da Cunha*
*
CCAET – Universidade de Cruz Alta (UNICRUZ)
www.unicruz.edu.br – Cruz Alta – RS – Brasil
[email protected] e [email protected]
Abstract. In recent years smartphones have become one of the most used
devices, offering diverse applications focused on data storage and exchange,
thus making mobile information itself, which can be accessed anywhere and
anytime. This work has focused on comparative study between SQLite and Perst
DBMS. Both are compatible with the Android platform, the first of which is
characterized by being relational, while the other is Object-Oriented. The
research involved a detailed analysis, particularly regarding issues related to
speed of transactions, taking into account the inherent limitations of the
smartphone employee. The approach took into account factors that influenced
the performance of DBMS in these environments, beyond the space occupied by
the database and efficiency in the operations of insert, update, and delete
queries.
Resumo. Nos últimos anos os smartphones tem se tornado um dos dispositivos
mais utilizados, dispondo de diversas aplicações focadas na troca e
armazenamento de dados, desta forma tornando móvel a própria informação,
que pode ser acessada em qualquer lugar e a qualquer momento. Este trabalho
teve enfoque no estudo comparativo entre os SGBD SQLite e Perst. Ambos são
compatíveis com a plataforma Android, sendo que o primeiro caracteriza-se por
ser Relacional, enquanto o outro é Orientado a Objetos. A pesquisa envolveu
uma análise detalhada, principalmente quanto as questões relacionadas a
velocidade de transações, levando em consideração as limitações inerentes ao
smartphone empregado. A abordagem adotada teve em consideração fatores
que influenciaram no desempenho dos SGBD nesses ambientes, além do espaço
ocupado pelo banco de dados e a eficiência nas operações de inserção,
atualização, exclusão e consultas.
1. Introdução
Os avanços recentes nas tecnologias sem fio trouxeram uma nova dimensão à área de
computação móvel, o que tornou possível que os dados sejam acessados virtualmente de
qualquer lugar a qualquer hora, como atestam Elmasri & Navathe (2003). De acordo com
Pereira e Silva (2009) o aparelho celular, por exemplo, é o produto de consumo mais
utilizado no mundo.
De acordo com notícia veiculada na Globo (2011), a Nielsen, empresa
multinacional de pesquisa de mercado, constatou que as vendas de smartphones ou
“celulares inteligentes”, cresceram 165% no Brasil no primeiro semestre de 2011 em
55
Anais do XI Simpósio de Informática da UNIFRA - SIRC2012
ISSN: 2175-0955 Santa Maria - RS, Outubro de 2012
comparação com o mesmo período em 2010. No entanto, estes dispositivos representam
apenas 5,8% dos aparelhos celulares vendidos no país nesse período. O levantamento
também revelou que 39% dos smartphones vendidos no primeiro semestre de 2011
possuíam o sistema operacional Android, fato esse que se atribui ao aumento da oferta de
aparelhos de diversas marcas que utilizam a plataforma e também aliado a uma queda nos
preços.
No entanto, apesar do notável crescimento do uso de smartphones, ainda existem
algumas limitações. Segundo Adelstein et al (2005), algumas dessas limitações são: a
dificuldade do desenvolvimento de aplicações para os dispositivos, o limitado poder de
processamento, níveis variados de conectividade, restrições quanto a interface, dentre
outras. Imielinski e Korth (1996) reiteram que os principais desafios desta área são
devidos a mobilidade, a comunicação e a energia. Ainda, Kumar (2006) destaca que
existem deficiências quanto a capacidade de gerenciamento de atividades transacionais de
bancos de dados.
Com o propósito de resolver ou pelo menos contornar os problemas da área de
bancos de dados para sistemas móveis, foram desenvolvidas algumas soluções como
Palm Record Database (PDB), DB2 Everyplace, SQLite, Perst, dentre outras.
Este artigo científico contém os resultados de uma análise comparativa entre
SQLite e Perst, levando em conta os aspectos internos de gerência de memória e os
tempos de respostas às operações de manipulação de dados.
2. SGBD SQLite e Perst
2.1. SQLite
O SQLite é o primeiro banco de dados desenvolvido exclusivamente para sistemas
embarcados. A sua concepção se deu a partir do objetivo de ser simples de administrar,
operar, embutir em um programa maior, de manter e de customizar.
Diferentemente da maioria dos Bancos de Dados, o SQLite não necessita de
infraestrutura de servidores para funcionar, ou seja, ele não ocupa e nem precisa de um
processo sendo executado em um servidor para funcionar. Por ser um banco de dados
autocontido, isto é, embutido ou embarcado, isto o torna altamente portátil, o que permite
que seja carregado ou transferido juntamente com a aplicação a qual ele serve. Isso
permite eliminar uma camada de complexidade existente em bancos de dados maiores,
que possuem mais recursos e funções, mas a um custo na ocupação de espaço e uso de
processamento (Hipp, 2011).
O SQLite é um SGBDR que, assim como a maioria dos seus concorrentes, apesar
de ser compacto, também possui tabelas, índices, gatilhos e visões (KREIBICH, 2010). A
leitura e a gravação são feitas diretamente em um único arquivo (Hipp, 2011). No entanto,
não dispõe de recursos como, controle de concorrência, funções internas (built-in),
procedimentos armazenados, extensões em Java, XML e alta escalabilidade (de terabytes
ou petabytes) (Hipp, 2011).
2.2. Perst
Perst é um banco de dados embarcado, orientado a objetos e Open Source. Foi
desenvolvido especialmente para Java e C#, funcionando de maneira integrada e
compatível com os recursos da orientação a objetos (Mcobject, 2011).
56
Anais do XI Simpósio de Informática da UNIFRA - SIRC2012
ISSN: 2175-0955 Santa Maria - RS, Outubro de 2012
O Perst é compacto, o que viabiliza o seu uso em smartphones, oferece
mecanismos de tolerância a falhas, possui suporte a transações conforme as propriedades
ACID e controle de concorrência (MCOBJECT, 2011).
Pelo fato do Perst ser um Banco de Dados Orientado a Objetos, o seu modelo
conceitual por consequência também é orientado a objetos, o que muda de forma
significativa o seu funcionamento. A integração direta com linguagens OO torna
desnecessária, ainda que possível, a utilização da linguagem de consulta SQL.
3. Estudo de caso
Com o objetivo de analisar a eficácia do SQLite e Perst, no que tange armazenamento e
gerenciamento de dados em smartphones, foi desenvolvido um sistema experimental. A
experimentação prática possibilitou testar e avaliar resultados dos SGBD testados,
especialmente quanto ao processamento de transações de tipos diversos e a maneira que
ocorre o gerenciamento de dados e recursos.
O ambiente de desenvolvimento consistiu fundamentalmente do SDK Android e o
Java Development Kit (JDK) sob a IDE Eclipse, incluindo o plug-in Android Developer
Tools (ADT). Foi utilizada a versão 2.2 do Android e por consequência a API 8.
Para a execução dos testes foram desenvolvidas duas aplicações independentes de
forma que se pudesse simular uma condição real de uso e para que não houvesse
interferências que pudessem afetar o resultado dos testes bem como prejudicar o
desempenho em função da utilização de recursos de hardware. Isso também possibilitou
avaliar de forma apropriada o comportamento e o espaço utilizado por cada aplicativo
desenvolvido.
A prototipação das aplicações foi feita no emulador do Android, fornecido com o
plug-in ADT do SDK. Já os testes definitivos foram realizados no smartphone Huawei
modelo U8800-51.
Como parte do sistema foi necessária a utilização de uma Base de Dados grande o
suficiente e que desse os subsídios necessários para a aplicação adequada das métricas
escolhidas. Por isso foi utilizada uma base de dados com códigos de endereçamentos
postais (CEP) das cidades brasileiras da região sul do Brasil, totalizando 88.017 tuplas.
As seguintes ações foram avaliadas: inserções com 1, 2, 4 e 8 blocos de transação;
consultas simples na tabela “cidades”; consultas de “cidades” em série; consultas de
“cidades” com INNER JOIN; atualizações de um único registro; atualizações de registros
em série; exclusões de um único registro; exclusões de blocos e de todos os registros.
4. Resultados e discussões
Com o objetivo de coletar informações suficientes para se chegar a uma conclusão quanto
ao desempenho dos dois SGBD, SQLite e Perst, em um ambiente móvel para smartphone,
foram realizados testes, cujos resultados seguem abaixo.
4.1. Inserções
As inserções foram realizadas com dados a partir dos arquivos CSV, de forma que a
medição fosse mais precisa e equivalente para ambos os SGBD.
Como é possível observar na Figura 1, os resultados obtidos nos testes de
inserções divididos em blocos, a média do tempo para inserções tende a subir de maneira
57
Anais do XI Simpósio de Informática da UNIFRA - SIRC2012
ISSN: 2175-0955 Santa Maria - RS, Outubro de 2012
proporcional ao aumento do volume de blocos em que as transações foram submetidas,
tornando as operações cada vez mais demoradas em função das operações de escrita e
acesso a unidade de armazenamento.
1.000 Inserções
5.000 Inserções
6500
Tempo em milissegundos
Tempo em milissegundos
2100
1900
1700
1500
1300
1100
900
6000
5500
5000
4500
4000
Consecuti
vas
2 Blocos
4 Blocos
8 Blocos
Perst
956
973
1144,67
1571
SQLite
1057,33
1359
1669,33
1884
Consecuti
vas
2 Blocos
4 Blocos
Perst
4661,33
4527
4609,33
4739
SQLite
4296
4690,33
4950
6193,67
8 Blocos
88.017 Inserções
11500
90000
11000
80000
Tempo em milissegundos
Tempo em milissegundos
10.000 Inserções
10500
10000
9500
9000
8500
8000
8 Blocos
70000
60000
50000
40000
30000
20000
10000
Consecuti
vas
2 Blocos
4 Blocos
8 Blocos
1 Bloco
2 Blocos
4 Blocos
Perst
10084,33
11110,67
10519
9667
Perst
64236,67
68496,33
70471
70916
SQLite
8434,33
10702,33
9604,33
10585
SQLite
78912
81177,67
82602
82851,33
0
Figura 1. Resultados numéricos dos testes de inserção.
Conforme os resultados apresentados, chamou a atenção o teste com 5 mil
inserções, pois com oito blocos percebeu-se que o SQLite começa a apresentar maior
demora na execução da transação, o que criou uma curva acentuada no gráfico e dessa
forma causou uma degradação maior do que o esperado. Além disso, percebeu-se que,
com 10 mil inserções, as operações são, em maioria, mais rápidas no SQLite. Mas,
configura-se uma situação improvável, pois no Perst, quanto mais acessos à unidade de
armazenamento (operações de entrada e saída) maior é o tempo para a conclusão de uma
operação, mesmo assim conseguiu ser mais rápido com oito transações.
4.2. Consultas
Para a análise do desempenho das operações de busca de dados, foram realizadas seis
consultas randômicas, mas em sequência, que resultaram nos números representados na
Figura 2.
Com a análise dos resultados, entendeu-se que nas consultas em série o Perst pode
ter se beneficiado pelo cache do banco de dados estar mapeado na memória em função da
inserção dos dados ter ocorrido previamente as consultas e pela aplicação não ter sido
encerrada. Já com operações de consulta com Junções (Join) o SQLite obteve vantagem
sobre o Perst, onde nos testes para 1.000, 5.000, 10.000 e 88.017 as diferenças foram de
66%, 79%, 80,61% e 69,96% respectivamente. O desempenho do SQLite se manteve
58
Anais do XI Simpósio de Informática da UNIFRA - SIRC2012
ISSN: 2175-0955 Santa Maria - RS, Outubro de 2012
relativamente estável, com pequenas variações independentemente da quantidade de
dados, enquanto o Perst teve variações significativas nos tempos.
Consultas em Série
Consultas com JOIN
20,00
300
18,00
250
Tempo em milissegundos
16,00
Milissegundos
14,00
12,00
10,00
8,00
6,00
4,00
200
150
100
50
2,00
0,00
0
1.000
5.000
10.000
88.017
1000
5000
10000
88017
PERST
6,33
3
3
4
Perst
106
186
196
243
SQLITE
13,33
15,00
18,33
10,67
SQLite
36
39
38
73
Figura 2. Resultados numéricos dos testes de consultas.
4.3. Atualizações e exclusões
Quanto a avaliação das operações de atualizações (Update) e exclusões (Delete), foram
executadas operações update em série e delete pontuais, obtendo-se os resultados
conforme a ilustração da Figura 3.
Tempo em milissegundos
Atualizações em Série
51200,00
12800,00
3200,00
800,00
200,00
1.000
5.000
10.000
SQLite
229,33
301,33
580,67
88.017
650,33
Perst
500,75
2188,00
4582,00
35886,00
Figura 3. Resultados numéricos dos testes de atualização e exclusão.
Tanto os testes de atualização quanto de exclusão de dados os resultados obtidos
mostraram vantagem do SQLite se comparado com o Perst, sem haver situações díspares,
mesmo com o aumento significativo de repetições.
5. Conclusões
A meta inicial desta pesquisa foi comprovar se de fato o Perst apresentaria desempenho
superior ao do SQLite, pois esse constitui-se uma das poucas alternativas gratuitas de
SGBD existentes atualmente para a plataforma Android. O estudo foi conduzido de
maneira que houvesse igualdade na condição dos testes para que estes fossem executados
de forma imparcial e correta.
59
Anais do XI Simpósio de Informática da UNIFRA - SIRC2012
ISSN: 2175-0955 Santa Maria - RS, Outubro de 2012
Nos testes de inserção o Perst apresentou melhor desempenho geral. Um dos
fatores principais nesse caso é de que todos os dados lidos eram obtidos a partir de um
arquivo CSV, sendo assim, todos os dados estavam na memória enquanto eram gravados.
Nos testes de consultas o SQLite obteve um desempenho bom, mas inferior ao do
Perst com warm cache. Quando os registros estavam mapeados na memória o Perst se
desempenhava melhor, o que mostra maior eficiência no gerenciamento de páginas. Nos
testes com cold cache o SQLite foi muito superior, o que pode ser justificado pelo fato de
ser implementado em C e poder acessar o arquivo físico do Banco de Dados sem haver
uma camada extra de software ou processos concorrentes, como ocorre com Perst em
razão de utilizar Java e a Máquina Virtual Dalvik e por sua vez executar o coletor de lixo.
Nas atualizações, novamente o SQLite apresentou resultados superiores,
entretanto, nesses testes foi possível constatar que o Perst apresentou melhoras
significativas nos tempos de transação quando determinados registros são solicitados
repetidamente ao banco de dados. Conclui-se que o Perst apresenta melhor gerenciamento
de páginas que o SQLite, onde os tempos de execução não tiveram grandes melhoras no
decorrer dos testes.
Para os testes de exclusão, novamente o Perst foi prejudicado pelo coletor de lixo.
No entanto, desconsiderando esse motivo, o Perst ainda foi mais lento uma vez que o
processo de eliminar todos os objetos é mais dispendioso, pois é necessário limpar todos
os índices individualmente e então efetuar a remoção dos objetos do banco de dados.
Outro fator que pode ser levado em consideração é o tamanho do arquivo da base de
dados do Perst, que é em média 60% maior que o do SQLite.
Portanto, a partir do exposto, pôde-se concluir que, ao contrário da hipótese inicial
desta pesquisa, o desempenho do Perst ficou abaixo do esperado. É possível afirmar que o
SQLite foi mais eficiente em termos de utilização de espaço e desempenho geral, sendo
mais estável, consistente e simples de utilizar.
Referências
ADELSTEIN, Frank; et al. Fundamentals of Mobile and Pervasive Computing. Estados
Unidos: McGraw-Hill Editor, 2005.
ELMASRI, Ramez; NAVATHE, Shamkant B. Fundamentals of Database Systems. 4ª
Edição. Estados Unidos: Pearson Education, 2003.
GLOBO. Vendas de smartphones crescem 165% no Brasil, diz pesquisa. Disponível em:
<g1.globo.com>. Acesso em: 21 set. 2011.
HIPP, D. Richard; et al. About SQLite. Disponível em: <www.sqlite.org>. Acesso em: 16
maio 2011.
IMIELINSKI, Tomasz; KORTH, Henry F. Mobile Computing. Estados Unidos: Kluwer
Academic Publishers, 1996.
KREIBICH, Jay A.. Using SQLite. Estados Unidos: O’Reilly, 2010.
KUMAR, Vijay. Mobile Database Systems. Estados Unidos: Wiley Editor, 2006.
MCOBJECT. Perst Introduction and Tutorial. Disponível em: < www.mcobject.com/>.
Acesso em: 13 set. 2011.
PEREIRA, Lucio Camilo Oliveira; SILVA, Michel Lourenço da. Android para
Desenvolvedores. Rio de Janeiro: Brasport, 2009.
60
Anais do XI Simpósio de Informática da UNIFRA - SIRC2012
ISSN: 2175-0955 Santa Maria - RS, Outubro de 2012
Integrando Padrões do XP para gerar Processos de
Software
Darciele A. Zilio de Souza1,2, Camila Hübner Brondani1,2, Lisandra Manzoni
Fontoura2
1
2
Programa de Educação Tutorial do Curso de Sistemas de Informação
Centro de Tecnologia – Universidade Federal de Santa Maria (UFSM)
Av. Roraima, 1000 - 97.105-900 – Santa Maria – RS – Brasil
{dsouza,chbrondani,lisandra}@inf.ufsm.br
Abstract. Software development is seen as an important business area that
needs to be analyzed thoroughly as well as it needs to be improved constantly.
A standardized software process establishes a common language among the
team members encouraging the exchange of knowledge and consequently
optimizing the tasks execution. In this context this article aims to represent
and to integrate agile method patterns using BPMN (Business Process
Modeling Notation) in order to elaborate software process applicable to a
business environment.
Resumo. O desenvolvimento de software é visto hoje como uma importante
área de negócio que precisa ser cuidadosamente analisada e constantemente
melhorada. Um processo de software padronizado estabelece uma linguagem
comum entre os membros de uma equipe, estimulando o intercâmbio de
conhecimento e, consequentemente, otimizando a execução de todas as
tarefas. Neste contexto, este artigo visa representar e integrar padrões do
método ágil XP usando BPMN (Business Process Modeling Notation) para
elaboração de processos de software aplicáveis em um ambiente empresarial.
1. Introdução
Desenvolver software de qualidade tornou-se um requisito imprescindível para garantir a
sobrevida no mercado, visto que as pessoas estão mais exigentes e a competitividade está
cada vez mais acirrada [SEI, 2011].
Sabe-se que as empresas mais competitivas são aquelas que trabalham sob a ótica
da melhoria contínua dos processos, assim aumentando a qualidade do processo de
desenvolvimento e, consequentemente, aumentando a qualidade do produto final.
Um processo padronizado oferece um alicerce fundamental no desenvolvimento
de software, desde a concepção até a entrega do produto final, garantindo assim, que
todas as etapas atinjam resultados previsíveis e de qualidade assegurada [SEI, 2011].
Padrões de processo e organizacionais capturam práticas bem-sucedidas em
gerenciamento de software, e podem ser utilizados na elaboração de processos de
desenvolvimento da organização ou na melhoria de processos existentes.
61
Anais do XI Simpósio de Informática da UNIFRA - SIRC2012
ISSN: 2175-0955 Santa Maria - RS, Outubro de 2012
O objetivo deste trabalho é propor a elaboração de processos de software a partir
da integração de padrões para gerar processos de software com qualidade.
Este artigo está estruturado da seguinte maneira: nas Seções 2 e 3 são descritas
uma breve explicação sobre BPMN e Extreme Programming, respectivamente. Na Seção
4 são apresentados os padrões organizacionais e de processo que já são encontrados nos
métodos ágeis. Na Seção 5 é descrito como o projeto foi desenvolvido. Na Seção 6
contém os resultados obtidos. Por fim, a conclusão e o trabalho futuro são apresentados
na Seção 7.
2. Business Process Modeling Notation (BPMN)
Desenvolvida pelo Business Process Management Initiative (BPMI) Working Group e
publicada em maio de 2004, a Business Process Modeling Notation (BPMN) foi criada
visando ser uma notação para a modelagem de processos de negócios de fácil
entendimento por todos os indivíduos envolvidos no processo [WHITE, 2004]. Segundo
White (2004), o desenvolvimento em BPMN é um passo importante para reduzir a
fragmentação existente devido à infinidade de modelagem de processos e notações.
O BPD (Business Process Diagram), diagrama especificado pela BPMN, é
constituído por um conjunto de elementos gráficos que permitem o desenvolvimento de
forma simplificada e ainda facilmente entendível por todos os níveis de indivíduos
envolvidos. Os elementos de um diagrama BPD são atividades, que representam as
tarefas executadas; gateways, que representam as decisões, desvios de fluxo; eventos,
que representam algo que acontece durante o processo; conexões, que indicam em qual
ordem as atividades são executadas; lanes, que representam os papéis responsáveis pela
execução das atividades; pool, que representa a organização ou entidade responsável
pela execução do processo. Esses elementos estão exemplificados na Figura 1. Mesmo
um diagrama simples possui grande poder de expressão, podendo facilmente representar
modelos complexos.
Figura 1. Elementos de um diagrama BPD.
3. Extreme Programming
Extreme Programming (XP) é uma metodologia de desenvolvimento de software,
nascida nos Estados Unidos ao final da década de 90. Esta tem foco nas pessoas, é
orientada ao código, prevê feedback contínuo e iterações curtas. Se baseia em um
conjunto de valores como simplicidade, comunicação, feedback e coragem, além de
princípios e práticas, que diferem substancialmente da forma tradicional de se
desenvolver software. A partir dos quatro valores fundamentais da metodologia XP,
Kent Beck (2004) definiu cinco princípios de conduta para XP. Esses princípios ajudam
no momento de tomar decisões entre alternativas. A ideia é sempre escolher a alternativa
62
Anais do XI Simpósio de Informática da UNIFRA - SIRC2012
ISSN: 2175-0955 Santa Maria - RS, Outubro de 2012
que melhor preserva os princípios de XP. Os cinco princípios são: retroalimentação
rápida, assuma simplicidade, mudanças incrementais, mudanças são bem-vindas e
trabalho de qualidade. Com base nestes princípios são definidas as práticas a serem
seguidas durante o desenvolvimento de um sistema.
XP é dinâmica e flexível, porém é necessária muita disciplina para usá-la em um
projeto. Para demonstrar isso, Beck (2004) propõe um conjunto de "boas práticas" em
projetos usando XP, como: revisões de código constante, testes frequentes,
envolvimento do cliente e rápido feedback, refatoração e refinamento da arquitetura,
integração contínua para descobrir problemas mais cedo no processo de
desenvolvimento, projeto e reprojeto à medida que novas funcionalidades vão sendo
implementadas (ongoing) e planejamento constante.
4. Padrões e XP
Criar um processo único que possa ser utilizado em diferentes projetos é uma tarefa
difícil e pouco eficiente, pois os projetos possuem características diferentes, envolvem
clientes e equipes diferentes. Modelos como CMMI sugerem a criação de um processo
padrão, que seja comum a todos os projetos da organização, e a adaptação deste
processo de acordo com as características particulares de cada projeto [SEI, 2011].
Padrões de processo e organizacionais documentam soluções consolidadas para
um problema recorrente que surge em uma situação específica e apresenta uma solução
comum que pode ser aplicada em outras situações com o mesmo problema . Adaptação
de processos pode ser realizada com base nas boas soluções descritas por padrões. Por
exemplo, se um projeto tem problemas em relação à definição de requisitos, pode o
padrão de processo Build Prototype, que sugere a elaboração de um protótipo para
facilitar a definição de requisitos [FONTOURA, 2006].
Nesse trabalho, processos de software são elaborados a partir da integração de
padrões definidos por Beck e Cunningham. Pretende-se, além de elaborar processos
também adaptar processos existentes usando padrões.
Padrões organizacionais e de processo e métodos ágeis estão diretamente
relacionados. Beck (2004) declara que muitas das ideias do XP provêm da linguagem de
padrões Episodes [CUNNINGHAM, 2004]. Por exemplo, no XP o cliente define a
funcionalidade do sistema a ser desenvolvido por meio das chamadas estórias do usuário
e as prioriza em seguida. Na linguagem de padrões Episodes, os padrões Implied
Requirement e Work Queue sugerem, respectivamente, que a funcionalidade seja
identificada e depois priorizada [FILHO et al., 2005].
Cunningham (2004) afirma que XP e padrões são conceitos ortogonais, pois é
possível fazer XP sem padrões e usar padrões sem XP. Os padrões são uma ótima
maneira de saber o que fazer, quando, por um momento, não se sabe o que fazer.
Os padrões organizacionais e de processo apoiam de forma efetiva a construção
de processos de software. Assim, se integrados com métodos ágeis, o software pode ser
desenvolvido de forma mais rápida e com mais qualidade, pois os padrões são soluções
de sucesso para problemas recorrentes nesta área [FILHO et al., 2005].
63
Anais do XI Simpósio de Informática da UNIFRA - SIRC2012
ISSN: 2175-0955 Santa Maria - RS, Outubro de 2012
5. Abordagem Proposta para Integrar Padrões
Considerando um ambiente empresarial foram escolhidos os padrões para serem
modelados em BPMN, baseados na necessidade de um grupo de desenvolvimento de
pequeno porte. A partir desse contexto os padrões foram detalhados, identificando os
atores, classes, métodos e atributos, considerando-se a descrição textual de cada padrão,
disponível no Portland Pattern Repository. Através da documentação gerada pelo
detalhamento dos padrões foram construídos diagramas de atividades, para auxiliar a
compreensão da sequência lógica de cada padrão. Durante a fase de representação dos
padrões em BPMN notou-se que as classes que representam os atores devem ser
transformadas em lanes e seus métodos, que são as atividades atribuídas a um ator,
devem ser transformadas em tarefas.
Após a modelagem dos padrões separadamente, foi analisada uma forma de
integrar os modelos, para que estes gerem um processo de software viável para o
ambiente empresarial. No modelo integrado cada padrão foi representado como um
subprocesso e sua ordem de execução foi definida base nos objetivos do padrão.
Para a modelagem em BPMN, utilizou-se a ferramenta Bonita Open Solution,
escolhida por satisfazer as necessidades do projeto e por ser open source.
6. Resultados Obtidos
Para exemplificar os resultados obtidos, a Figura 2 demonstra o padrão de processo
Planning Game, segundo o metamodelo proposto por Fontoura (2006), que foi
elaborado a partir da descrição textual do padrão mostrada na Tabela 1.
Figura 2. Padrão de Processo – Planning Game [Extraído de Fontoura, 2006]
Tabela 1 – Descrição Padrão Planning Game [BECK, 99; CUNNINGHAM, 2004].
Pattern: Planning Game
O objetivo dessa prática é determinar o escopo da próxima iteração. Os usuários decidem o
escopo e prioridades do próximo release. A equipe técnica, por outro lado, decide estimativas,
consequências técnicas, processo de desenvolvimento e detalha cronograma.
Regras básicas:
1. O cliente apresenta uma lista de funcionalidades desejadas para o sistema. Cada
funcionalidade é escrita como um User Story (US). Dá-se um nome para o User Story e
descreve-se rapidamente a funcionalidade requerida, normalmente em cartões indexados
64
Anais do XI Simpósio de Informática da UNIFRA - SIRC2012
ISSN: 2175-0955 Santa Maria - RS, Outubro de 2012
(index cards) 4X6.
2. O desenvolvimento estima quanto de esforço cada US exige, e quanto de esforço a equipe pode
produzir em um determinado intervalo de tempo (iteração).
3. O cliente decide quais US devem ser implementados e as prioridades. O cliente também deve
definir a freqüência dos releases de produção para o sistema.
A Figura 3 mostra o mesmo padrão já modelado em BPMN, conforme
abordagem proposta neste trabalho. Nota-se que a sequência das atividades no diagrama
BPMN é melhor visualizada do que em relação ao metamodelo e a descrição do padrão.
Esse padrão é mostrado como um exemplo e por questões de espaço será o único
detalhado.
Figura 3. Representação do Padrão Planning Game em BPMN
Na Figura 4 é mostrado o resultado da integração dos padrões de XP para gerar
um processo de software descrito em BPMN. A ordem de execução dos subprocessos
foi definida a partir do objetivo de cada padrão, uma vez que os subprocessos
encapsulam as tarefas propostas por um padrão. Os subprocessos Planning Game e
Iteration Planning fazem parte da fase de planejamento de um projeto, neles será
discutido o escopo das iterações, sendo esses passos executados sempre no início de
cada iteração. Os subprocessos Simple Design, padrão que descreve que os requisitos
devem ser implementados da forma mais simples possível, Developing In Pairs, descreve
que todo o código desenvolvido deve ser escrito por duas pessoas trabalhando no
mesmo computador, Constant Refactoring, descreve que o código deve ser melhorado
continuamente, sem alterar sua semântica, e Spike Solutions, descreve soluções rápidas,
um Spike é um código que testa apenas uma solução, verificando sua viabilidade,
ignorando o resto do programa, são referentes à etapa de desenvolvimento. Após são
executados os testes de aceitação especificados pelos clientes e implementados pelos
desenvolvedores (Acceptance Tests). No subprocesso Early And Regular Delivery XP,
versões do software são entregues frequentemente ao cliente. Durante todo o processo
do desenvolvimento o subprocesso On Site Customer é executado, pois o cliente deve
65
Anais do XI Simpósio de Informática da UNIFRA - SIRC2012
ISSN: 2175-0955 Santa Maria - RS, Outubro de 2012
estar sempre disponível para solucionar dúvidas da equipe, definir prioridades e resolver
pendências. Caso seja a última iteração o processo é finalizado, senão todos os outros
subprocessos são executados novamente a partir do Planning Game.
Salienta-se que, cada subprocesso contém um conjunto de tarefas, atores e
artefatos, definidos em BPMN, necessários a implementação do padrão em um processo
de software. Esses subprocessos são definidos previamente conforme mostrado na
Figura 3 para o padrão Planning Game. Tendo os padrões definidos em BPMN, estes
podem ser usados para gerar diferentes processos de software possibilitando o reuso
destes. A intenção da pesquisa é construir uma base de padrões, descritos em BPMN,
que possam ser usados para criar processos ágeis e planejados.
Figura 4. Padrões do Método XP Integrados
7. Conclusão e Trabalho Futuro
As empresas mais competitivas são aquelas que trabalham sob a ótica da melhoria
contínua dos processos. O uso de padrões possibilita que boas práticas relacionadas ao
processo de desenvolvimento de software sejam reusadas, aumentando a produtividade e
minimizando o retrabalho. Este trabalho apresenta uma proposta para gerar processos de
software a partir da integração de padrões visto que, esses descrevem boas práticas de
desenvolvimento, consequentemente gerando processos de qualidade para o ambiente
empresarial.
Através do estudo realizado até o momento, observou-se que somente através do
uso dos padrões organizacionais e de processos, o conhecimento expresso por estes não
é tão legível para todos os indivíduos envolvidos. Com a modelagem desses padrões em
BPMN é possível atenuar essa deficiência de compreensão, melhorando a visualização
tanto da sequência de atividades como da forma como as atividades se relacionam.
Como proposta de trabalho futuro pode-se simular os processos gerados pela
integração de padrões, a fim de analisar as variáveis custo e tempo.
8. Referências
BECK, K. Programação Extrema (XP) Explicada: Acolha as Mudanças. Porto Alegre:
Bookman, 2004.
66
Anais do XI Simpósio de Informática da UNIFRA - SIRC2012
ISSN: 2175-0955 Santa Maria - RS, Outubro de 2012
BONITASOFT. Bonita Open Solution. Disponível em: <http://www.bonitasoft.com/>.
Acesso em: maio 2012.
CUNNINGHAM, W. Portland Pattern Repository. 2004. Disponível em:
<http://c2.com/ppr/index.html>. Acesso em: jul. 2012.
FILHO, E. G. C. et al. Padrões e Métodos Ágeis: agilidade no processo de
desenvolvimento de software., Departamento de Computação. São Paulo, SP, 2005.
FONTOURA, L. M. PRiMA: Project Risk Management Approach. Tese (Doutorado em
Ciência da Computação), Instituto de Informática, UFRGS. Porto Alegre, RS, 2006.
SOFTWARE ENGINEERING INSTITUTE. CMMI for Development, versão 1.4, 2011.
WHITE, S. A. Introduction to BPMN. BPTrends, 2004.
67
Anais do XI Simpósio de Informática da UNIFRA - SIRC2012
ISSN: 2175-0955 Santa Maria - RS, Outubro de 2012
WordFilter: classificação de textos científicos com métodos de
mineração de dados
.c Daniel Pezzi da Cunha*, Maurício da Silva Pozzatto* e Taís C. Appel Colvero*
*
CCAET – Universidade de Cruz Alta (UNICRUZ)
www.unicruz.edu.br – Cruz Alta – RS – Brasil
[email protected], [email protected] e [email protected]
Abstract. Computer science has sought to mimic human thought in its essence, working
with the application of techniques of knowledge discovery, which can be defined as a
data exploration in search of useful concepts to enhance or uncover new knowledge. In
this context is included the Text Mining, which encompasses several studies as statistics,
linguistics, cognitive science and computer science, to extract and classify information
derived from unstructured data originally existing in textual form. In this paper are
described some results of a research project whose purpose is the development of a
practical experiment that allows, through methods KDT, sort data and create a database
for the academic from the extraction of information from scientific productions.
Resumo. A Ciência da Computação tem buscado simular o pensamento humano em sua
essência, trabalhando com a aplicação de técnicas de descoberta de conhecimento, que
pode ser definida como uma exploração de dados em busca de conceitos úteis para
aperfeiçoar ou desvendar novos conhecimentos. Nesse contexto está incluída a
Mineração de Textos, que engloba vários estudos como estatísticas, linguística, ciência
cognitiva e informática, para extrair e classificar informações decorrentes de dados não
estruturados existentes originalmente na forma textual. No presente artigo estão
descritos alguns resultados do projeto de pesquisa cujo propósito é o desenvolvimento
de um experimento prático que possibilite, por meio de métodos KDT, classificar dados
e a criar uma base de dados para o meio acadêmico a partir da extração de informações
de produções científicas.
1. Introdução
A similaridade entre conceitos existentes na Ciência Cognitiva e na Ciência da
Computação é um ponto de consenso entre cientistas, que acreditam em uma ciência da
cognição moldada à imagem do computador. Poderia haver ciência cognitiva sem o
computador, mas ela não teria surgido quando surgiu, nem tomado a forma que tomou,
sem os avanços na área da informática (GARDNER, 2003).
A Ciência da Computação, por sua vez, segundo Hecht-Nielsen (1991) e Kovacs
(1996), tem buscado simular o pensamento humano em sua essência, uma tarefa complexa
que vem se aperfeiçoando ao longo dos anos e atualmente trabalha com conceitos
relacionados a Redes Neurais Artificiais (RNA).
Uma das maneiras de se aplicar as técnicas relacionadas a ciência cognitiva é por
meio da Descoberta de Conhecimento (Knowledge Discovery - KD), que, conforme
Cooley (1997) pode ser definida como uma exploração de dados em busca de conceitos
úteis para aperfeiçoar ou desvendar novos conhecimentos. Nesse contexto está incluída a
Mineração de Textos (Knowledge Discovery in Text - KDT), que engloba vários estudos
como estatísticas, linguística, ciência cognitiva e informática, para extrair e classificar
68
Anais do XI Simpósio de Informática da UNIFRA - SIRC2012
ISSN: 2175-0955 Santa Maria - RS, Outubro de 2012
informações decorrentes de dados não estruturados existentes originalmente na forma
textual.
No presente artigo estão descritos alguns resultados do projeto de pesquisa cujo
propósito é o desenvolvimento de um experimento prático que possibilite, por meio de
métodos de Mineração de Textos, classificar dados e a criar uma base de dados para o
meio acadêmico a partir da extração de informações de produções científicas.
2. Mineração de Textos
A extração de conhecimento por padrões é uma área bastante estudada em banco de dados
devido ao grande aumento das informações armazenadas no formato digital. Segundo
Amorim (2006), documentos escritos em papeis estão sendo migrados para o modelo
computacional proporcionando uma melhor organização e agilidade na hora de recuperar
essas informações.
Atualmente as organizações possuem bases de dados gigantescas chegando a
milhões de registros armazenados, dessa forma torna-se inviável uma análise manual
(AMORIM, 2006). Por este motivo, as técnicas de Mineração de Dados são fundamentais
para obter uma análise de qualidade, pois as informações mais importantes são extraídas
desse grande volume de dados e transformadas em conhecimento para tomadas de decisões
(DE AMO, 2004). Contudo, a maioria desses dados está na forma textual, ou seja, em
modo de textos livres escritos na linguagem natural sem estruturação, diferentemente de
um sistema de banco de dados. Por consequência, textos são extremamente complicados
para a realização de análises precisas, embora existam algumas técnicas que buscam
solucionar este problema.
A Mineração de Texto é a parte que trata de dados sem estruturas ou
semiestruturados, como textos, frases e palavras. A tarefa é extrair informações úteis de um
conjunto de termos por meio de um conjunto de técnicas (MORAIS, 2007). Dentre as
técnicas mais utilizadas destaca-se a de classificação, a qual separa os dados por
semelhança de padrões, sendo muito usada na categorização de textos e áudios
(TAKASHIMA, 2008).
Categorizar um texto significa reunir documentos em uma determinada categoria
respeitando a afinidade entre suas características. Sendo assim, para definir uma categoria
é necessário extrair particularidades singulares a fim de obter classes mais heterogêneas
possíveis. O método de representação de documentos no espaço vetorial é muito aplicado
para agrupar textos semelhantes. Sua meta é representar o texto em um vetor de palavras
formando um conjunto das mais significativas. Além do mais, esses termos separados
como mais importantes definem um dicionário de palavras caracterizando esse texto, logo
após realiza-se cálculos de similaridade para verificar a semelhança entre os textos
analisados (DE CASTRO, 2000). Dessa forma, o computador deverá tomar decisões
parecidas com o raciocínio humano a fim de organizar textos em determinados assuntos.
2.1. O processo KDT
Na Mineração de Textos é subdividida em três importantes e complementares etapas:
análise, preparação e processamento dos dados:

Na análise define-se qual abordagem será utilizada, se linguística ou estatística. Na
linguística verifica-se a funcionalidade do termo em relação ao texto e qual seu
contexto geral. Já na estatística tratam-se apenas as frequências dos termos dentro
do texto (DE CAMARGO, 2007).
69
Anais do XI Simpósio de Informática da UNIFRA - SIRC2012
ISSN: 2175-0955 Santa Maria - RS, Outubro de 2012


A etapa de preparação organiza o texto em um modo mais estruturado por meio de
uma análise léxica identificando os tokens, ou seja, retira as palavras do texto para
serem analisadas, logo após, realiza-se uma exclusão de acentos, caracteres
especiais (#$&*%, etc..) e palavras irrelevantes, também chamadas de stopwords.
A partir da extração das palavras que caracterizam um texto formam-se os
dicionários ou descritores. Para conseguir um dicionário eficiente é possível reduzir
os termos por meio da técnica chamada Stemming, que é a radicalização de palavras
excluindo os radicais como plural, gerúndio e terminações verbais. Outra técnica
chamada de Thesaurus consiste na eliminação de sinônimos, e dessa forma com um
número mais reduzido de palavras, são aplicados pesos a fim de identificar as mais
importantes dentro desse conjunto (WIVES, 2002).
Com o dicionário pronto, a próxima etapa é o processamento. A partir deste ponto
são aplicados os métodos de Mineração de Textos, pois os dados estão no formato
mais estruturado facilitando este processo. Nesta etapa são extraídas todas as
informações desconhecidas e úteis para busca do conhecimento, onde são aplicados
os métodos com suas funcionalidades especificas transformando dados em
informações.
Com a extração das características de um texto, forma-se um dicionário de palavras
específico, que, por meio dessas palavras, podem ser aplicados métodos de classificação.
Com isso, para categorizar um texto ou documento cria-se um dicionário de características
e após compara-se com o dicionário extraído do texto, ou seja, verifica-se a semelhança
entre o conjunto de palavras categorizadas com as retiradas do documento (RBBD, 2007).
3. Experimento desenvolvido
Com o propósito de avaliar os resultados práticos da aplicação da Mineração de Textos, foi
desenvolvido um sistema experimental na linguagem PHP e banco de dados MySQL. O
sistema está representado em notação UML na Figura 1.
Figura 1. Diagrama de atividades do WordFilter.
A primeira etapa do sistema correspondeu a coleta de dados, onde foram
selecionados pelo usuário os documentos textuais escolhidos para o procedimento de
análise e extração de informações. Como padrão de entrada, foi adotado o formato PDF,
que logo em seguida passou pela extração de caracteres e a transformação para TXT.
70
Anais do XI Simpósio de Informática da UNIFRA - SIRC2012
ISSN: 2175-0955 Santa Maria - RS, Outubro de 2012
A etapa de correção do texto envolveu a remoção de tudo aquilo que não foi
considerado importante para aplicação do algoritmo de mineração. Para isso foi realizada a
análise léxica a partir da fragmentação do texto em caracteres por meio da Tokenização,
que, conforme De Sa (2008), usa-se delimitadores como espaços, vírgulas, pontos, entre
outros, para a identificação de tokens. Com o texto dividido em vários termos, foi feita uma
varredura eliminando todos os símbolos, caracteres especiais, acentuações e pontuações,
seguido da conversão de caracteres minúsculos para maiúsculos. Por fim, foram eliminadas
as StopWords, que são as palavras consideradas irrelevantes para o propósito do sistema.
Este processo baseia-se em um conjunto de palavras, chamado StopList, que compõe
preposições, pronomes, artigos e conjunções. A StopList atribuída neste experimento
prático envolveu 256 palavras em idioma português e 179 em inglês.
Na etapa de redução de termos foi efetuada a seleção dos termos, com base em um
dicionário de sinônimos, cujo propósito foi de diminuir o tamanho da indexação,
aprimorando ainda mais a qualidade da extração do conhecimento. Para isso, optou-se pela
técnica Thesaurus, que, conforme Galho (2003), funciona com um dicionário de palavras
com seus sinônimos ou significados, realizando um estudo das relações entre as palavras
na linguagem natural. Este processo semântico substituiu palavras com mesmo significado
pelo respectivo sinônimo.
A última etapa correspondeu ao processamento de algoritmos para classificação
dos dados. Para isso, no estágio atual do experimento prático, foi construído um dicionário
de palavras, totalizando 465 palavras no idioma português (exceto nomes próprios de
técnicas e autores de livros) distribuídas em 12 diferentes áreas da Computação. Para cada
palavra foi atribuído um peso, pontuado de 1 a 3, conforme o grau de afinidade com a
respectiva área. Quanto aos métodos de mineração, utilizou-se o Contagem x Peso, que
corresponde a multiplicação das frequências dos termos pelos respectivos pesos. Outro
método implementado foi o Espaço Vetorial e Similaridade por Cosseno, que utiliza o
conceito que os textos podem ser representados no espaço por vetores, definindo o ângulo
do cosseno dos textos verifica-se qual deles é mais próximo no espaço, assim, a
semelhança entre o dicionário de palavras e o texto pode ser medida separando-os e
classificando-os.
4. Resultados e discussões
Com o objetivo de avaliar os métodos “Contagem x Peso” e “Espaço Vetorial e
Similaridade por Cosseno”, foram realizados diversos testes práticos, tomando como base
a amostragem de 500 artigos publicados em diversos eventos científicos da Computação.
As métricas adotadas foram: a área predominante que cada algoritmo constatou em cada
texto, as duas próximas áreas de acordo com a probabilidade calculada e o tempo de
execução de cada algoritmo.
Para que fosse possível uma análise mais apurada dos resultados, levou-se em
consideração a área que o autor e/ou evento atribuiu em cada artigo. Nos casos em que a
área não teve correspondência àquelas escolhidas como parte desta pesquisa (descritas
abaixo), os trabalhos foram submetidos para análise de professores Mestres e Doutores em
Computação. As áreas da Computação utilizadas para classificação dos textos foram:
 Banco de Dados
 Engenharia de Software
 Sistemas Distribuídos
 Computação Gráfica
 Inteligência Artificial
 Sistemas Operacionais
 Computação Móvel
 Redes de Computadores  Segurança de Sistemas
 Engenharia de Hardware  Robótica
 Teoria da Computação
71
Anais do XI Simpósio de Informática da UNIFRA - SIRC2012
ISSN: 2175-0955 Santa Maria - RS, Outubro de 2012
Os resultados dos testes práticos mostraram que o percentual de equivalência entre
os métodos na identificação da área predominante foi de 78%. Ficou claro que não há
unanimidade, mas que é um percentual expressivo, levando em conta a complexidade
inerente neste tipo de análise, visto que é dependente das palavras eleitas para compor o
Dicionário de Palavras bem como dos termos usados pelos autores das obras científicas.
Levando em conta as áreas secundárias, houve em média 96% de acerto. É
importante destacar o fato de que um comparativo entre a similaridade da área designada a
um artigo com outras três (constatadas pelos algoritmos) aumentou muito a chance de
acerto. Cabe salientar que esse cálculo foi levado em consideração pelo fato de muitos
artigos poderem estar relacionados a mais de uma área.
No comparativo entre as áreas definidas pelo autor, evento ou docentes e os
resultados dos métodos testados, os números foram consideravelmente inferiores: no
método Contagem x Peso obteve-se um acerto de 57%; no método Similaridade por
Cosseno obteve-se 52%.
Quanto ao tempo de execução dos algoritmos, foram obtidos valores muito
satisfatórios: em torno de 433ms por página no método Contagem x Peso; 411ms no
método Similaridade por Cosseno. Comparativamente os resultados mostraram que, em
termos de desempenho de processamento, os métodos se equivalem.
Durante o procedimento de análise dos textos foram encontrados diversos desafios,
dentre eles a dificuldade na extração correta dos caracteres a partir de documentos PDF.
Em diversos textos alguns caracteres ficaram cifrados (ex.: originalmente: “configuração”,
resultado: “CON?GURAC¸A˜”); Os artigos que apresentaram essa falha foram descartados
para não influenciarem nos resultados dos testes.
5. Conclusões
Atualmente, no contexto geral, não existe um consenso na subdivisão das áreas da
Computação entre os órgãos reguladores, docentes e pesquisadores de instituições de
ensino e pesquisa. Dessa forma, existe um considerável desafio ao se conferir uma área
universal para uma obra científica. Nesse contexto, essa pesquisa contribui para um
avanço nos debates em termos de classificação dessas áreas.
Conforme os resultados numéricos apresentados pôde-se constatar, conforme as
expectativas iniciais desta pesquisa, que tanto o dicionário de sinônimos quanto o de
palavras tiveram muita influência nas classificações obtidas. Sendo assim, é muito
importante que haja o incremento constante de palavras, nos idiomas Português e Inglês,
pelo fato da constante evolução tecnológica e o consequente acréscimo de novas
expressões técnicas.
Os números obtidos nos comparativos das áreas definidas pelo autor, evento ou
docentes e os resultados dos métodos testados ficaram aquém daqueles esperados
inicialmente. O problema decorre de uma combinação de fatores como: da falta de
linearidade em alguns textos, ou seja, do desvio de foco com excessiva explicação de
questões com pouca relevância ao tema de um artigo; da repetição excessiva de algumas
palavras que possuem uma elevada atribuição de peso no dicionário de palavras; e da
dificuldade do tratamento de palavras com quebra de linha.
Os algoritmos testados não apresentaram uma solução definitiva para a
classificação de artigos em suas respectivas áreas, mas permitem, em combinação com
dicionários de dados complexos e bem definidos, estabelecer parâmetros que poder ser
úteis em mecanismos inteligentes de buscas de conteúdos.
72
Anais do XI Simpósio de Informática da UNIFRA - SIRC2012
ISSN: 2175-0955 Santa Maria - RS, Outubro de 2012
A próxima etapa desta pesquisa será a inclusão e análise de outros dois métodos: o
algoritmo de Rocchio e Ontologias. Rocchio consiste em uma adaptação do método K
Nearest Neighbors (K-NN), onde o cálculo de similaridade é aplicado entre documentos
com os vetores protótipos por grupo, que representam uma matriz de termos de cada grupo
do conjunto de treinamento, ou seja, cada grupo possui um conjunto de documentos já
classificados pela semelhança entre eles, sendo assim, é gerada uma matriz de termos que
representa todo o grupo. Com relação a Ontologias, espera-se fazer um refinamento ainda
maior do processo de classificação, com a inclusão da etapa de verificação de termos e
expressões, de modo a não ocorrer apenas o mapeamento de caracteres e palavras, como
também da composição e relacionamento entre conjuntos desses elementos textuais.
Referências
AMORIM, Thiago. Conceitos, técnicas, ferramentas e aplicações de Mineração de
Dados para gerar conhecimento a partir de bases de dados. Trabalho de conclusão
do curso de graduação em Ciência da Computação, Universidade Federal de
Pernambuco - UFPE, 2006.
COOLEY, R.; MOBASHER, B; SRIVASTAVA, J..Web Mining: Information and Pattern Discovery on the World Wide Web. In Proc. 9th IEEE InternationalConference
on Tools with Artificial Intelligence (ICTAI’97), 1997.
DE AMO, Sandra. Técnicas de Mineração de Dados. XXIV Congresso da Sociedade
Brasileira de Computação. Salvador, 2004.
DE CAMARGO, Yuri Barwick Lannes. Abordagem linguística na classificação
automática de textos em português. Dissertação de Mestrado em Engenharia Elétrica,
Universidade Federal do Rio de Janeiro - UFRJ, 2007.
DE CASTRO, Patrícia Fiuza. Categorização automática de textos. Dissertação de
Mestrado em Ciências em Sistemas e Computação, Instituto Militar de Engenharia do
Rio de Janeiro - RJ, 2000.
DE SA, Hially Rodrigues. Seleção de Características para Classificação de Texto.
Monografia de graduação em Ciência da Computação, Universidade Federal de
Pernambuco - UFPE, 2008.
GALHO, Thaís S. Categorização Automática de Documentos de Texto Utilizando
Lógica Difusa. Monografia de graduação em Ciência da Computação, Universidade
Luterana do Brasil - ULBRA, Gravataí – RS, 2009.
GARDNER, H.. Frames of mind. The theory of multiple intelligences. New York:
BasicBooks, 2003.
HECHT-NIELSEN,R. Neurocomputing. Massachusetts-EUA: Addison-Wesley, 1991.
KOVACS, K. L. Redes Neurais Artificiais - Fundamentos e Aplicações. São Paulo:
Editora Acadêmica, 1996.
MORAIS, Edison Andrade Martins. Contextualização de Documentos em Domínios
Representados por Ontologias Utilizando Mineração de Textos. Dissertação de
Mestrado em Ciência da Computação, Universidade Federal de Goiás - UFG, 2007.
RBBD. C. Um modelo Algébrico para representação, indexação e classificação
automática de documentos digitais. Revista Brasileira de Biblioteconomia e
Documentação, Nova série, São Paulo, V.3, n.1, p.73-98, 2007.
TAKASHIMA, Rafael da Silva. Speetv: um protótipo de sistema interativo para TV
digital com o uso de um agente reconhecedor de comandos de voz. Monografia de
graduação em Ciência da Computação, Universidade Federal do Pará, 2008.
WIVES, Leandro Krug. Tecnologias de descoberta de conhecimento em textos
aplicadas a inteligência competitiva. Monografia de graduação em Ciência da
Computação, Universidade Federal do Rio Grande do Sul - UFRGS, 2002.
73
Anais do XI Simpósio de Informática da UNIFRA - SIRC2012
ISSN: 2175-0955 Santa Maria - RS, Outubro de 2012
Data Mining aplicado ao caso de alunos com subsídio no
núcleo de assistência estudantil – NAE da Universidade
Federal do Rio Grande
Wagner Gadêa Lorenz¹, Ricardo Fröhlich da Silva¹, Leonardo Ramos
Emmendorfer², Adriano Velasque Werhli²
1
Universidade Federal de Santa Maria (UFSM)
97.105-900 – Santa Maria – RS – Brazil
²
Universidade Federal do Rio Grande (FURG)
96.170-000 – Rio Grande – RS – Brazil
{wagnerglorenz,ricardosma,leonardo.emmendorfer,werhli}@gmail.com
Abstract. This article makes use of the concepts and applications of process
KDD (Knowledge Discovery in Databases). Data from the Federal University
of Rio Grande - FURG were intentionally selected so as to give information to
the university on a classification model of students with subsidy at the Center
for Student Assistance - NAE.
Resumo. O presente artigo faz o uso de conceitos e aplicações do processo
KDD (Knowledge Discovery in Databases), também conhecido como
descoberta de conhecimento em bases de dados. Dados da Universidade
Federal do Rio Grande - FURG foram escolhidos intencionalmente de
maneira a fornecer informações para a universidade sobre um modelo de
classificação dos alunos com subsídio no Núcleo de Assistência Estudantil NAE.
1. Introdução
O constante avanço na área da Tecnologia da Informação viabilizou o armazenamento
de grandes e múltiplas bases de dados. A partir de vários tipos de tecnologias como
internet, sistemas de gerenciadores de bancos de dados, sistemas de informação em
geral, têm viabilizado uma grande proliferação de inúmeras bases de dados de natureza
comercial, científica, governamental e administrativa. Com isso aumenta a dificuldade
do homem analisar, interpretar e extrair informações, e assim surge à necessidade da
utilização de ferramentas computacionais que auxiliem nestas tarefas. Com isso surge a
necessidade de analisar e utilizar do melhor modo possível todo esse volume de dados
disponível obtendo informações até o momento implícitas, segundo Goldschmidt e
Passos (2005).
De acordo com Fayyad, Piatetsky-Shapiro e Smyth (1996), o Knowledge
Discovery in Databases - KDD é um processo, de várias etapas, não trivial, interativo e
iterativo, para identificação de padrões compreensíveis, válidos, novos e potencialmente
úteis a partir de grandes conjuntos de dados.
74
Anais do XI Simpósio de Informática da UNIFRA - SIRC2012
ISSN: 2175-0955 Santa Maria - RS, Outubro de 2012
Segundo Goldschmidt e Passos (2005), descobrir conhecimento significa extrair
significado dos dados para evitar riscos e aproveitar oportunidades, desde a hora de
tomar decisões até o processo de planejamento de atividades. A descoberta de
conhecimento em bases de dados é multidisciplinar e, historicamente, origina-se de
diversas áreas, dentre as quais podem ser destacadas: Estatística, Inteligência
Computacional, Aprendizado de Máquina, Reconhecimento de Padrões e Banco de
Dados.
Dados da Universidade Federal do Rio Grande – FURG, foram escolhidos para
que, ao realizar o projeto de pesquisa e aplicação, seja possível fornecer informações
para a universidade sobre a classificação dos alunos com subsídio na base de dados do
Núcleo de Assistência Estudantil – NAE da FURG, dos anos de 2009, 2010 e 2011,
visando obter de forma automática conhecimentos até então implícitos por meio do uso
de Data Mining.
2. Metodologia
A Figura 1, traz uma visão das etapas do processo de Descoberta de Conhecimento em
Bases de Dados.
Figura 1. Visão geral das etapas do processo de Descoberta de Conhecimento
em Bases de Dados – KDD, adaptada de Fayyad et al. (1996).
De acordo com o agrupamento proposto por Goldschmidt e Passos (2005), a
etapa de pré-processamento tem as funções de captação, organização e tratamento dos
dados, com o objetivo de preparar os dados para os algoritmos da etapa de Mineração de
Dados.
Algumas das mais importantes atividades da etapa de pré-processamento de
dados, de acordo com Goldschmidt e Passos (2005), Zhang, Zhang e Yang (2003), Tan,
Steinbach e Kumar (2009) estão expostas a seguir:
Limpeza: o objetivo desta etapa é a eliminação de valores ausentes em conjuntos de
dados segundo Goldschmidt e Passos (2005). Foi efetuada uma avaliação sobre a
consistência das informações, correção de possíveis erros, eliminação de valores
não pertencentes ao domínio e tratamento de valores ausentes ou redundantes.
75
Anais do XI Simpósio de Informática da UNIFRA - SIRC2012
ISSN: 2175-0955 Santa Maria - RS, Outubro de 2012
Enriquecimento: esta etapa serve para aumentar a base de dados utilizando outras
fontes de informação de acordo com Elmasri e Navathe (2003). Foi utilizada a
base de dados do Sistema de Informações Acadêmicas – SIA da FURG,
referente aos alunos com algum tipo de subprograma no NAE, agregando
informações à base já existente.
Codificação: codificar significa transformar a natureza dos valores de um atributo
de acordo com Goldschmidt e Passos (2005). Os dados foram codificados para
atender às necessidades específicas do algoritmo de mineração de dados,
utilizando a codificação numérico-categórica com mapeamento em intervalos.
Construção de Atributos: onde são criadas novas colunas na tabela, de acordo com
Soares (2007). Foi utilizado para criação de alguns tipos de atributos como:
idade, área de conhecimento do curso e nota média.
A segunda etapa, Mineração de Dados temos à busca efetiva por conhecimentos
úteis para o contexto da aplicação de KDD. Foi utilizado o software WEKA (Waikato
Enviroment for Knowledge Analysis), de acordo com Waikato (2008), WEKA é uma
coleção de algoritmos de aprendizagem de máquina e ferramentas de pré-processamento
de dados desenvolvida pela University of Waikato, Nova Zelândia. Foi utilizado o
algoritmo de classificação J4.8 sobre o conjunto de dados selecionados. Este é um
algoritmo para classificação por indução de árvores de decisão. De acordo com Souza,
Mattoso e Ebecken (1998) e Bogorny (2003) , árvore de decisão é a maneira mais
simples de classificar exemplos em um número finito de classes.
A terceira etapa, o Pós-processamento segundo Goldschmidt e Passos (2005),
envolve a visualização, a análise e a interpretação do modelo de conhecimento gerado
pela etapa de Mineração de Dados. É nesta etapa que o especialista em KDD e o
especialista no domínio da aplicação avaliam os resultados obtidos e definem novas
alternativas de investigação dos dados.
3. Resultados e discussões
Todo o processo de coleta e pré-processamento dos dados foi conduzido pela visão de
um especialista, aplicando todas as etapas necessárias para o processo por meio de
consultas SQL. Os atributos selecionados para a análise nas áreas de conhecimento dos
cursos analisadas estão descritos na Tabela 1.
Tabela 1. Atributos utilizados na ferramenta WEKA para as três áreas de
conhecimento dos cursos analisados.
Atributo
Referência
Intervalos
area_curso
Área de conhecimento do Exatas ou Sociais
curso
Humanas ou Saúde
idade
Idade do aluno
76
e
Igual e menor que 20 ou
entre 21 e 25 ou igual e
maior que 26
Anais do XI Simpósio de Informática da UNIFRA - SIRC2012
ISSN: 2175-0955 Santa Maria - RS, Outubro de 2012
sexo
Sexo do aluno
F ou M
nota
Derivado da média das BOA ou RUIM
notas do aluno
município
Município de origem do Rio Grande
aluno
cidades
ano_inscricao
Ano de inscrição
subprograma do NAE
subprograma
Subprograma que pertence Alimentação ou Moradia
o aluno
ou Transporte ou Bolsa
Permanência ou Pré-escola
ou
outras
no 2009 ou 2010 ou 2011
Com a utilização do software WEKA e do algoritmo de classificação J4.8 foram
executados sobre o conjunto de dados. Nos testes realizados, foram utilizados os
parâmetros padrões do algoritmo, com exceção do parâmetro confidenceFactor, alterado
para 0.5 no caso da área de conhecimento dos cursos das Sociais e Humanas,
diminuindo assim a poda da árvore. Para as áreas de conhecimento dos cursos das Extas
e Saúde o confidenceFactor foi mantido padrão, sendo de 0.25. Foi utilizada a validação
cruzada com 10 folds, ou seja, são realizados 10 experimentos, reservando a cada
experimento, uma fração de 1/10 dos dados para testes e, ao final é calculada a média de
resultados.O atributo classe escolhido para o algoritmo de classificação foi o atributo
“nota”, que apresenta os seguintes valores possíveis: “BOA” (para notas iguais e
maiores que sete) ou “RUIM” (para notas inferiores a sete).
Em média, o índice de instâncias classificadas corretamente pelo algoritmo J4.8
da ferramenta WEKA, para as três áreas de conhecimento dos cursos analisados, foi de
69,3695%, o que representa um bom nível de acerto segundo Goldschmidt e Passos
(2005) e Tan et al. (2009). Consequentemente, a porcentagem de instâncias classificadas
incorretamente pelo mesmo algoritmo foi de, em média 30,6305%, como ilustrado na
Tabela 3.
Tabela 2. Índice de instâncias classificadas corretamente e incorretamente na
execução do algoritmo de classificação J4.8 na ferramenta WEKA para as áreas
de conhecimento dos cursos em análise.
Área de conhecimento
dos cursos
Acerto
Erro
Exatas
61,5160%
38,4840%
Sociais e Humanas
74,5884%
25,4116%
Saúde
72,0041%
27,9959%
Média
69,3695%
30,6305%
Através da árvore de decisão gerada é possível também extrair regras de
classificação para o conjunto de entrada, a partir dos nós da árvore e do índice de acertos
77
Anais do XI Simpósio de Informática da UNIFRA - SIRC2012
ISSN: 2175-0955 Santa Maria - RS, Outubro de 2012
de classificação em cada nó folha. Com isso, foi determinado um fator mínimo de
confiança de 69,36% (média do índice de instâncias classificadas corretamente para as
três áreas de conhecimento dos cursos analisados, evidenciado na Tabela 3) para
extração de regras de classificação para cada conjunto de dados, a partir do resultado da
indução de árvore de decisão.
Com a utilização da Tabela 1, onde temos os atributos utilizados para as três
áreas de conhecimento dos cursos (area_curso, idade, sexo, nota, municipio,
ano_incricao, subprograma). A leitura das regras de classificação é feita como poder ser
observado a seguir, tendo como exemplo a primeira regra encontrada para a área de
conhecimento dos cursos das Exatas.
Regra: idade (menor ou igual a 20) -> sexo (feminino) -> municipio (outras
cidades) -> ano_incricao (2010) -> subprograma (Alimentação) -> BOA (70,59%).
Leitura: Alunos da área de conhecimento dos cursos das Exatas que tem idade
menor ou igual a 20 anos, do sexo feminino, de outras cidades como município de
origem, fez inscrição no ano de 2010 em um subprograma do NAE, inscrito no
subprograma Alimentação do NAE, possuí nota BOA, com um fator de confiança de
70,59%.
A Figura 2 representa a árvore de decisão gerada pela ferramenta para a área de
conhecimento dos cursos das Exatas.
Figura 2. Árvore de decisão gerada pela ferramenta WEKA para a área de
conhecimento dos cursos das Exatas.
78
Anais do XI Simpósio de Informática da UNIFRA - SIRC2012
ISSN: 2175-0955 Santa Maria - RS, Outubro de 2012
4. Conclusões
A ideia principal deste trabalho foi de apresentar conceitos e técnicas do processo de
KDD, dando um maior destaque no processo de KDD o qual foi efetuado pela visão de
um especialista, sendo selecionados os atributos desejados para obter o conhecimento
desejado. Destacando os métodos de Data Mining. Com o apoio de um software
específico para Data Mining, o WEKA, foi possível realizar experimentos sobre os
dados selecionados, focando sempre nos algoritmos de classificação por indução de
árvore de decisão.
Foram realizadas todas as etapas, desde a coleta dos dados e pré-processamento,
através de consultas SQL, até a extração de regras de classificação.
Através da seleção dos atributos e da utilização de algoritmos de classificação
por indução de árvores de decisão foi possível conhecer as variáveis mais importantes
para cada área de conhecimento dos cursos. Com isso, foram obtidos novos
conhecimentos sobre a base de dados e sobre a relação entre as variáveis em questão
para cada área de conhecimento dos cursos, ou seja, sobre algumas características dos
alunos bolsistas de programas de apoio do Núcleo de Assistência Estudantil da
Universidade Federal do Rio Grande - FURG.
References
BOGORNY, Vania. Algoritmos e Ferramentas de Descoberta de Conhecimento em
Bancos de Dados Geográficos. Porto Alegre: PPGC da UFRGS. 2003.
ELMASRI, Ramez.; NAVATHE, Shamkant. B. Fundamentals of Database Systems - 4
ed. Pearson – Addison Wesley. 2003.
FAYYAD, Usama.; PIATETSKY-SHAPIRO, Gregory.; SMYTH, Padhraic. From Data
Mining to Knowledge Discovery in Databases. Ai Magazine, 37-54. 1996.
GOLDSCHMIDT, Ronaldo.; PASSOS, Emmanuel. Data Mining: Um guia prático - 2
ed. Rio de Janeiro: Campus. 2005.
SOARES, Jorge de. Abreu. Pré-processamento em mineração de dados: um estudo
comparativo em complementação. PhD thesis, Universidade Federal do Rio de
Janeiro, COPPE. 2007.
SOUZA, Mauro. S.; MATTOSO, Marta. L.; EBECKEN, Nelson. Data mining: a
database perspective. Rio de Janeiro: International Conference on Data Mining.
1998.
TAN, Pang-Ning.; STEINBACH, Michael; KUMAR, Vipin. Introdução ao Data
Mining: Mineração de Dados. Rio de Janeiro: Ciência Moderna. 2009.
WAIKATO, University. WEKA 3: Data Mining Software in Java. Nova Zelândia. 2008.
ZHANG, Shichao ; ZHANG, Chengqi.; YANG, Qiang. Data Preparation for Data
Mining. Applied Artificial Intelligence, 375-381. 2003.
79
Anais do XI Simpósio de Informática da UNIFRA - SIRC2012
ISSN: 2175-0955 Santa Maria - RS, Outubro de 2012
Estudo de métodos para execução de regras ativas através da
detecção de eventos temporais em sistemas de gerenciamento
de bancos de dados
Christian K. Gebert1, Jeferson Kasper2, Giovani R. Librelotto2, Deise Saccol2
PET – Sistemas de Informação (MEC/SESU) - Universidade Federal de Santa Maria
(UFSM) - Santa Maria – RS – Brazil
1
CT - Centro de Tecnologia - DELC - Departamento de Eletrônica e Computação Universidade Federal de Santa Maria (UFSM) - Santa Maria – RS – Brazil
2
{cgebert, jkasper, librelotto, deise}@inf.ufsm.br
Abstract. This article presents some methods available in DBMSs (Database
Management Systems) to implement active rules based on temporal events.
This work is on commercial databases used widely and shows how to
implement command-line to do scheduled tasks, not depending on graphical
interface to input commands. Also presented some examples of temporal
events and an use-case of these methods.
Resumo. Este artigo apresenta um estudo relacionado aos métodos
disponíveis nos SGBDs (Sistemas de Gerenciamento de Banco de Dados) para
execução de regras ativas baseadas em eventos temporais. Foram estudados
os bancos de dados comerciais mais utilizados atualmente e para o
agendamento das tarefas, foi pesquisada a maneira textual de implementar os
comandos, para que não seja necessário utilizar uma interface gráfica.
Também são apresentados alguns exemplos de utilização de eventos
temporais e um caso de aplicação dos métodos estudados.
1. Introdução
Os sistemas de gerenciamento de bancos de dados (SGBD) tem sido amplamente
utilizados nos mais diversos tipos de aplicações que envolvem o gerenciamento de
informações. Dessa forma, novas funcionalidades tem sido implementadas com o
objetivo de aperfeiçoar e satisfazer as necessidades das aplicações que os utilizam como
base. Dentre as novas funcionalidades implementadas nos SGBDs, criou-se a partir da
necessidade de se tornar os bancos de dados reativos a ações do usuário, os bancos de
dados ativos, especificando um novo paradigma de comportamento dos dados. Os
bancos de dados ativos (BDA) são aqueles que têm a capacidade de monitorar situações
que interessam e, quando elas ocorrem, disparam respostas apropriadas de uma forma
oportuna [Korth 2006].
2. Banco de Dados Ativos (BDA)
Um BDA, geralmente implementado na forma de triggers, possibilita a utilização de
várias funcionalidades, tais como execução de restrições de integridade, manutenção de
dados derivados, uso de mecanismos de alerta, proteção de acesso e controle de versões.
Também permitem a definição, armazenamento e execução de regras de negócios. A
semântica dos triggers segue o paradigma ECA (evento-condição-ação), no qual o
evento é uma operação do banco de dados, a condição é um predicado em SQL e a ação
1 O autor é não bolsista do PET – Sistemas de Informação (MEC/SESU)
80
Anais do XI Simpósio de Informática da UNIFRA - SIRC2012
ISSN: 2175-0955 Santa Maria - RS, Outubro de 2012
é uma sequência de comandos de procedimentos SQL [Elmasri 2011]. A parte referente
às condições e ações (CA) também é conhecida como regra [Tanaka 1995].
Depois de criadas as triggers para tornar os SGBDs aptos a trabalhar com o
modelo ECA (especificadas no padrão SQL99), percebeu-se a necessidade de
implementar um sistema reativo a novos tipos de eventos, porém baseados em eventos
temporais. Diferentemente das triggers padronizadas pela SQL 99, as equipes de
desenvolvimento dos SGBDs criaram de forma independente e sem padronização,
maneiras para especificar o agendamento de tarefas baseadas em eventos temporais,
armazenando-os diretamente no banco de dados, sendo este o principal objeto de estudo
deste projeto.
3. Regras Ativas baseadas em Eventos Temporais
De acordo com o estudo realizado por Kasper (2006), um evento é um fato que ocorre
em um dado momento e, teoricamente, não tem duração. Em geral, um evento é um
resultado final de uma ação, mas não deve ser confundido com a própria ação que, em
geral, não é instantânea e tem uma duração. Em um banco de dados, um evento
especifica o fato que causou o disparo de uma regra e pode ser primitivo (simples) ou
composto (conjunto de eventos simples) [Tanaka 1995]. Um evento tem um
identificador e uma lista de argumentos formais. Todo evento tem uma operação
especial que sinaliza a detecção e é executada por um componente especial do sistema
chamado detector de eventos. Esta operação liga os argumentos formais aos argumentos
atuais do evento, possibilitando assim, a execução de operação no banco.
Para a especificação das regras ativas em bancos de dados, foram determinados
três tipos de eventos temporais, listados a seguir:
1. Eventos temporais absolutos: referem-se a pontos no tempo como, por exemplo,
o tempo especificado pelo relógio do sistema (ex: "meio-dia de “19/05/1995").
2. Eventos temporais relativos: são os eventos temporais especificados em relação
ao tempo absoluto de detecção do evento (ex: "dez minutos após a detecção de
um sinal").
3. Eventos temporais periódicos: são aqueles que ocorrem a intervalos regulares de
tempo (ex: "a cada 10 minutos" ou "todos os dias, ao meio dia").
O sinal de detecção envolve o tempo absoluto em que o evento especificado
ocorreu, além de outras informações adicionais fornecidas pelo banco de dados.
A execução de regras baseadas em eventos temporais geralmente é realizada
diretamente pelo sistema operacional através do agendamento de tarefas, e levando em
conta que o SGBD tem a capacidade de fazê-lo sem esse intermediário, a tendência é
que sejam determinadas tais tarefas diretamente no banco de dados, tornando-o
independente do sistema operacional onde o SGBD está instalado.
Este projeto tem como objetivo efetuar um levantamento das maneiras
disponíveis para execução dessas regras nos principais SGBDs, Open Source e
comerciais, baseados na detecção de eventos temporais definidos por Tanaka (1995).
4. Exemplos de utilização de tarefas agendadas em SGBDs
Nessa seção, serão apresentados 2 casos onde podem ser utilizadas regras ativas
baseadas em eventos temporais:
81
Anais do XI Simpósio de Informática da UNIFRA - SIRC2012
ISSN: 2175-0955 Santa Maria - RS, Outubro de 2012
4.1 Backups Automatizados
Os SGBDs estão fortemente ligados ao sistema operacional onde estão instalados. Os
Administrados de Banco de Dados (DBA - Database Administrators) necessitam definir
rotinas para recuperação de dados em caso de desastres ou para recuperação controlada
(rotinas de backup). Para estes casos, ao invés do administrador utilizar o aplicativo
agendador de tarefas do Microsoft Windows ou o cron do Linux, as rotinas de backup
podem ser implementados diretamente no SGBD através de stored procedures,
eliminando assim, a dependência de comandos externos do sistema operacional onde o
banco de dados está instalado.
Deve ser levado em conta que o daemon (executável residente em memória) que
controla o SGBD deve estar sempre ativo, caso contrário as rotinas agendadas poderão
não ser executadas da maneira esperada.
4.2 Fracionamento de tarefas com alto custo de processamento
Para exemplificar esse caso, supõe-se um sistema de telefonia, onde é calculado o valor
diário de consumo de um grande grupo de linhas telefônicas, onde no final de cada mês,
o SGBD é acionado para que execute os cálculos referentes as faturas de cada uma das
contas. Levando em conta que os dados, após terem sido inseridos no banco, não serão
mais alterados, pode-se inferir que serão imutáveis e é possível que, ao invés de
sobrecarregar o SGBD processando todas as contas de todo o mês, podem ser feitos
cálculos diários de consumo, somando-se o total do dia anterior com o total do dia atual.
Na seção 6 desse artigo é apresentado como cada SGBD estudado especifica o
agendamento de uma tarefa para efetuar um backup automatizado, mostrando na prática
o primeiro exemplo desta seção.
5. Metodologia
Para que pudessem ser executados os comandos nos SGBDs, foi determinado
inicialmente, um escopo para o projeto, sendo este o de apenas agendar uma tarefa
simples que será realizada em um determinado horário, levando em conta que esse
agendamento deverá ser feito através de uma linha de comando textual, sendo este um
dos pontos determinantes neste trabalho.
Os SGBDs escolhidos neste projeto, no passo de instalação de cada um deles, foi
determinado que não fossem instalados plugins (módulos adicionais externos) para
agendamento de tarefas, levando em conta que o próprio SGBD deve ter implementado
nativamente o motor de detecção de eventos temporais.
Foi definido que os SGBDs escolhidos como objeto de estudo seriam o Oracle,
IBM DB2, Microsoft SQL Server e PostgreSQL, pelo fato de serem os gerenciadores de
bancos de dados mais utilizados atualmente. Após as análises, serão especificadas as
maneiras estudadas, mostrando as ferramentas relacionadas aos eventos temporais.
Para demonstrar como são agendadas as regras nos SGBDs estudados, serão
apresentadas as ações de preparação que cada base de dados deverá executar caso exista
necessidade, e também os comandos textuais para executar o exemplo da seção 4.1. Foi
levado em conta que a prioridade é inserir as tarefas agendadas via linha de comando,
pois um dos objetivos é não utilizar uma interface gráfica para efetuar o agendamento
das tarefas, pois nem todo servidor com um banco de dados instalado tem interface
gráfica disponível.
82
Anais do XI Simpósio de Informática da UNIFRA - SIRC2012
ISSN: 2175-0955 Santa Maria - RS, Outubro de 2012
Com a definição dos comandos necessários para agendamento das tarefas, é
possível que os SGBDs sejam utilizados diretamente para realizar a execução dos
eventos temporais, sendo esse o objetivo principal do estudo.
6. Aplicação de Eventos Temporais
Nessa seção é exemplificada a utilização de eventos temporais baseadas em regras
definidas diretamente em cada SGBD. Para isso, foi levado em conta que os bancos de
dados executarão um stored procedure chamada gerar_backup_proc, que esta é
responsável pela chamada do procedimento de backup. Foi definido também que será
um evento periódico executado 1 vez por dia, as 3 horas da manhã
6.1 Eventos temporais no Oracle
Para a execução do evento de exemplo no Oracle 11g (versão utilizada no estudo), é
necessário criar um programa dentro do SGBD, para que esse seja chamado pelo
agendador (Scheduler). O primeiro bloco de códigos apresenta duas linhas em negrito,
em que a primeira define o nome do programa e a segunda define qual comando será
executado. No segundo bloco, é agendado o comando previamente definido, para iniciar
a execução no dia 25/09/2012, às 3 horas, com frequência diária.
BEGIN
SYS.DBMS_SCHEDULER.CREATE_PROGRAM(
program_name => '"SYSTEM"."PROG_INSERT"',
program_action => '
begin
exec gerar_backup_proc();
end;',
program_type => 'plsql_block',
number_of_arguments => 0,
comments => NULL,
enabled => TRUE);
END;
BEGIN
SYS.DBMS_SCHEDULER.CREATE_JOB (
job_name => '"SYSTEM"."agendamento"',
program_name => '"SYSTEM"."PROG_INSERT"',
start_date => TO_TIMESTAMP('25/09/12 03:00:00,000000000', 'DD/MM/RR HH24:MI:SS,FF'),
repeat_interval =>'FREQ=DAILY;INTERVAL=1',
end_date => NULL,
job_class => 'DEFAULT_JOB_CLASS',
enabled => true,
auto_drop => true,
comments => NULL);
END;
6.2 Eventos temporais no IBM DB2
Para a execução do evento de exemplo no DB2 9.5, é necessário ativar de antemão o
Administrative Task Scheduler (ATS) e criar o tablespace SYSTOOLSPACE. Na linha 8
do bloco de código a seguir, descreve o tempo em que será gerado o evento temporal,
sendo o primeiro zero o parâmetro de minutos, o segundo de horas, o terceiro de dias, o
quarto de meses e o quinto de dias da semana. Para esse caso, ficou definido para repetir
o comando diariamente, às 3 horas.
db2set DB2_ATS_ENABLE=YES
db2 create tablespace SYSTOOLSPACE managed by automatic storage
db2 connect to PROJ USER usuario_conn_db2 using password_conn_db2
db2 call SYSPROC.ADMIN_TASK_ADD ( 'PROJ BACKUP',
NULL,
83
Anais do XI Simpósio de Informática da UNIFRA - SIRC2012
ISSN: 2175-0955 Santa Maria - RS, Outubro de 2012
db2 commit
db2 connect reset
NULL,
NULL,
'0 3 * * *',
'SYSPROC',
'ADMIN_CMD',
'values(''call gerar_backup_proc()'') ',
NULL,
NULL )
6.3 Eventos temporais no Microsoft SQL Server
Para execução no Microsoft SQL Server 2008 (RTM), é necessário criar primeiramente
uma job para depois ser agendada pelo scheduler do SGBD. Nesse caso, a base de
dados é chamada de “teste” e o comando ficou agendado para ser repetido diariamente,
às 3 horas.
USE [msdb]
GO
BEGIN TRANSACTION
DECLARE @ReturnCode INT
SELECT @ReturnCode = 0
IF NOT EXISTS (SELECT name FROM msdb.dbo.syscategories WHERE name=N'Data Collector' AND
category_class=1)
BEGIN
EXEC @ReturnCode = msdb.dbo.sp_add_category @class=N'JOB', @type=N'LOCAL', @name=N'Data
Collector'
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
END
DECLARE @jobId BINARY(16)
EXEC @ReturnCode=msdb.dbo.sp_add_job @job_name=N'teste',@enabled=1,
@notify_level_eventlog=0, @notify_level_email=0, @notify_level_netsend=0, @notify_level_page=0,
@delete_level=0, @description=N'teste', @category_name=N'Data Collector',
@owner_login_name=N'USUARIOS-PC\USUARIOS', @job_id = @jobId OUTPUT
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
EXEC @ReturnCode = msdb.dbo.sp_add_jobstep @job_id=@jobId, @step_name=N'insert',
@step_id=1, @retry_attempts=1, @retry_interval=1, @os_run_priority=0, @subsystem=N'TSQL',
@command=N'use teste;
GO
exec gerar_backup_proc();
',
@database_name=N'teste', @flags=0
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
EXEC @ReturnCode = msdb.dbo.sp_update_job @job_id = @jobId, @start_step_id = 1
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
EXEC @ReturnCode = msdb.dbo.sp_add_jobschedule
@job_id=@jobId, @name=N'agendamento',@enabled=1,
@freq_type=4, @freq_interval=1, @active_start_time=030000
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
EXEC @ReturnCode = msdb.dbo.sp_add_jobserver @job_id = @jobId, @server_name = N'(local)'
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
COMMIT TRANSACTION
GOTO EndSave
QuitWithRollback:
IF (@@TRANCOUNT > 0) ROLLBACK TRANSACTION
EndSave:
GO
84
Anais do XI Simpósio de Informática da UNIFRA - SIRC2012
ISSN: 2175-0955 Santa Maria - RS, Outubro de 2012
6.4 Eventos temporais no PostgreSQL
De acordo com os estudos realizados no SGBD PostgreSQL, não existe uma maneira
nativa de se executar tarefas agendadas. Uma alterativa oferecida é a instalação no
banco de dados de uma extensão chamada PGAgent, que tem por objetivo gerenciar as
regras ativas baseadas nos eventos temporais, porém, é uma ferramenta que funciona em
interface gráfica. Como o objetivo deste projeto é pesquisar apenas as maneiras textuais
de agendar tarefas e o PostgreSQL não apresenta, até o momento, uma maneira de
mapear as regras temporais via linha de comando, esse SGBD não terá sua sintaxe
apresentada nesse artigo.
7. Conclusões
Podemos concluir a partir desse trabalho que as empresas desenvolvedoras dos SGBDs
não seguiram um padrão para a criação das tarefas, e isso se deve a não existir uma
especificação homologada de execução de regras a partir dos eventos temporais.
Possivelmente, quando existir um padrão definido para resolução deste problema, as
empresas irão implementar wrappers com o objetivo de transcrever a linguagem
padronizada para os comandos já implementados por elas. Também podemos concluir
que na medida em que aumenta a utilização de uma linguagem padronizada para
execução de regras ativas, outros estudos serão possíveis para evolução do formato das
regras e da especificação dos eventos, fazendo com que as soluções atuais para resolver
esse problema sejam melhoradas, tornando os SGBDs capazes de realizar novos tipos
operações.
Referencias Bibliográficas
Tanaka, A.K.(1995). “Bancos de Dados Ativos, 10º Simpósio Brasileiro de Bancos de
Dados.” Anais. Recife-PE. p. 15-32.
Korth, H.F; Silberschatz, A.; Sudarshans, S. (2006). “Sistemas de Bancos de Dados. 5ª
Ed.” Campus.
Elmasri, R.; Navathe, S. B. (2011). “Sistemas De Banco De Dados. 6ª Ed.” Pearson.
Kasper, J.; Simonetto, E. O. (2006) “Extensão para execução de regras através da
detecção de eventos temporais.” - Escola Regional de Banco de Dados. Passo Fundo
– RS.
Date, C. J..(2004) “Introdução a Sistemas de Banco de Dados.” Editora Campus, 8ª Ed.
Oracle (2012). “Oracle Database PL/SQL Packages and Types Reference 10g Release 2
10.2”.
http://docs.oracle.com/cd/B19306_01/appdev.102/b14258/d_sched.htm.
Setembro.
IBM (2012). “Use the SQL-based Administrative Task Scheduler in DB2 9.5 for Linux,
UNIX,
and
Windows”
http://www.ibm.com/developerworks/data/library/techarticle/dm-0809see/.
Setembro.
PostgreSQL
(2012).
“PostgreSQL
9.2.1
Documentation”.
http://www.postgresql.org/docs/current/static/maintenance.html. Setembro.
85
Anais do XI Simpósio de Informática da UNIFRA - SIRC2012
ISSN: 2175-0955 Santa Maria - RS, Outubro de 2012
Gestão do conhecimento aplicada ao processo de elicitação e
análise de requisitos
Juliana Cristina Glatz Rohrbacher, Cátia dos Reis Machado
Instituto Federal de Educação, Ciência e Tecnologia Catarinense (IFC – Campus
Camboriú)
[email protected], [email protected]
Resumo. As primeiras atividades que envolvem o desenvolvimento de um software
estão voltadas ao entendimento do negócio e das necessidades do usuário. Este
artigo propõe o uso da gestão do conhecimento para modelar o conhecimento
produzido por todos os envolvidos no processo. Trata-se de uma pesquisa de
natureza aplicada, abordagem qualitativa, com finalidade exploratória, que visa
apresentar os resultados por meio de um estudo de caso hipotético. Contatou-se com
base em resultados parciais a relevância da pesquisa tanto para a academia como
para as empresas que desenvolvem software. As práticas de gestão do conhecimento
podem auxiliar na identificação, criação, organização, compartilhamento e uso do
conhecimento produzido no processo de elicitação e análise de requisitos.
Palavras-chave: gestão do conhecimento, engenharia de software, engenharia de
requisitos
1. Introdução
O desenvolvimento de um software é uma atividade intensiva em conhecimento que
apresenta alguns desafios como: a identificação das necessidades do usuário; o
entendimento do domínio da aplicação; a estruturação do conhecimento produzido e a
comunicação de todos os envolvidos no projeto.
Uma das principais etapas no desenvolvimento de software é a especificação e análise
de requisitos, onde o conhecimento tácito criado pelos stakeholders e analistas deve ser
transformado em conhecimento explícito.
Neste contexto propõe-se o uso de gestão do conhecimento para modelar o
conhecimento produzido nas interações entre usuários e equipe técnica.
2. Desenvolvimento
O desenvolvimento de software é a soma de um conjunto de processos que, ao final de
sua execução, devem gerar um produto de software. Uma fase extremamente importante
é a elicitação e análise de requisitos. Segundo Sommerville (2011), os requisitos de um
sistema são as descrições do que o sistema deve fazer, os serviços que oferece e as
restrições a seu funcionamento.
Ao desenvolver software corporativo é necessário conhecer a organização. Segundo
Terra (2000), o conhecimento das organizações (individual e principalmente coletivo) é
seu ativo mais importante, ainda que não seja contabilizado nos sistemas de informação
econômico-financeiros tradicionais. As facilidades em se adquirir o conhecimento – de
86
Anais do XI Simpósio de Informática da UNIFRA - SIRC2012
ISSN: 2175-0955 Santa Maria - RS, Outubro de 2012
todo o tipo – trazem a necessidade de um gerenciamento maior por parte das empresas,
no sentido de aliar a busca de conhecimento à busca de resultados.
Nonaka e Takeuchi (1997) caracterizam como conhecimento explícito aquele contido
nos livros, expressões matemáticas, manuais, diagramas. Trata-se de um conhecimento
que pode ser transmitido facilmente entre as pessoas. E o conhecimento tácito abrange
as habilidades desenvolvidas, o know-how (saber fazer alguma atividade ou tarefa)
adquirido somado às percepções, crenças e valores.
Figura 01 – Espiral do conhecimento
Fonte: Adaptado de Nonaka e Takeuchi (1997,
p. 80)
Figura 02 – Processo de elicitação e análise de
requisitos
Fonte: Sommervile (2011, p. 71)
Modelar esse conhecimento ainda é um obstáculo e um tema que vem sendo discutido.
Acredita-se que a gestão do conhecimento pode contribuir com a descoberta de
requisitos.
Esse estudo pretende sugerir a adoção de práticas de gestão do conhecimento,
metodologias e ferramentas para representar o conhecimento gerado.
4. Conclusões
Espera-se ao final do presente estudo a utilização da gestão do conhecimento aplicada a
elicitação e análise de requisitos. A proposição de ferramentas para sistematizar o
conhecimento tácito e ampliar o entendimento de todos os stakeholders sobre o software
que está sendo desenvolvido. A contribuição com a academia e o meio empresarial;
suprindo a deficiência quanto a proposições do uso da gestão do conhecimento no
processo de elicitação e análise de requisitos; auxiliando no processo mais importante
do desenvolvimento de software: o entendimento das reais necessidades do usuário.
Referências Bibliográficas
Nonaka I.; Takeuchi, H. “Criação de Conhecimento na Empresa: como as empresas
japonesas geram a dinâmica da inovação.” Rio de Janeiro: Campus, 1997. 358p.
Sommerville, I. “Engenharia de Software.” 9. ed. Pearson: Rio de Janeiro, RJ. 2011.
Terra, J.C.C. “Gestão do Conhecimento: O grande desafio empresarial.” 1. ed. Negócio:
São Paulo, SP. 2000.
87
Anais do XI Simpósio de Informática da UNIFRA - SIRC2012
ISSN: 2175-0955 Santa Maria - RS, Outubro de 2012
Inteligência Artificial: Uso de Redes Bayesianas para
Determinar o Contorno do Piso de Estufas Agrícolas
Marinaldo J. Gaspareto1, José Carlos Ferreira da Rocha1
1
Departamento de Pós-Graduação em Computação Aplicada– Universidade Estadual de
Ponta Grossa (UEPG),CEP: 84030-900, – Ponta Grossa – PR – Brasil.
[email protected], [email protected]
Abstract. The present study aims to extend the Bayesian models proposed by
Delage, Lee, Ng (2006) and Briggs, Rauwendaal, Tribelhorn (2008), so that
they can be used to detect the boundary between the floor and walls internal
images in greenhouses. Additionally, given the computational complexity of
the segmentation methods that determine the MAP hypothesis, this study also
aims to experimentally compare the computational complexity of algorithms to
compute the exact and approximate models implemented in the MAP
hypothesis.
Resumo. O presente estudo tem por objetivo estender os modelos bayesianos
propostos por Delage, Lee, Ng, (2006) e Briggs, Rauwendaal, Tribelhorn
(2008), para que os mesmos possam ser usados na detecção do limite entre o
piso e as paredes em imagens internas de estufas. Adicionalmente, dada a
complexidade computacional da segmentação com métodos que determinam a
hipótese MAP, este trabalho também objetiva comparar experimentalmente a
complexidade computacional de algoritmos para o computo exato e
aproximado da hipótese MAP nos modelos implementados.
1.Introdução
As estufas agrícolas são usadas para o cultivo de culturas, as quais necessitam de um
controle mais rigoroso, [Vida et. al.2004]. Mandow et. al. (1996), em seu trabalho
descreve vantagens de seu uso. Em suma as estufas otimizam o uso de substratos e
minimizam o uso da água e do agrotóxico. Devido a estas necessidades e a evolução da
engenharia da computação, na última década cresceu o interesse no desenvolvimento de
robôs móveis que sejam capazes de executar tarefas em estufas agrícolas [Sammons,
Furukawa, Bulgin, 2005], [Mehta, Burks, Dixon, 2008], [Gonzales et. al. 2009]. A
introdução de máquinas autônomas na agricultura deve obedecer a restrições
características do ambiente como: umidade, temperatura, poeira, obstáculos para
navegação [Mandow et. al. 1996]. No que se diz respeito aos obstáculos para navegação
no interior da estufa, pode-se citar: paredes, corredores, plantas. Dessa forma é crucial
para um sistema autônomo de navegação detectar obstáculos no meio. Considerando
isto, este trabalho aborda o problema de detectar, em imagens digitais, o limite que
define a borda (fronteira) entre o chão ou piso da estufa e suas paredes.
Delage, Lee, Ng, (2006) e Briggs, Rauwendaal, Tribelhorn (2008), apresentaram
modelos probabilísticos para detecção do contorno do rodapé em ambientes fechados.
Este trabalho considera que a navegação em estufas pode ser visto como um problema
88
Anais do XI Simpósio de Informática da UNIFRA - SIRC2012
ISSN: 2175-0955 Santa Maria - RS, Outubro de 2012
de navegação em ambientes fechados. A proposta destes autores trata da segmentação
da região que define a borda entre o chão e a parede de um ambiente fechado por meio
de um modelo probabilístico que é implementado com uma Rede Bayesiana Dinâmica
(RBD). A decisão quanto presença do rodapé em uma região da imagem é dada pela
hipótese que maximiza a probabilidade a posterior de um conjunto de variáveis
proposicionais da rede chamada de inferência do Maximum A Posteriori ou MAP,
[Park and Darwiche,2004]. Considerando isto, este trabalho tem por objetivo estender
os modelos bayesianos propostos, para que os mesmos possam ser usados na detecção
do limite entre o piso e as paredes em imagens internas de estufas. Adicionalmente,
dada a complexidade computacional da segmentação com métodos que determinam a
hipótese MAP, este trabalho também objetiva comparar experimentalmente a
complexidade computacional de algoritmos para o cálculo exato e aproximado da
hipótese MAP nos modelos implementados.
2.Desenvolvimento
A aquisição e pré-classificação, extração de características das imagens foram
empregados os procedimentos de Delage, Lee, Ng, (2006) e Briggs, Rauwendaal,
Tribelhorn (2008). A implementação da ferramenta para inferência da hipótese MAP
em redes bayesianas dinâmicas foi utilizado às bibliotecas JAVA: SamIam,
JavaBayes/Embayes. Os experimentos serão com os algoritmos propostos para
classificar um conjunto de imagens de teste. Será mensurado o tempo de processamento
e a taxa de acerto de acerto de cada algoritmo em cada imagem. A diferença no
comportamento dos algoritmos será avaliada por meio do teste da hipótese.
3.Considerações Finais
O presente trabalho esta em andamento, com algumas etapas já concluídas como:
Aquisição, pré-classificação, extração de características, estrutura da rede, aprendizado
da rede, implementação do algoritmo MAP. Esta em desenvolvimento alimentação da
rede com as evidências coletadas na extração de características para aplicar o algoritmo
MAP e computar os resultados.
Referências
Briggs, F.; Rauwendaal, R.; Tribelhorn, B. (2008). A Bayesian network for single image floor
segmentation. Department of EECS.Oregon State University.
Delage, E.; Lee, H.; And Ng, A.(2006). A dynamic bayesian network model for autonomous 3d
reconstruction from a single indoor image. IEEE Computer Society Conference on
Computer Vision and Pattern Recognition, volume 2.
Mandow, A., Gomez-De-Gabriel, J.M., Martínez, J.L., Munõz, V.F., Ollero, A., García-Cerezo,
A. (1996). The autonomous mobile robot AURORA for greenhouse operation. IEEE
Robotics Autom. Mag., 3 (4) pp. 18–28.
Mehta, S.S., Burks, T.F., and Dixon, W.E.(2008). Vision-based localization of a wheeled
mobile robot for greenhouse applications: A daisy-chaining approach Comput. Electron.
Agric., 63(1), pp. 28-37.
Park, J. D. And Darwiche, A.(2004). Complexity results and approximation strategies for map
explanations. Journal of Aritificial Intelligence Research, 21:101–133.
Sammons, P.J., Furukawa, T., Bulgin, A.(2005). Autonomous pesticide spraying robot for use
in a greenhouse. Proceedings of the Australasian Conference on Robotics & Automation.
89
Anais do XI Simpósio de Informática da UNIFRA - SIRC2012
ISSN: 2175-0955 Santa Maria - RS, Outubro de 2012
Sistema de Monitoramento de Dispositivos Móveis
Karine R. de Souza1, Simone R. Ceolin2, Reiner F. Perozzo3
1, 2, 3
Centro Universitário Franciscano (UNIFRA)
Rua dos Andradas, 1614 – 97010-032 – Santa Maria – RS – Brasil
[email protected], [email protected],
[email protected]
Abstract. This article proposes the development a monitoring system for
mobile devices in real time. Using Android SDK will develop an application
for smartphones, where the user can enable or disable the service. When the
service is active, will be possible to follow this telephone through a website,
viewing the location on Google Maps.
Resumo. Este artigo propõe o desenvolvimento de um sistema para
monitoramento de dispositivos móveis em tempo real. Utilizando o SDK do
Android, será desenvolvido um aplicativo para smartphones, onde o usuário
poderá habilitar ou desabilitar o serviço. Quando o serviço estiver ativado,
será possível acompanhar este aparelho através de um site, visualizando a
localização do mesmo no Google Maps.
1.
Introdução
Hoje em dia o mercado de celulares está crescendo e cada vez mais se busca por
mobilidade, assim os smartphones podem ocupar um importante espaço no mundo.
Com isto é possível ter uma aplicação executando no celular que pode ser sincronizada
com um servidor confiável de uma empresa. [LECHETA, 2010]
Segundo LECHETA(2010), o mercado corporativo busca a incorporação destas
aplicações móveis no dia-a-dia visando agilidade de seus negócios. Para isto os
desenvolvedores buscam por uma plataforma moderna e ágil. O Google então lançou
uma plataforma de desenvolvimento para aplicativos móveis, baseada em um sistema
operacional Linux, o SDK (Software Development Kit) do Android.
Utilizando o SDK do Android, este trabalho propõe o desenvolvimento de uma
aplicação para monitoramento de dispositivos móveis. Esta aplicação será integrada
com um sistema web, onde será possível realizar este monitoramento através de um site.
2.
Proposta
A proposta de desenvolvimento consiste na criação de uma aplicação para
monitoramento de localização de dispositivos móveis em tempo real. Através do
aparelho celular o usuário poderá ativar ou desativar a obtenção dos dados.
A aplicação, quando ativada, irá utilizar um web service para o envio dos dados
de localização. Para o envio destes dados será necessário que o aparelho tenha acesso a
internet.
O usuário irá ativar a aplicação para obtenção das coordenadas de localização e
estas serão enviadas para um servidor, através de um web service. Os dados ficarão
armazenados em um banco de dados e o monitoramento poderá ser feito através de um
site, que irá mostrar a localização do aparelho através do Google Maps.
90
Anais do XI Simpósio de Informática da UNIFRA - SIRC2012
ISSN: 2175-0955 Santa Maria - RS, Outubro de 2012
Já existem no mercado alguns sistemas para monitoramento em tempo real,
porém alguns são pagos e não foi encontrado nenhum que além de permitir o
monitoramento, também grave os dados de localização para visualização posterior. O
sistema que será desenvolvido tem como objetivo proporcionar a qualquer usuário a
possibilidade de verificar o trajeto percorrido pelo aparelho em datas anteriores também.
Será um sistema totalmente gratuito, na qual seu diferencial é que um usuário
poderá se cadastrar pelo site, e então cadastrar os aparelhos na qual deseja monitorar.
Sempre que o usuário acessar o site, estarão disponíveis os aparelhos cadastrados por
ele, na qual será possível selecionar quais aparelhos deseja verificar e se deseja verificar
a localização no momento, em um determinado dia e horário, o trajeto percorrido em
um determinado intervalo de tempo ou o trajeto percorrido a partir de um dia e horário
específico até o momento atual.
3.
Metodologia
Será utilizada a metodologia ICONIX, que, de acordo com Silva e Videira (2001) é um
processo de desenvolvimento de Software desenvolvido pela ICONIX Software
Engineering. Este é um processo iterativo e incremental como o RUP, porém sem a
complexidade deste processo, sendo relativamente pequeno e simples como o XP.
4.
Trabalho Relacionado
CANALLE realizou um estudo sobre a utilização da plataforma Android para a
construção de aplicações SIG (Sistemas de Informação Geográfica) móveis. Foi
desenvolvido um protótipo na qual o usuário seleciona uma categoria de local que
deseja verificar e são exibidos em um mapa os estabelecimentos que estejam próximos
em um raio de 3 km do local em que o usuário se encontra.
5.
Considerações Finais
Conforme ROGERS, LOMBARDO, MEDNIEKS & MEIKE (2009), o Android
estimulou não só um interesse técnico generalizado, mas especulações crescentes sobre
seu potencial para transformar completamente o mundo dos dispositivos pessoais. Com
isto, pensou-se em desenvolver um sistema de monitoramento, onde qualquer aparelho
que obtenha acesso a internet e o aplicativo, que será desenvolvido, poderá ser
monitorado online em tempo real.
6.
Referências
Lecheta, R. R. (2010) “Google Android: Aprenda a criar aplicações para dispositivos
móveis com o Android SDK”, Novatec Editora, 2ª edição.
Rogers, R., Lombardo, J., Mednieks, Z.; Meike, B. (2009) “Android: Desenvolvimento
de Aplicações Android”, Novatec Editora, 1ª edição.
Canalle, A. L.(2011) “Empregando tecnologia Java, Android e Geoprocessamento em
aplicativos móveis.”, Monografia de Especialização, Programa de Pós-Graduação,
Universidade Tecnológica Federal do Paraná
91
Anais do XI Simpósio de Informática da UNIFRA - SIRC2012
ISSN: 2175-0955 Santa Maria - RS, Outubro de 2012
Educação a Distância com Moodle e Seus Problemas
Samuel Lautert Jardim1, Simone Regina Ceolin2
1
Acadêmico do Curso de Sistemas de Informação – Centro Universitário Franciscano
(UNIFRA)
2
Orientadora, Professora Drª – Centro Universiatário Franciscano (UNIFRA).
Abstract. With the growth of distance education in the world, it was necessary to
develop tools to assist in learning and interaction. Today we have several software to
perform the function, and especially one of the most used is Moodle, which presents
some issues crucial to their use proposed in this paper.
Resumo. Com o crescimento da educação a distância no mundo, se fez necessário o
desenvolvimento de ferramentas para auxiliar no aprendizado e interação. Hoje temos
vários softwares para desempenhar a função, com destaque e um dos mais usados é o
Moodle, no qual apresenta alguns problemas cruciais para sua utilização proposto
neste trabalho.
1. Introdução
Educação a distância é um processo de aprendizagem, onde a tecnologia é o meio campo
entre professores e alunos no qual estão em espaços diferentes. Nesse processo temos
informação no formato de artigos, documentos, imagens, vídeos, links entre outros
disponibilizados pelos professores em sistemas online [MERCADO, 2008]. Para a elaboração
de um projeto de aprendizagem a estrutura e sistemas a serem utilizados, devem ser muito
bem estudados e customizados de acordo com o projeto. Na área EAD um dos sistemas mais
utilizados é o Moodle, no qual encontramos muitos problemas esboçados a seguir.
2. Introdução ao Moodle
O Moodle é um software Open Source, ou seja, é um programa que permite ser modificado,
configurado, a qualquer momento, é um software livre, que pode ser customizada de acordo
com a necessidade, por exemplo, para gerir cursos online. Pode ser instalado em
computadores que executem PHP e banco de dados MySQL, como Windows, Linux e MAC
entre outros.
2.1 Problemas de usabilidade do Moodle
O Moodle é uma ferramenta educacional de alto alcance de aprendizagem, especificamente
acadêmica, pois possibilita pessoas estarem estudando, se atualizando, de qualquer lugar.
Tendo um local de acesso à plataforma é o suficiente para interagir com as disciplinas,
92
Anais do XI Simpósio de Informática da UNIFRA - SIRC2012
ISSN: 2175-0955 Santa Maria - RS, Outubro de 2012
colegas, professores, e todas as atividades que irão contribuir para o desenvolvimento de um
conhecimento, não mais tradicionalmente presente, mas agora virtual.
É importante destacar alguns problemas quanto a aplicativos encontrados nessa
ferramenta. Os fóruns, que são divididos por disciplinas e separados por turma, assim, os
alunos de turmas diferentes não podem interagir, tão pouco adquirir informação através de
relatos de colegas de turmas diferentes da sua. O assunto exposto nos fóruns não são
sincronizados, ou seja, cada participante responde sobre o assunto e não é estimulado a
acompanhar o raciocínio, tão pouco comentar sobre as demais opiniões, visto que poucas
vezes ele tem feedback. Esse aspecto é um problema que prejudica uma das propostas de
interação da plataforma Moodle, que á a comunicação entre todos participantes. Além do
fórum, temos outro problema quanto ao Chat, que só pode ser acessado quando cadastrado
pelo administrador. Quando correm momentos de uso, a cada nova informação, a tela do chat
“pula”. Se tivermos muitos alunos, ela faz esse processo o tempo inteiro tirando a
concentração dos participantes. O chat é um meio rápido de interação, que muitas vezes se
torna importante nas dúvidas que possam ocorrer e que precisam de respostas imediatas.
Temos também a questão da ferramenta “webmail”, que não possui a opção de anexar
arquivos, o que dificulta bastante o uso para os alunos que têm muitos problemas e
dificuldades de utilização[OLIVEIRA, 2006].
3. Considerações Finais
Diante dos estudos realizados, mesmo havendo muito que se “consertar”, o Moodle ainda se
mostra uma ferramenta educacional promissora nos dias atuais, pois como dito anteriormente,
ele permite o acesso a distância, facilita o aprendizado das pessoas que se interessam em se
aperfeiçoar e que em meio a tantas atividades diárias encontram na plataforma um caminho
para progredir e crescer profissionalmente.
Referencias
OLIVEIRA, Gleyva Maria Simões (2006) “A educação à distância no contexto educacional
brasileiro“ Universidade Federal de Mato Grosso.
MERCADO, Luis P. L (2008) “A internet como ambiente auxiliar do professor no processo
ensino aprendizagem”
http://www.educoas.org/virtualeduca/virtual/actas2002/actas02/211.pdf, Setembro.
93
Anais do XI Simpósio de Informática da UNIFRA - SIRC2012
ISSN: 2175-0955 Santa Maria - RS, Outubro de 2012
Proposta de Aplicação Baseada em Kinect Como Alternativa
para Ambientes de Computação Pervasiva
Cristiano Flores dos Santos1, Simone Regina Ceolin2
1
2
Acadêmico do Curso de Sistema de Informação – Centro Universitário
Franciscano(UNIFRA).
Orientadora, Professora Drª – Centro Universitário Franciscano (UNIFRA).
Abstract. This article proposes the use of the sensor as kinect control interface
devices for some residential areas. For this purpose, was made the
specification and development of software that enables capture of gesture
commands and voice to simulate actions such as opening and closing doors
and turning on and off lights. Given this also uses the SDK and the SDK kinect
speech as tools.
Resumo. Este artigo propõe a utilização do sensor kinect como controle para
alguns dispositivos de ambientes residenciais. Com este intuito, foi realizada a
especificação do software que possibilita capturar comandos de gestões e de
voz para simular ações como abrir e fechar portas e ligar e desligar
lâmpadas. Diante disso também utiliza o SDK do kinect e o SDK speech como
ferramentas.
1. Introdução
No cenário tecnológico, notam-se crescentes avanços nos sistemas de interação humanocomputador, com o objetivo de tornar esta mais atraente e natural, beneficiando as mais
diversas áreas do conhecimento (POLASTRE, 2007). Nesse contexto, novos
dispositivos são lançados proporcionando ilimitadas as possibilidades de soluções,
como exemplo o caso do lançamento do dispositivo kinect da Microsoft.
O kinect inicialmente tinha como proposta, agregar aos videogames a possibilidade de
uma interação através de gestões e comandos de voz. Logo se notou que o mesmo
poderia ser utilizado para inúmeras situações, como na manipulação de imagens de
exames médicos por meio de movimentos. Sendo assim observou-se a possibilidade de
aplicar em ambientes de computação pervasiva.
Estudos na área de computação pervasiva em sua maioria, utilizam redes sensores, com
as mais diversas funcionalidades, afim de, interagir com o usuário como em Tibiriça
(2007) que faz uso de redes de sensores do tipo RFID e que propõem uma casa
inteligente por meio de sensores de umidade, movimento e temperatura. Desta forma
aumentando a precisão e a sensibilidade ao meio, mas aumentando a complexidade da
aplicação.
Este trabalho se propõe em utilizar o dispositivo kinect como meio de controlar objetos
como lâmpadas e portas, que compõem um ambiente residencial através de comandos
de gestões e voz.
2. Proposta
O estudo consiste na proposta de criação de uma interface onde o usuário irá realizar
interações em um ambiente residencial com a utilização do kinect como meio de
interação. Dessa forma, por exemplo, a ação do movimento do braço do usuário
possibilitará ligar ou desligar uma lâmpada e através do comando de voz será possível
abrir ou fechar uma porta. Para a realização da proposta deste trabalho será utilizado um
ambiente virtual, que irá simular o ambiente residencial.
O computador responsável por simular o ambiente doméstico portará de uma aplicação
94 uma lâmpada e a porta simultaneamente.
simples no formato de janela, o qual irá exibir
Anais do XI Simpósio de Informática da UNIFRA - SIRC2012
ISSN:possível
2175-0955
Santa
- RS, Outubro
de 2012 a comunicação será
Para que se torne
a troca
deMaria
mensagens
entre as máquinas,
feita através de uma conexão wireless do tipo ad hoc.
FIGURA 1: Esboço de Proposta.
Assim, conforme apresentado na Figura 1, um computador que portará o software
responsável pelo funcionamento do sistema será conectado ao sensor Kinect, este
computador também será conectado a outro computador que estará simulando o
ambiente residencial.
5. Metodologia
O presente trabalho, fara uso da metodologia OpenUp, por se apresentar como livre de
ferramentas e de baixo formalismo. OpenUp é um processo baseado no RUP (SANTOS,
2009), sendo assim, é iterativo e incremental, seguindo as mesmas fases com diferencial
atender os critérios de forma sucinta e objetiva.
6. Considerações Finais
Neste sentido, diante dos estudos realizados pretende-se desenvolver uma interface onde
o usuário irá realizar interações em um ambiente residencial com a utilização do kinect
como meio de interação.
7. Referências
Polastre, J. “A New Vision for Pervasive Computing: Moving Beyond Sense and Send”.
Disponível em: http://www.sensorsmag.com/networking-communications/wirelesssensor/a-new-vision-pervasive-computing-moving-beyond-sense-and-sen-1420.
Acesso em: 14 ago. 2011.
Santos,
S.
S.
“OPENUP”:
Um
Processo
Ágil.
Disponível
em:
http://www.ibm.com/developerworks/br/rational/local/open_up/index.html. Acesso
em: 29 ago. 2011.
Tibiriça, C. B. “Detecção de usuários e suas interações com o ambiente utilizando rede
de sensores”. Dissertação (mestrado). Escola de engenharia de são carlos,
universidade de são paulo, são carlos 2007.
95
Anais do XI Simpósio de Informática da UNIFRA - SIRC2012
ISSN: 2175-0955 Santa Maria - RS, Outubro de 2012
Avaliação Comparativa de ferramentas open source Baseadas
no ITIL para Gerenciamento de Incidentes em micros e
pequenas empresas
Janio Luiz Antunes1, Aujor Tadeu Cavalca Andrade1
1
Instituto de Informática – Instituto Federal Catarinense – Campus Camboriú (IFC)
Rua Joaquim Garcia s/nº Caixa Postal 16 – 88.340.000 – Camboriú – SC – Brasil
[email protected], [email protected]
Resumo. Este artigo aborda a utilização do conjunto das melhores práticas
do ITIL (Information Technology Infrastructure Library) em empresas que
necessitem gerenciar de maneira eficiente seus incidentes. Estas melhores
práticas são visíveis para a empresa através da implantação da central de
serviços, onde existe um fluxo padrão para o atendimento de incidentes,
diferentes níveis de atendimento e acordo de nível serviço que definem
métricas para o bom funcionamento da central de serviços. O objetivo deste
artigo é aplicar ferramentas open source de gerenciamento de incidentes
baseadas nas boas práticas do ITIL e realizar um comparativo para obter
resultados em testes elaborados através de características básicas que devem
estar presentes nestes tipos de softwares.
Palavras chave: ITIL, open source, incidentes, comparativo.
Os serviços praticados pela tecnologia da informação (TI) de uma organização são
cruciais para o crescimento da empresa. Sabe-se que existe a necessidade de prover
suporte e condições para que os clientes e usuários consigam desenvolver suas funções.
A inexistência de uma equipe que atenda estas necessidades, torna impossível a
recepção dos possíveis incidentes. Segundo Taylor, et al. (2007), um incidente é
definido como uma interrupção não planejada ou diminuição da qualidade de um
serviço de TI. Para Damasceno, et al. (2009), o ITIL considera como incidente qualquer
acontecimento que não faz parte da operação padrão de um sistema ou serviço e que
pode desestabilizar um serviço ou sua qualidade.
Conforme Luna (2011), ITIL é uma compilação das melhores práticas e
processos no planejamento, aprovisionamento e suporte de serviços de Tecnologia de
Informação, organizada de forma sistemática. A ITIL busca prover serviços de alta
qualidade, com foco no relacionamento com os clientes, trazendo algumas mudanças
significativas como: faz com que o negócio foque no valor e não no custo; foca em toda
a cadeia que envolve a prestação de serviços e não em uma visão fragmentada; e
internamente transfere o olhar para processos e pessoas, e não apenas na tecnologia.
As melhores práticas adotadas pelo ITIL abrangem todas as atividades da área de
TI. Essas atividades são divididas em processos e com essa divisão torna-se mais fácil
adotar esse framework, independente da estrutura da empresa. Para Van Bon (2006)
apud Damasceno, et al. (2009), usando uma abordagem de processo, a ITIL define
principalmente o que deve ser incluído no Gerenciamento em Serviços em TI para que
se ofereça a qualidade exigida dos serviços.
96
Anais do XI Simpósio de Informática da UNIFRA - SIRC2012
ISSN: 2175-0955 Santa Maria - RS, Outubro de 2012
É fundamental para o ciclo de vida do negócio que existam profissionais que
tenham a função de gerenciar este tipo de solicitação. Esta equipe é apresentada como
Central de Serviços (CS) que, segundo o ITIL, é uma função essencial para o
gerenciamento de serviços de TI. É na CS que ocorre o primeiro contato dos usuários ao
notarem imprevistos e é onde os usuários podem obter respostas rápidas a questões,
reclamações e problemas.
É essencial que os profissionais da CS estejam munido de uma ferramenta que
registre os incidentes. Assim, será possível determinar o tempo de atendimento dos
chamados, criar uma base de conhecimento das soluções aplicadas para resolução dos
problemas, apontar os setores que precisam de treinamento e determinar os serviços que
são providos pela TI.
Com embasamento nas principais funções e processos do ITIL, este artigo tem
como objetivo avaliar softwares open source de gerenciamento de incidentes que
possam ser implantados em empresas de micro ou pequeno porte.
O gerenciamento de incidentes visa restaurar a operação no menor tempo
possível, minimizando impactos para o negócio, tratando os efeitos e não as causas e se
apoiando na estrutura da CS. Para que seja iniciada a escolha do software, é
imprescindível levantar as informações se deseja extrair, pois no mercado existem
muitas ferramentas para serem utilizadas e adquiridas.
Os testes realizados apresentam pontuações de classificação dos softwares, onde
é apresentado o software com a maior pontuação como sendo a melhor opção de uso.
Porém, as características de cada um devem ser analisadas para concluir qual é o melhor
a ser implantado em cada empresa caso necessitem de recursos específicos.
Referências Bibliográficas
COHEN, Roberto. Implantação de Help Desk e Service Desk. São Paulo: Novatec,
2008. 208 p.
DAMASCENO, Cristiane Soares; ARAÚJO, Thiago Vasques de; NUNES, Cláudio.
ITIL: Uma avaliação sobre as melhores práticas e os resultados de sua
empregabilidade para corporações de porte variados. Revista Ceciliana, Santos - Sp,
v. 1, n. 1, p.43-56, 30 jun. 2009. Semestral. Disponível em:
<http://sites.unisanta.br/revistaceciliana/edicao_01/1-2009-43-56.pdf>. Acesso em:
03 ago. 2012.
ITSMF. ItSMF- The IT Service Management Forum: An Introductory Overview of
ITIL®
V3.
Disponível
em:
<http://www.best-managementpractice.com/gempdf/itSMF_An_Introductory_Overview_of_ITIL_V3.pdf >. Acesso
em: 19 ago. 2011.
LUNA, Alexandre. MAnGve: Implantando Governança Ágil. Rio de Janeiro: Brasport,
2011. 384 p.
MAGALHÃES, Ivan L.; PINHEIRO, Walfrido Brito. Gerenciamento de Serviços de
TI na Prática: Uma abordagem com base na ITIL®. São Paulo: Novatec, 2007.
TAYLOR, Sharon et. al. Service Design. Lodon. OGC, 2007.
97
Anais do XI Simpósio de Informática da UNIFRA - SIRC2012
ISSN: 2175-0955 Santa Maria - RS, Outubro de 2012
Geração de um Plano Algébrico para Consultas XQuery1
Leonardo de Oliveira Nicorena1, Deise de Brum Saccol2, Marta Breunig Loose3
1
2
3
Sistemas de Informação – Universidade Federal de Santa Maria (UFSM) – Santa
Maria, RS – Brazil
Departamento de Eletrônica e Computação – Universidade Federal de Santa Maria
(UFSM) – Santa Maria, RS – Brazil
Programa de Pós Graduação em Informática (PPGI) – Universidade Federal de Santa
Maria (UFSM) – Santa Maria, RS – Brazil
{lnicorena,deise}@inf.ufsm.br, [email protected]
Abstract. This article proposes an algebraic plan for XQuery queries. This
plan can be used to perform query optimization with relational optimization
techniques. This plan is used by the QMap, a query mapper component of an
ongoing project named X2Rel framework. To define this plan, some inference
rules are used to generate a tree of operators for the query expressions.
Resumo. Este artigo propõe um plano algébrico para consultas XQuery. Esse
plano pode ser utilizado para realizar otimizações nas consultas, com técnicas
de otimização relacional. Este plano é usado pelo QMap, um componente de
tradução de consultas de um projeto em andamento chamado framework
X2Rel. Para definir este plano são utilizadas algumas regras de inferência
para gerar uma árvore de operadores com as expressões da consulta.
1. Introdução
Arquivos XML (eXtended Markup Language) vêm sendo amplamente utilizados para
especificação e troca de dados, devido a sua grande flexibilidade. Entretanto, a maior
parte dos dados de organizações é armazenada em bases de dados relacionais. Neste
cenário surge a necessidade de armazenar e gerenciar estes dados da melhor forma
possível, integrando estes padrões. Uma solução é a utilização de Sistemas de
Gerenciamento de Banco de Dados Relacionais (SGBDR) com suporte a XML, onde há
tipos de dados e operações específicas para manipulação de dados XML. A outra
solução é o mapeamento de documentos XML para a estrutura de armazenamento de
bases de dados relacionais, bem como das consultas aplicadas a estes documentos.
Neste trabalho abordamos esta segunda alternativa, mais especificamente a
tradução de consultas XQuery para consultas SQL. O estudo desenvolvido nesta
pesquisa será utilizado no QMap, módulo em desenvolvimento responsável pela
tradução de consultas no framework X2Rel [Saccol, 2011]. As abordagens tradicionais
para tradução de consultas XML para SQL refletem a natureza hierárquica do XML, o
que diminui sua eficiência [Fernández, 2006]. Dessa forma, é possível aplicar uma
otimização algébrica ao gerar a álgebra XML e convertê-la à álgebra relacional no
processo de geração do SQL equivalente à consulta XQuery do documento.
1
Este artigo foi parcialmente financiado pela bolsa PET (Programa de Educação Tutorial/SESU/MEC).
98
Anais do XI Simpósio de Informática da UNIFRA - SIRC2012
ISSN: 2175-0955 Santa Maria - RS, Outubro de 2012
2. XQuery
XQuery é a linguagem de consulta padrão para documentos XML definida pela W3C
(World Wide Web Consortium) [Silberschatz, 2006]. Ela incorpora praticamente todos
os tipos básicos de expressões da XPath, inclusive as expressões de caminho. XQuery
possui um conjunto de expressões que suportam iteração e ligação de variáveis para
resultados intermediários, sendo úteis na computação de junções e reestruturação de
dados, chamadas de FLWOR (acrônimo para as cláusulas For, Let, Where, Order by e
Return).
3. Álgebra XQuery
A álgebra XQuery abordada neste trabalho está definida em [Fernández, 2006], e utiliza
operadores XML específicos, baseados em tupla e em árvore sintática. São aplicadas
regras de inferência sobre as cláusulas da expressão FLWOR, gerando um plano onde as
cláusulas são compiladas utilizando um fluxo de dados bottom-up. Na Figura 1 há um
exemplo de expressão FLWOR na sintaxe do XQuery e em seu plano algébrico.
Figure 1 – Exemplo de expressão FLWOR
Conforme pode ser visto na Figura 1, este plano algébrico mapeia cada cláusula
da expressão em XQuery, gerando uma árvore de operadores, que deve ser compilada no
sentido bottom-up ou seja, inicialmente as operações dos nós mais internos e por fim as
dos nós mais externos.
No presente momento, o projeto encontra-se na fase de análise de bibliografias e
trabalhos relacionados. As próximas etapas incluem a especificação das regras de
inferência e mapeamento que serão utilizadas, bem como a implementação de uma
ferramenta que realize a conversão de uma consulta XQuery para o plano algébrico
definido.
4. Conclusão
Com a abordagem utilizada neste projeto, é possível otimizar as expressões algébricas
das consultas XQuery. Este plano algébrico gerado será utilizado no QMap, componente
para tradução de consultas citado anteriormente, que define regras de tradução entre a
álgebra Xquery e a álgebra relacional, gerando a partir daí a consulta SQL equivalente.
Referências Bibliográficas
Silberschatz, A., Korth, H. F. e Sudarshan, S. (2006) “Sistema de Banco de Dados”. Ed.
Elsevier. 5ª edição.
Fernández, M., Ré, C. e Siméon, J. (2006) “A Complete and Efficient Algebraic Compiler for
XQuery”, IEEE ICDE - International Conference on Data Engineering, Atlanta, GA.
Fernández, M., et al. (2002) “Efficient Evaluation of XML Middle-ware Queries”. SIGMOD.
Saccol, D. B.; Andrade, T. C.; Piveta, E. K. (2011) “Mapping OWL Ontologies to Relational
Schemas (to appear)”. IEEE IRI - International Conference on Information Reuse and
Integration, Las Vegas, USA.
99
Anais do XI Simpósio de Informática da UNIFRA - SIRC2012
ISSN: 2175-0955 Santa Maria - RS, Outubro de 2012
Utilizando a inteligência coletiva no desenvolvimento de
sistemas
Dieison dos S. Beck, Guilherme Chagas Kurtz
Sistemas de informação – Centro Universitário Franciscano – Santa Maria – RS – Brasil
[email protected], [email protected]
Resumo. Com o advento da internet, o número de informações tem aumentado
cada vez mais e para realizar um uso mais eficiente destas informações
podem-se utilizar a inteligência artificial, no qual serão citados neste trabalho
os algoritmos baseados na teoria bayesiana e as redes neurais.
1. Introdução
A expressão “Inteligência coletiva” já existe por décadas e vem se tornando cada vez
mais presente e importante em nossas vidas, devido aos adventos de novas tecnologias
de comunicações. Embora a expressão possa trazer a ideia de consciência coletiva, a
computação define inteligência coletiva como uma combinação de comportamentos,
preferências ou concepções de um grupo de indivíduos as quais podem ser utilizadas
para formar uma nova idéia [Segaran 2008].
Sabe-se que métodos de inteligência coletiva existiam antes mesmo da Internet,
como por exemplo, o censo. Porém, com o advento da Internet, a capacidade de obter
informações de milhares ou até mesmo de milhões de indivíduos tem proporcionado
novas oportunidades para a aplicação da inteligência artificial, pois a todo tempo
existem pessoas realizando compras, pesquisas, buscando aplicativos de entretenimento
ou até mesmo produzindo seus próprios conteúdos. Todo esse comportamento gerado na
Internet pode ser monitorado e utilizado para aprimorar a experiência de uso em
sistemas [Segaran 2008]. Existem muitos algoritmos que possibilitam o processamento
dessas informações e a interpretação, assim com os algoritmos de classificação e
sugestão de conteúdos.
2. Classificador Bayesiano
Existem várias áreas nas quais os algoritmos inteligentes podem atuar sendo uma delas
na filtragem de conteúdo utilizando um classificador Bayesiano, no qual é bastante
utilizado para categorizar textos e na criação de filtros anti-spam. A ideia principal deste
algoritmo é estimar a probabilidade de um documento estar em uma determinada
categoria [Belém 2009].
O classificador proposto busca determinar características de um determinado
conteúdo e realizar a classificação de diferentes itens. A característica pode ser
determinada por algo que está presente ou ausente em um item. Quando é considerado
conteúdos de texto para classificação, os itens em questão são os textos e as
características são as palavras ou expressões contidas nestes documentos.
Para o classificador as características possui uma grande importância e por este
motivo a escolha destas características se torna um tanto complexa, pois necessitam ser
100
Anais do XI Simpósio de Informática da UNIFRA - SIRC2012
ISSN: 2175-0955 Santa Maria - RS, Outubro de 2012
comum o suficiente para ser classificadas em uma categoria, mas não tão comum que
apareçam em todos os conteúdos. Outro detalhe a considerar é a variação de escritas
para características equivalentes, ou seja, uma palavra pode conter uma letra maiúscula
sendo considerada uma nova característica [Segaran 2008].
Para os classificadores bayesianos, a escolha das características consiste em
vantagens e desvantagens, sendo necessárias atualizações constantes no grupo de
características das categorias.
3. Qualificando buscas
Outro algoritmo bastante atrativo da inteligência artificial são as redes neurais, na qual
possui uma estrutura semelhante ao sistema nervoso humano, em que é composto de
uma unidade de processamento simples (nodos ou neurônios) que calculam
determinadas funções matemáticas. Essas unidades são organizadas em uma ou mais
camadas interligadas por um grande número de conexões, que na maioria das vezes são
unidimensionais.
As redes neurais podem ser treinadas para o uso em sistemas de busca, que de
acordo com as diferentes buscas realizadas, a rede neural poderá modificar a ordem dos
resultados, a fim de proporcionar resultados mais efetivos aos usuários conforme as
escolhas realizadas anteriormente [Segaran 2008].
Existem vários tipos de redes neurais, todas consistem de um conjunto de nós e
conexões entre si. A rede na qual será utilizada é chamada de rede perceptrônica de
múltiplas camadas, no qual consiste de diversas camadas de neurônios, a primeira das
quais recebe as palavras informadas pelo usuário e a última camada fornece o resultado,
que no caso é uma lista de relevâncias das diferentes URLs retornados. A rede pode
conter múltiplas camadas intermediárias, mas será utilizada somente uma que pode ser
chamada de camada oculta porque as informações entrantes nunca interagem
diretamente com a camada e ela responde à combinação de entradas, que no caso, é
referente a um conjunto de palavras.
4. Conclusão
O objetivo deste estudo é buscar conhecimento de maneira a contribuir para as
aplicações se tornarem cada vez mais inteligentes, buscando realizar a divulgação destes
benefícios proporcionados pela inteligência artificial e justificar sua existência na
aplicabilidade.
5. Referências
Belém, D. O. (2009). Filtro de conteúdo para sistemas sms baseado em classificador
bayesiano e agrupamento por palavras.
Stuart, Russel; Norvig, Peter (2004). Inteligência Artificial. Tradução de PubliCare
Consultoria .
Segaran, T. (2007). Programming Collective Intelligence: Building Smart Web 2.0
Applications, O'Reilly Media.
101
Anais do XI Simpósio de Informática da UNIFRA - SIRC2012
ISSN: 2175-0955 Santa Maria - RS, Outubro de 2012
Free RTOS: Estudo sobre o sistema operacional de tempo
real
Ricardo Frohlich da Silva¹, Osmar Marchi dos Santos1
1
Universidade Federal de Santa Maria (UFSM)
97.105-900 – Santa Maria – RS – Brazil
[email protected], [email protected]
Abstract. This article describes an overview of operating systems focusing on
real-time view to acquire expertise to perform an assessment of real-time
operating systems.
Resumo. Neste artigo é descrito uma revisão sobre sistemas operacionais com
enfoque em tempo real com intuito de adquirir conhecimento para efetuar a
avaliação de sistemas operacionais de tempo real.
1. Introdução
Sistema operacional é um programa que atua entre o usuário e o hardware de um
computador com a função de fornecer um ambiente onde o usuário possa executar
aplicativos, tornando assim o uso do sistema computacional conveniente. Outra função é
utilizar o hardware do computador de forma eficiente [Silberschatz, Gagne e Galvin
2000].
A maior parte dos computadores encontrados são utilizados para fins
específicos. Estes são chamados de sistemas embarcados, pois tem um propósito
específico de aplicação. Da mesma forma que um computador de uso geral utiliza um
sistema operacional para melhorar a eficiência do sistema, sistemas embarcados
utilizam sistemas operacionais que possibilitem implementar sistemas que interajam
diretamente com o ambiente, ou seja, e possuem requisitos temporais bem definidos.
Esses sistemas são denominados de sistemas operacionais de tempo real e seu estudo é
importante para atender as necessidades de mercado, pois é crescente o aumento da
complexidade nos sistemas embarcados sendo desenvolvidos [Corrêa 2008].
Mais especificamente, sistemas operacionais de tempo real são sistemas em que
garantir o tempo de execução da tarefa sendo executada é essencial. Em um sistema de
tempo real critico, é necessário que ocorra uma garantia de que uma ação seja executada
em um intervalo de tempo, caso não haja uma resposta dentro deste tempo é
considerado que houve falha do sistema, podendo causar desastres. Já em um sistema de
tempo real não critico, o não cumprimento deste prazo é aceitável até determinada taxas
de erro, embora não seja desejado [Tenenbaum 2010].
Um sistema operacional de tempo real é utilizado quando existem requisitos
rígidos de tempo na operação de um processador ou no fluxo de dados. Normalmente é
utilizado para efetuar o controle de um aplicativo dedicado, como experimentos
científicos, sistemas de imagens medicas, sistemas de controle industrial entre outros
[Silberschatz, Gagne e Galvin 2000].
102
Anais do XI Simpósio de Informática da UNIFRA - SIRC2012
ISSN: 2175-0955 Santa Maria - RS, Outubro de 2012
2. Free RTOS
O Free RTOS (Free Real-Time Operating System) é um sistema operacional de tempo
real com código aberto (open source) escrito em na linguagem C, que disponibiliza
suporte para diversas arquiteturas de sistemas embarcados diferentes, como ARM, PIC,
X86, 8051 entre outros [Site FreeRTOS 2012].
Possui suporte a tarefas e sub-rotinas em tempo real. As tarefas podem assumir
quatro estados diferentes: (i) em execução, (ii) pronta, (iii) bloqueada e (iv) suspensa. Já
a sub-rotina é opcional e, diferentemente das tarefas, sua pilha de execução é
compartilhada com outras sub-rotinas. Para a comunicação e sincronização entre as
tarefas são fornecidas filas, semáforos binários, semáforos de contagem e semáforos
recursivos [Site FreeRTOS 2012].
O escalonador é responsável por gerenciar o processador, implementando uma
politica de escalonamento baseado em prioridades, ordenando um conjunto de tarefas
para execução. Para o tratamento de compartilhamento de recursos entre tarefas o Free
RTOS possui suporte aos Protocolo de Herança de Prioridades e Prioridade Teto, que
impedem que uma tarefa de maior prioridade seja bloqueada enquanto uma tarefa de
menor prioridade executa o processador [Site FreeRTOS 2012].
O Protocolo de Herança de Prioridades impede o bloqueio por inversão fazendo
com que a tarefa de menor prioridade herde a prioridade da tarefa de maior prioridade
querendo acessar o recurso compartilhado. Já o Protocolo de Prioridade Teto assume
como prioridade teto a prioridade da tarefa com maior prioridade, assumindo a
prioridade da tarefa de menor prioridade no momento que ela entra no recurso
compartilhado [Farines, Fraga e Oliveira 2000].
3. Trabalhos Futuros
Diante do estudo realizado, o próximo passo do trabalho é realizar uma análise mais
aprofundada no sistema de tempo real para embarcados FreeRTOS, através de testes de
sobrecarga do sistema com intuito de avaliar a eficiência na execução de tarefas de
tempo real.
Referencias
CORRÊA, Luiz Antonio Coelho; Seleção de sistemas operacionais de tempo real para
sistemas embarcados; Simpósio de Excelência em Gestão e Tecnologia (SEGeT); 1;
1-5; 2008.
FARINES, Jean-Marie; FRAGA, Joni da Silva; OLIVEIRA, Rômulo Silva de; ;
Sistemas de Tempo Real; Florianópolis; Departamento de Automação e Sistemas
UFSC; 2000.
FREERTOS; Site Oficial Free RTOS; http://www.freertos.org/; 23/08/2012.
SILBERSCHATZ, Abraham; GAGNE, Greg; GALVIN, Peter;; Sistemas Operacionais
– Conceitos e aplicações; São Paulo; Editora Campus; 2000.
TENENBAUM, Andrew S.; ; Sistemas Operacionais Modernos; São Paulo; Editora
LTC; 2010.
103
Anais do XI Simpósio de Informática da UNIFRA - SIRC2012
ISSN: 2175-0955 Santa Maria - RS, Outubro de 2012
Técnicas de Organização de Sistemas Multiagentes
Patricia Noal Coutinho1, Alexandre de O. Zamberlan2
1
2
Curso de Ciência da Computação – Centro Universitário Franciscano (UNIFRA)
Curso de Sistemas de Informação – Centro Universitário Franciscano (UNIFRA)
Rua dos Andradas, 1614 – CEP 97010-032 – Santa Maria – RS
[email protected], [email protected]
Resumo. Este trabalho apresenta duas formas de organizações de Sistemas
Multiagentes: centralizada e descentralizada. Além disso, propõe, por meio de
um estudo comparativo usando a metodologia Moise+, apontar os pontos
fortes e fracos dessas formas de organizações com o intuito de ajudar o
projetista a escolher a melhor estratégia de organização de Sistemas
Multiagentes.
1. Introdução
Um Sistema Multiagente (SMA) é o resultado da combinação de um grupo de agentes,
distintos ou não, que precisam trabalhar em conjunto na resolução de um problema
comum. Na maioria das vezes, cada agente desse sistema é responsável por resolver
uma parte do problema geral (a ideia do dividir para conquistar), fazendo com que o
problema seja resolvido em menos tempo, economizando, assim, a utilização de
recursos. Portanto, há a necessidade de organizar esse sistema multiagente para otimizar
a resolução do problema [Russel e Norvig 2004], [Hübner, Bordini e Vieira 2004].
Sistema Multiagente é definido como sendo uma subárea da Inteligência
Artificial (IA), junto com Resolução Distribuída de Problemas (RDP) [RUSSEL e
NORVIG 2004]. Barone et al (2003) destacam o fator social de um sistema multiagente
deixando de lado, momentaneamente, a parte da resolução de problemas. Sobre
Organização de Sistemas Multiagentes, Hübner e Sichman (2003) definem claramente o
significado e funcionamento desse sistema com organização centrada nos agentes e na
organização. Russel e Norvig (2004) descrevem um agente como um sistema que possui
a capacidade de perceber o que acontece no seu ambiente utilizando sensores e de agir
com o ambiente através de atuadores além de apresentar um comportamento
fundamentado no raciocínio que possua atitudes como, por exemplo, crenças (o que o
agente conhece), intenções (suas metas) e desejos (motivação para realizar as metas) e
que possua propriedades como autonomia e cooperação, entre outras.
2. Desenvolvimento
Ao desenvolver um sistema multiagente, o projetista precisa conhecer as
potencialidades e fraquezas de cada tipo de organização, a fim de utilizar a organização
que melhor se aplique ao problema que o sistema multiagente precisa resolver,
reduzindo os problemas relacionados a sistemas mal organizados.
Este trabalho tem o intuito de auxiliar na escolha da melhor estratégia de
modelagem de um sistema multiagente, apresentando dois estudos de caso que
104
Anais do XI Simpósio de Informática da UNIFRA - SIRC2012
ISSN: 2175-0955 Santa Maria - RS, Outubro de 2012
satisfaçam os tipos de organização centralizada e descentralizada de sistema
multiagente. Essa comparação entre os dois estudos de caso será utilizada como
referência no apontamento de pontos fortes e fracos dos tipos de organizações de
sistemas multiagentes descritos.
A maioria das propostas de modelagem de sistemas multiagentes é inspirada, ou
estende conceitos das técnicas de orientação a objetos e relata as fases de análises de
requisitos e projeto de sistemas multiagentes. Entre as metodologias de modelagem
utilizadas para modelar um sistema multiagente, existem, entre outras, Prometheus,
Moise+, AUML, TROPOS, GAIA e JADE.
Conforme [Hübner, Sichman e Boissier 2007], Moise+ diferencia-se por possuir
três dimensões organizacionais principais, abordando a estrutura, as funcionalidades e as
normas. Moise+ combina as três dimensões de organização em um modelo unificado
adequado para o processo de reorganização de sistemas multiagentes permitindo que o
sistema mude sua estrutura sem mudar suas funcionalidades e vice-versa. As linguagens
de especificação existentes que podem ser utilizadas em sistemas multiagentes são, entre
outras, S-Moise+, J-Moise+, AgentTalk, ACL, KIF e KQML.
3. Conclusão
Sendo assim, neste trabalho assume-se modelar sistemas multiagentes, tendo como base
dois estudos de caso, a fim de comparar a Organização Centralizada da Organização
Descentralizada de Sistemas Multiagentes empregando a metodologia Moise+. Para que
isso ocorra, também será necessário definir e modelar o ambiente de testes para os
sistemas multiagentes modelados e determinar os critérios de avaliação. A possibilidade
de descobrir qual é o melhor tipo de organização a ser utilizada com determinado
sistema multiagente está relacionada a uma comparação entre dois tipos de organização,
por meio de apontamentos que ajudem na escolha do melhor tipo de organização.
Referências Bibliográficas
Barone, D. A. C. et al. (2003) “Sociedades Artificiais: A Nova Fronteira da Inteligência
nas Máquinas”, Bookman Companhia Editora, São Paulo:
Hübner, J. F.; Bordini, R. H.; Vieira, R. (2004) “Introdução ao Desenvolvimento de
Sistemas Multiagentes com Jason”, Universidade Regional de Blumenau. Blumenau.
Hübner, J. F.; Sichman, J. S. (2003) “Organização de Sistemas Multiagentes”, III
Jornada de Mini-Cursos de Inteligência Artificial, Campinas, p. 247-296.
Hübner, J.; Sichman, J. S.; Boissier, O. (2007) “Developing Organised Multi-Agent
Systems Using the Moise+ Model: Programming Issues at the System and Agent
Levels”, Universidade Regional de Blumenau, Universidade de São Paulo, École
Nationale Supérieure des Mines de St-Étienne. Blumenau, São Paulo, Saint-Étienne,
p. 27.
Russel, S. J ; Norvig, P. (2004) “Inteligência Artificial”, 2ª Edição. Elsevier, Rio de
Janeiro.
105
Anais do XI Simpósio de Informática da UNIFRA - SIRC2012
ISSN: 2175-0955 Santa Maria - RS, Outubro de 2012
Paralelização de Aplicações na Arquitetura CUDA em
operações de álgebra linear
Evandro Rogério Frühling Dutra1, André Luis Varini1, Ana Paula Canal1
1
Curso de Ciência da Computação – Centro Universitário Franciscano (UNIFRA)
97010-032 – Santa Maria – RS – Brazil
[email protected], [email protected], [email protected]
Resumo. Nos primórdios da computação a programação para GPU Graphics Processing Unit era considerada muito complexa. A fabricante de
placas gráficas NVIDIA foi pioneira no desenvolvimento de uma arquitetura
que facilitasse a programação de GPU’s para propósitos gerais, essa
arquitetura foi denominada Compute Unified Device Architecture – CUDA.
Desde então pesquisas vem sendo feitas sobre a utilização desta arquitetura
para aplicações de propósitos gerais. O objetivo do trabalho foi estudar o
funcionamento da CUDA e a linguagem de programação utilizada por ela e
realizar um estudo de caso. Por meio da compreensão e experimentação
prática dos conceitos da arquitetura CUDA, foram implementados os
algoritmos paralelos de soma de vetores e de matrizes e observado os
desempenhos executando na GPU e na CPU – Central Processing Unit.
Conclui-se que a GPU permite obter desempenho no processamento deste tipo
de operações.
1. Introdução
Nos primórdios da computação a GPU - Graphics Processing Unit, popularmente
conhecida como placa de vídeo, era usada como um processador auxiliar apenas para o
processamento de imagens, e a programação para ela era considera complexa e inviável,
pois exigia que o programador tivesse conhecimento aprofundado em linguagens de
baixo nível e sobre o hardware do dispositivo que desejava programar [Yano 2010].
No decorrer dos tempos, houve uma crescente necessidade de poder de
processamento, visando essa necessidade a fabricante de GPU’s NVIDIA foi pioneira no
desenvolvimento de uma arquitetura que possibilitasse a programação da GPU para
propósitos gerais, e não mais exclusivamente para o processamento de imagens como
antigamente. Essa nova arquitetura criada foi denominada CUDA - Compute Unified
Device Architecture [Pinto 2011]. Com CUDA é possível programar a GPU para
aplicativos que não estejam exclusivamente ligados a processamento de imagens, como
por exemplo, aplicativos comerciais onde são realizadas ordenação de valores, cálculo de
finanças, dentre outros. O objetivo deste trabalho foi estudar o funcionamento da
CUDA, a linguagem de programação utilizada por ela e, a partir disto, realizar um
estudo de caso, por meio da implementação dos algoritmos paralelos de soma de vetores
e de matrizes para execução na GPU e na CPU – Central Processing Unit.
106
Anais do XI Simpósio de Informática da UNIFRA - SIRC2012
ISSN: 2175-0955 Santa Maria - RS, Outubro de 2012
2. Desenvolvimento
A soma de dois vetores é uma operação de álgebra linear, requer que os dois vetores
tenham o mesmo número de posições porque todas as posições do primeiro vetor serão
somadas com as posições correspondentes do segundo, resultando em um terceiro vetor,
do mesmo tamanho. A soma de duas matrizes é outra operação de álgebra linear, onde
os elementos correspondentes de cada uma das matrizes são somados, gerando um
terceiro elemento, na mesma posição da matriz resultado.
Foram implementadas duas versões da soma de vetores, com o objetivo de
validar o estudo realizado sobre CUDA e GPU. Uma das versões efetua a soma
completamente na GPU, o que envolve a inicialização dos dados e os cálculos. E outra
versão efetua a soma de dois vetores na CPU.
Os testes foram realizados em um computador com processador Core 2 Duo, 2.2
GHz, com 4GB de RAM e placa de vídeo NVIDIA GeForce GTX 550 Ti. Os resultados
obtidos foram satisfatórios para a operação da soma de vetores. Para vetores com
1.000.000, 5.000.000, 10.000.000 de posições, o tempo de processamento na GPU de
todos eles foram respectivamente 0.377, 0.468 e 0.928 segundos. O tempo de
processamento na CPU foi, respectivamente 0.016, 0.078 e 0.156 segundos. Conclui-se
que, para problemas mais simples como a soma de vetores, a placa gráfica permite
também um processamento rápido. O algoritmo de soma de matrizes encontra-se em fase
de desenvolvimento.
3. Conclusão
A partir do trabalho realizado, considerou-se que os resultados foram satisfatórios, pois
a GPU efetua o processamento das operações de forma rápida, aproximando-se dos
valores da CPU. Um dos grandes desafios encontrados na programação para GPU é a
paralelização dos algoritmos. Pretende-se continuar o estudo da arquitetura CUDA,
implementando em paralelo as demais operações de álgebra linear.
Referências
PINTO, Vinícius G. Ambientes de Programação Paralela Híbrida. 2011. Dissertação.
Programa de Pós-Graduação em Computação, Universidade Federal do Rio Grande
do Sul (UFRGS), Porto Alegre, 2011.
YANO, Luís Gustavo Abe. Avaliação e comparação de desempenho utilizando
tecnologia CUDA. 2010. Trabalho de Conclusão (Graduação em Ciência da
Computação). Instituto de Biociências, Letras e Ciências Exatas, Universidade
Estadual Paulista “Júlio de Mesquita Filho”, São José do Rio Preto - SP. 2010.
107
Anais do XI Simpósio de Informática da UNIFRA - SIRC2012
ISSN: 2175-0955 Santa Maria - RS, Outubro de 2012
Ferramenta Geradora de Timetables Estudantis
Gabriel S. Amorim1, Gustavo S. Cantarelli1, Alexandre O. Zamberlan1
1
Ciência da Computação – Centro Universitário Franciscano (UNIFRA)
Santa Maria, RS - Brasil
[email protected], [email protected], [email protected]
Resumo. Este artigo refere-se ao desenvolvimento de uma ferramenta capaz
de gerar timetables (grades horárias) escolares, fazendo uso de Algoritmos
Genéticos como algoritmo de busca.
Introdução
A cada novo semestre, instituições de ensino tem de fazer novas grades horárias
para suas turmas, levando em conta os cursos, as disciplinas, os professores, as
disponibilidades dos mesmos e também outras restrições que podem ser do próprio
curso, da instituição ou do MEC (Ministério da Educação). Além de o problema ter um
grande espaço de busca, quando são levadas em conta outras restrições envolvidas, o
problema adquire um caráter NP-Completo, ou seja, não pode ser resolvido em tempo
polinomial.
Acredita-se que com o desenvolvimento de uma ferramenta computacional para
geração de timetables estudantis e com uso de algoritmos genéticos, é possível tornar
mais rápido e aprimorado o processo de geração do timetable. Esta forma de solução
pode dar atenção a certos pontos que acabam não sendo considerados em um processo
de geração manual, como por exemplo, a vontade que um professor tem de ter aula em
certos períodos, ou a separação de matérias de uma mesma classe em dias diferentes, ou
evitando que um professor de muitas matérias para uma mesma turma, entre outros.
Projeto e Implementação
A proposta de desenvolvimento consiste na criação de uma ferramenta capaz de
gerar um timetable (grade horária) aprimorado às turmas de ensino superior brasileiras,
que costumam frequentemente apresentar períodos geminados (agrupados).
A ferramenta contará com cadastro de cursos, onde cada curso terá seus
professores e disciplinas, com as tabelas de disponibilidades e intenções de horários dos
mesmos, após o cadastro dos dados e a aplicação da relação disciplina X professor, que
definirá quais professores podem lecionar quais disciplinas, e com que grau de
eficiência, se poderá então inicializar o processo de busca via algoritmos genéticos,
onde será permitido alterar taxas das opções dos mesmos, após o termino parcial da
execução, o usuário poderá visualizar uma grade horária completa, avaliando-a, para na
sequência decidir se quer aceitá-la ou retomar o processo de geração do horário.
Algoritmos Genéticos são algoritmos de busca, do ramo dos algoritmos
evolucionários, baseados nos mecanismos de seleção natural e genética. Segundo
[Linden 2008] algoritmos genéticos se tratam de algoritmos interessantes para efetuar
buscas em espaços praticamente infinitos, fato que justifica a escolha do mesmo, por
muitos autores, para resolver o problema de alocação de horários estudantis. De modo
que foi feita a escolha do mesmo para auxiliar na resolução do problema.
Como metodologia de projeto se utilizou ICONIX e foi feito um projeto escrito
separado visando o entendimento da aplicação dos algoritmos genéticos à ferramenta.
108
Anais do XI Simpósio de Informática da UNIFRA - SIRC2012
ISSN: 2175-0955 Santa Maria - RS, Outubro de 2012
Referencial Teórico
A fim de se obter embasamento acerca do assunto, foram analisados uma série
de trabalhos e ferramentas que utilizam algoritmos genéticos para resolver problemas de
timetable (grade horária). Como boas referências para o problema se tem, o trabalho de
[Skrabe 2007], que projetou uma ferramenta para gerar grades horárias escolares, e
apresentou um amplo referencial teórico acerca do tema, e também se tem os trabalhos
de [Hamawaki 2005] e [Freitas 2006], que projetaram e implementaram ferramentas
computacionais bastante semelhantes à tratada aqui, e proveram muitas informações
importantes sobre o tema.
Dos trabalhos correlatos verificados, foi observado que o tempo de busca
diminuiu bastante quando se fez uso de algoritmos genéticos, e que aplicações
estrangeiras costumam apresentar um custo de tempo menor que as brasileiras, devido
às comuns geminações de horários encontradas nas tabelas de horários brasileiras. Em
média o tempo de execução para horários com poucas geminações foi de um minuto, e
para horários com mais geminações, o tempo de execução pulou para uma média de
uma hora.
Considerações Finais
Na realização deste trabalho foi possível notar que o processo de geração do
timetable gera um desgaste muito grande, e que mesmo quando feito manualmente o
executor acaba tendo que fazer uso de ferramentas para armazenar os vastos dados
envolvidos, e para testar de uma forma visual as restrições envolvidas.
Ao se aprofundar nos métodos dos algoritmos genéticos, se notou que algumas
partes do processo devem ser adaptadas ao problema para não retirar as características
dos algoritmos genéticos. E se deu uma atenção especial para as geminações de
horários, a fim de se tentar diminuir o tempo total de execução do algoritmo.
A implementação da ferramenta está em andamento, e no momento já se é
possível fazer a execução do programa considerando as restrições de não colisões entre
professores e disciplinas de um mesmo semestre.
Alguns testes foram feitos utilizando 3 professores e 6 disciplinas de um mesmo
semestre, onde mais de 2 professores poderiam lecionar uma mesma disciplina, e com
uma média de 3 segundos de tempo de execução o algoritmo consegue gerar um
resultado final sem colisões.
Referências
Linden, R. (2008) “Algoritmos Genéticos – Uma importante ferramenta da
Inteligência Computacional” 2ª. ed. Brasport.
Hamawaki, C. D. L. (2005) “Geração Automática de Grade Horária Usando
Algoritmos Genéticos: O Caso da Faculdade de Engenharia Elétrica da UFU”,
Universidade Federal de Uberlândia, Uberlândia.
Skrabe, M. S. (2007) “Proposta de Algoritmo Genético Para Aplicação no Problema
da Grade Horária”, Centro Universitáio Feevale, Novo Hamburgo.
Freitas, C. C. et al. (2006) “Uma Ferramenta Baseada em Algoritmos Genéticos para
a Geração de Tabela de Horário Escolar”, Faculdade Ruy Barbosa, Salvador.
109
Anais do XI Simpósio de Informática da UNIFRA - SIRC2012
ISSN: 2175-0955 Santa Maria - RS, Outubro de 2012
Gerenciamento de Automação Residencial utilizando Android
e Arduino
Rafael V. Iop, Gustavo S. Cantarelli1
1
Centro Universitário Franciscano (UNIFRA)
Rua dos Andradas 1614 - 97010-032 SANTA MARIA – RS – Brasil
[email protected], [email protected]
Resumo. Dispositivos de automação residencial não são novidade, porém, a
acessibilidade de preços dos smartphones e da plataforma de prototipação
Arduino tornam possíveis a construção de sistemas acessíveis e fáceis de
utilizar para o usuário final. O intuito deste projeto é de desenvolver uma
aplicação para smartphones Android, que em parceria com um dispositivo
Arduino, permite o gerenciamento de dispositivos de uma residência, dentro
de uma mesma rede local. O smartphone funciona como uma central de
gerenciamento dos dispositivos, que envia comandos para o Arduino, e este se
encarregará de emitir sinais infravermelhos para dispositivos como
Televisores, Som e Condicionadores de Ar.
1. Introdução
O surgimento dos controles remotos facilitaram muito a forma com que as pessoas
interagem com os dispositivos, porém, muitos são grandes e complicados de usar, pois
possuem botões que a maioria dos usuários nem se quer sabe o significado da função.
Outro ponto negativo é que cada dispositivo possui seu próprio controle, com isto,
torna-se comum encontrar diversos controles remotos em uma sala de uma residência,
por exemplo.
Com o passar dos anos a utilização de smartphones Android tem aumentado, pois
existem dispositivos que se encaixam em diversas faixas de preços. Com um aplicativo
o usuário poderia cadastrar os seus dispositivos e os controlar através de seu celular,
desde que o dispositivo Arduino esteja situado em uma posição estratégica no cômodo
onde estão localizados os dispositivos receptores do usuário e que o smartphone e o
Arduino estejam conectados a mesma rede.
2. Android
Android é uma plataforma de desenvolvimento para aplicativos móveis, baseada em um
sistema operacional Linux, que possui um ambiente de desenvolvimento denominado
Android SDK. A plataforma foi anunciada em novembro de 2007 e desenvolvida pela
Google e a Open Handset Alliance (OHA), que consiste em um grupo formado por 47
empresas lideres em tecnologia móvel que tem como objetivo definir uma plataforma
110
Anais do XI Simpósio de Informática da UNIFRA - SIRC2012
ISSN: 2175-0955 Santa Maria - RS, Outubro de 2012
única e aberta para celulares, visando a satisfação dos consumidores com o produto final
(LECHETA, 2010).
Sistemas que possuem software stacks proprietárias, ou seja, que não são de código
aberto, tornam difícil na melhor das hipóteses, qualquer alteração em sua stack. O
Android é a primeira plataforma para aplicações moveis completamente livre e de
código aberto, isto permite aos fabricantes tirarem o máximo proveito dele sem
precisarem pagar por isto. O fato de seu código ser aberto permite aos desenvolvedores
fazerem contribuições ao desenvolvimento do sistema, adicionando novas
funcionalidades ou até mesmo corrigindo falhas, assim contribuindo para o
aperfeiçoamento do Android (ROGERS, 2009).
3. Arduino
Arduino é um uma plataforma de hardware e software para prototipação eletrônica, que
permite aos usuários programarem processos de entrada e saída entre o dispositivo e
componentes externos que estão conectados a ele. Pode ser utilizado para desenvolver
objetos autônomos ou pode conecta-los a computadores, a uma rede local ou até mesmo
a internet para enviar ou receber dados entre o Arduino e outras fontes de dados
(MCROBERTS, 2010).
O Arduino é composto por duas partes principais: Arduino board, que consiste no
hardware em si e o Arduino IDE (Integrated Development Environment), que é o
software utilizado para desenvolver um sketch, ou em outras palavras, um pequeno
programa que diz ao Arduino board o que fazer. Tanto o hardware quanto o software do
Arduino são open source, e nada impede que qualquer pessoa compre componentes
separados e crie sua própria placa (BANZI, 2008).
O Arduino board, possui todos os componentes necessários para que o
microcontrolador funcione corretamente e se comunique com meios externos, como o
computador. A placa pode ser alimentada a partir da porta USB, conectada a um
computador ou até mesmo a partir de um adaptador de energia (BANZI, 2008).
4. Conclusão
O presente trabalho encontra-se em desenvolvimento e terá como produto final um
software para gerenciamento de automação residencial utilizando Android e um
hardware utilizando Arduino, que receberá comandos de um smartphone conectado a
rede local e retransmitirá estes através de um transmissor infravermelho.
7. Referencias
LECHETA, R. R. Google Android. 2. ed. [S.l.]: Novatec, v. I, 2010.
ROGERS, R. Android Application Development: Programming with the Google SDK.
1. ed. [S.l.]: [s.n.], v. I, 2009.
MCROBERTS, M. Beginning Arduino. 1. ed. [S.l.]: Apress, v. I, 2010.
BANZI, M. Getting Started with Arduino. 3. ed. [S.l.]: Make, v. I, 2008.
111
Anais do XI Simpósio de Informática da UNIFRA - SIRC2012
ISSN: 2175-0955 Santa Maria - RS, Outubro de 2012
Análise Comparativa de Algoritmos de Detecção de Pele
Humana em Imagens Digitais
Guilherme N. Kemmerich1, Guilherme C. Kurtz1
1
Sistemas de Informação – Centro Universitário Franciscano (UNIFRA)
Santa Maria – RS – Brasil
{guilhermekemmerich,guilhermechagaskurtz}@gmail.com
Abstract. Skin detection is the process of identifying pixels that represents
human skin in an image. Skin detection can be used for tasks such recognition
of people in images and videos. The most common way to accomplish the skin
detection is by color. Our goal is to perform a comparative analysis of skin
detection algorithms, applying them in the same images to see which one
obtains the best performance.
Resumo. Detecção de pele é o processo de identificar pixels que representam
a pele humana em uma imagem. A detecção de pele pode ser utilizada em
tarefas como reconhecimento de pessoas em imagens e vídeos. A forma mais
comum de realizar a detecção de pele é através da cor. O objetivo deste
trabalho é realizar uma análise comparativa de algoritmos de detecção de
pele, aplicando-os nas mesmas imagens e observar qual obtém o melhor
desempenho.
1. Introdução
É nomeado de detecção de pele o processo de encontrar pixels com cor de pele em uma
imagem ou vídeo. A detecção de pele em imagens digitais é um tópico bastante ativo
atualmente dentro das áreas de processamento de imagens digitais e visão
computacional. Técnicas de detecção de pele são utilizadas em tarefas como
reconhecimento facial, detecção de conteúdo ofensivo na internet e localização de
pessoas em sistemas de vigilância [Kuiaski et al., 2008].
Existem algumas dificuldades quando se trata de encontrar pixels com tons de
pele. A cor da pele é afetada pela luz ambiente, que é desconhecida em várias situações;
câmeras diferentes produzem cores diferentes, até mesmo de uma pessoa nas mesmas
condições e iluminação. E claro, existem várias cores de pele [Albiol et al., 2001].
2. Detecção de pele
Um classificador de pele é um classificador que define um limite de decisão para
classificar a cor da pele em um espaço de cor. Qualquer pixel que esteja dentro do limite
dessa classificação é considerado como pele [Elgammal et al., 2009].
O processo de detecção de pele possui duas etapas: treinamento e detecção. O
treinamento consiste em três passos básicos: coletar uma base de dados sobre pele de
diferentes imagens, escolher um espaço de cor e aprender os parâmetros de um
classificador de pele. Após o treinamento, a detecção de pixels com cor de pele em uma
112
Anais do XI Simpósio de Informática da UNIFRA - SIRC2012
ISSN: 2175-0955 Santa Maria - RS, Outubro de 2012
imagem envolve a conversão da imagem para o mesmo espaço de cor que foi utilizado
no treinamento e a classificação de cada pixel em pele e não-pele [Elgammal et al.,
2009].
3. Objetivos
O objetivo deste trabalho é realizar um estudo comparativo de diferentes algoritmos de
detecção de pele. Os algoritmos serão aplicados em bases de imagens digitais coloridas
e classificarão os pixels em pele e não-pele. As bases possuem máscaras das imagens,
com os pixels já classificados em pele e não-pele. O que será avaliado em cada
algoritmo será a taxa de acertos, ou seja, quantos pixels o classificador consegue
identificar corretamente como pele e não-pele. Para isto, será gerada uma imagem
binária a partir da imagem original, para ser possível identificar os pixels pele dos pixels
não-pele.
Com isto, será comparado o desempenho de algoritmos diferentes em uma
mesma situação, como imagens com pouca iluminação, fotografias de pessoas com
diferentes tons de pele ou imagens que contenham objetos com cor de pele.
4. Conclusão
Durante o desenvolvimento deste trabalho foram vistas algumas diferenças básicas entre
o sistema de visão humano e o sistema de visão de máquina, assim como as etapas que
são realizadas para formar uma imagem digital. Também foram estudadas diferentes
técnicas de identificação de pele.
Como a detecção de pele depende da identificação da cor do pixel, não é útil
realizar a detecção em imagens com tons de cinza ou qualquer outro tipo que não
contenha informações sobre cor.
A próxima etapa deste trabalho é testar os algoritmos em diferentes bases de
imagens e espaços de cores e realizar uma comparação para ver qual obtém o melhor
resultado em determinada situação.
Referências
Albiol, A., Torres, L. e Delp, E.(2001) "Optimum Color Spaces for Skin Detection"
Politechnic University of Valencia, Politechnic University of Catalonia, Spain,
Purdue Universitym, USA.
Elgammal, A., Muang, C. e Hu, D. (2009) "Skin Detection - a Short Tutorial"
Department of Computer Science, Rutger University.
Kuiaski, D., Borba, G., Gamba, H. e Neto, H. (2008) "Estrutura para anotação de
imagens para a avaliação de algoritmos de detecção de pele humana"
CPGEI/UTFRP, Curitiba.
113
Anais do XI Simpósio de Informática da UNIFRA - SIRC2012
ISSN: 2175-0955 Santa Maria - RS, Outubro de 2012
Opção de Marketing para Sistemas Android por meio de
Geolocalização
Fabrício Tonetto Londero1, Guilherme Chagas Kurtz1
1
Sistemas de Informação – Centro Universitário Franciscano(UNIFRA)
Santa Maria – RS – Brazil
[email protected], [email protected]
Abstract. This paper aims to present a system that seeks to answer a new
marketing trend, where, by examining their geolocation, the client receives
information products of interest, an alternative to make use of Geomarketing.
It is intended, using smartphones with the Android operating system,
developing an application which should examine this geolocation, and hereby
warn the customer of the stores and the products available, and to stores, a
web system where it is possible to sign up of its stores, regions and
comprehensive product offerings.
Resumo. O presente trabalho tem por finalidade apresentar um sistema que
busca atender uma nova tendência de marketing, onde, por análise da sua
geolocalização, o cliente recebe informações de produtos de seu interesse, uma
alternativa para fazer uso do Geomarketing. Pretende-se, utilizando
smartphones com o sistema operacional Android, desenvolver uma aplicação
encarregada de analisar esta geolocalização, e por meio desta, alertar o
cliente das lojas e produtos a disposição; e para as lojas, um sistema Web
onde é possível realizar o cadastro de suas lojas, regiões abrangentes e os
produtos ofertados.
1.Introdução
Um dos motivos que levam empresas a ter uma supremacia no mercado, comparado
com seus concorrentes, é o marketing. Atualmente, o investimento em marketing
valoriza a marca da empresa. Uma tendência do marketing é o Geomarketing, que tira
proveito da localização dos clientes para apresentar produtos, promoções, ou até mesmo
abrir filiais.
Com o crescimento do uso de sistemas moveis, como o Android, este trabalho tem
como principal objetivo tirar proveito deste avanço e desenvolver uma opção de
marketing que usufrui de uma funcionalidade dos Smartphones, o Global Positioning
System (GPS), presente nos aparelhos com sistema operacional Android, para beneficiar
tanto comerciante como o consumidor. Este sistema irá emitir alertas aos usuários sobre
promoções cadastradas pelos comerciantes, conforme o usuário se desloca e de acordo
com suas preferências, atingindo territórios cadastrados pelos comerciantes.
2. Desenvolvimento para Android
Para desenvolver aplicações para Android utiliza-se tradicionalmente a Linguagens
Java, mas existe a possibilidade de se utilizar C# com o uso do Monodroid [Xamarin
2012], ferramenta utilizada neste trabalho. O Android não possui a Máquina Virtual
Java ou o Monodroid para executar as aplicações (Java e .Net respectivamente)
desenvolvidas, o que ocorre é que os compiladores, tanto do .NET quanto da Máquina
114
Anais do XI Simpósio de Informática da UNIFRA - SIRC2012
ISSN: 2175-0955 Santa Maria - RS, Outubro de 2012
Virtual Java, geram arquivos de extensão .dex, que são os executáveis da Maquina
Virtual Dalvik [LECHETA 2009].
A Máquina Virtual Dalvik é própria para dispositivos móveis, é ela que recebe os
arquivos .dex dos compiladores e, juntamente com outros recursos usados pela aplicação
compilada, como imagens e arquivos, são compactados em arquivos .apk, que é a
aplicação final reconhecida pelo sistema Android.
3. Proposta
Este trabalho tem como objetivo apresentar uma alternativa de marketing, onde, por
meio de um dispositivo móvel com sistema operacional Android, o cliente receba alerta
de promoções conforme análise do seu posicionamento e de seus interesses.
Para isso, pretende-se desenvolver uma aplicação web, em que o responsável por
determinado estabelecimento cadastre seus Locais conforme área de abrangência do
mesmo, e logo cadastre suas promoções e vincule com os Locais cadastrados. Por
exemplo, se a empresa X tem Lojas em Santa Maria, Porto Alegre e Uruguaiana, o
responsável pela mesma deve cadastrar esses três Locais, podendo incluir cidades
vizinhas; feito isso, cadastra e vincula o produto Y para Santa Maria, W para Porto
Alegre e Z para Uruguaiana.
Por sua vez, o sistema móvel analisará a localização do aparelho e disparará um
alerta conforme o deslocamento do usuário e de seus interesses, informando que existem
produtos em promoção próximos de onde ele se encontra.
A metodologia a ser usada é o OpenUp [Open2Up 2011], e para o
desenvolvimento pretende-se utilizar o Monodroid e a Linguagem de programação C#
com a IDE MonoDevelop para o sistema móvel e o Visual Studio Express para o
sistema web.
4.Conclusão
Os conteúdos estudados até o momento serviram para ressaltar o quanto é importante o
estudo e atualização de técnicas de marketing para as empresas, pois isso pode poderá
definir o seu sucesso ou fracasso. Portanto, este trabalho tem como propósito apresentar
uma alternativa de marketing, que tira proveito do geoposicionamento do seu usuário
para divulgação de promoções.
Referências
LECHEDA, Ricardo. (2009) “Google Android: Aprenda a criar aplicações para
dispositivos móveis com o Android SDK.” São Paulo: Novatec Editora.
Xamarin (2012). “Estrutura do Monodroid”, http://migre.me/99Glg , Maio.
Open2Up
(2011).
“Introdução
ao
Processo
http://www.open2up.blogspot.com.br/, Junho.
MSDN. “Introduction to the C# Language and
http://msdn.microsoft.com/library/z1zx9t92, Maio.
Unificado
the
.NET
Aberto.”,
Framework.”,
KOTLER, Philip. (2000) “Administração de marketing: a edição do novo milênio.” São
Paulo: Prentice Hall.
115
Anais do XI Simpósio de Informática da UNIFRA - SIRC2012
ISSN: 2175-0955 Santa Maria - RS, Outubro de 2012
TUNING DE INSTRUÇÕES SQL EM SGDB ORACLE:
PROPOSTA DE MELHORIA DE DESEMPENHO
Bruno Zottele Freitas1, Gustavo Stangherlin Cantarelli1
¹Sistemas de Informação – Centro Universitário Franciscano – UNIFRA – Santa Maria,
RS – Brasil
[email protected], [email protected]
Resumo. Atualmente, devido ao crescimento do tamanho das bases de dados, a
busca por um desempenho satisfatório é cada vez mais necessária. Sendo
assim, este trabalho propõe uma melhoria de desempenho baseada em tuning
de instruções SQL. Para isso, pretende-se apresentar técnicas de tuning que
podem ser implementadas em ferramentas nativas do SGDB Oracle.
Palavras-Chave: Base de Dados, Desempenho, Tuning, Instruções SQL,
SGDB e Oracle.
1. Introdução
Os SGDBs (sistemas gerenciadores de banco de dados) têm por princípio
armazenar e disponibilizar informações de forma conveniente e eficiente. Atualmente, o
volume de dados armazenado em um banco de dados é cada vez maior e geralmente
pode-se relacionar o aumento na base de dados com um maior tempo de resposta em
uma consulta SQL (Structured Query Language) [Silberschatz, Korth e Sudarshan,
2006]. Uma possível solução para contornar esses problemas é o que se pretende
apresentar neste trabalho. Outro ponto importante que merece ser citado é de que o
tuning proposto neste trabalho será efetuado no terceiro nível de ajustes
(esquemas/transações SQL), nível este que é responsável, de acordo como [Ault, 2001],
por 80% dos problemas de desempenho.
2. Tuning
Os sistemas de banco de dados devem fornecer funcionalidades para a execução
de atualizações e consultas de forma eficiente. Pelo fato de o banco de dados ser
armazenado tipicamente em disco, os Sistemas Gerenciadores de Banco de Dados
(SGBD) relacionais devem possibilitar formas de aumentar a velocidade de pesquisa no
disco dos registros desejados [Elmasri e Navathe, 2006].
A palavra de origem inglesa tuning significa realizar ajustes ou afinações, com o
objetivo de ganhar mais potência (automobilismo) ou obter mais desempenho
(informática) [Lopes, 2012].
3. Tuning no SGDB Oracle 11g
O tuning em uma base de dados é uma das tarefas mais importantes de um DBA,
visto que problemas de desempenho em um banco de dados costumam afetar a todos os
usuários de alguma forma. Hoje em dia a tarefa de “tunar” um banco de dados Oracle
tem se tornado cada vez mais relevante e menos complicada de ser implementada, visto
116
Anais do XI Simpósio de Informática da UNIFRA - SIRC2012
ISSN: 2175-0955 Santa Maria - RS, Outubro de 2012
que, a cada nova versão do SGDB Oracle é lançada algum tipo de melhoria nas
ferramentas de tuning [Fiorillo, 2012]. Apesar dessas “facilidades” proporcionadas pelas
ferramentas, o Tuning no SGDB Oracle ainda é uma tarefa complexa, que requer
conhecimentos avançados por parte do DBA.
4 Tuning de instruções SQL em SGDB Oracle
De forma a realizar os testes comparativos serão escolhidas instruções SQL que
gerem uma alta demanda de recursos computacionais, com isso pretende-se avaliar os
componentes utilizados no tuning e quais os índices de melhora alcançados. Com o
intuito de gerar carga ao SGDB será usado um banco de dados com grande quantidade
de dados. Com isso, pretende-se demonstrar de forma clara os ganhos de desempenho
gerados pelo tuning. Contudo, para manter a imparcialidade entre os cenários de testes
será utilizada uma máquina virtual. Irá ser usado o software VirtualBox versão 4.1.14, e
o sistema operacional será o Oracle Linux 5.
Para a execução e coleta dos resultados dos testes será utilizado o Oracle SQL
Developer. Cada instrução será rodada 5 vezes, os 2 primeiros resultados serão
descartados com o intuito de evitar alguma discrepância em relação à otimização da
instrução, visto que é a primeira vez que o SGDB irá rodar as mesmas.
5 Considerações Finais
Devido ao aumento da demanda sobre os sistemas, cresce também a necessidade
de sistema com maior desempenho. Assim, este trabalho busca realizar um estudo sobre
o tuning no SGBD Oracle com ênfase no tuning deste. Com isso pretende-se alcançar
um ganho de desempenho através da utilização de ferramentas nativas do SGDB.
Vale ressaltar que a tarefa de tunar instruções SQL não é algo que tenha um
baixo grau de dificuldade, mas ela é altamente recompensadora no sentido de ganhar
desempenho sem precisar de altos investimentos em melhorias de hardware, rede ou até
mesmo software. Ao final, este trabalho tem a pretensão de demonstrar técnicas de
tuning e que seja possível com elas obter ganhos de desempenho significativos, a fim de
demonstrar as melhorias alcançadas com o tuning.
7 Referencial Bibliográfico
Ault, M. R. (2001). Tuning when you can't touch the code. Retrieved 04 29, 2012, from
. NYOUG: http://www.nyoug.org/Presentations/2000/no_touch_s.pdf
Date, C. J. (2003). Introdução a sistemas de bancos de dados. Rio de Janeiro: Campus.
Elmasri, R., & Navathe, S. B. (2006). Sistemas de banco de dados (4ª Edição ed.). São .
. Paulo: Pearson.
Fiorillo, C. (2012). Oracle Database 11gR2 Performance Tuning Cookbook (1ª edição
,. ed.). Birmingham, UK: Packt Publishing Ltd.
Lopes,
S.
(2012).
Retrieved
03
21,
2012,
http://www.taskblog.com.br/01/tuning-banco-de-dados/
from
Task
Blog:
Silberschatz, A., Korth, H. F., & Sudarshan, S. (2006). Sistema de Banco de Dados (5ª
Edição ed.). Rio De Janeiro: Campus.
117
Anais do XI Simpósio de Informática da UNIFRA - SIRC2012
ISSN: 2175-0955 Santa Maria - RS, Outubro de 2012
Avaliando o Comportamento de Sistema Multiagente em
um Ambiente Almoxarifado
Daniel Iop Rosa, Alexandre O. Zamberlan
Centro Universitário Franciscano (UNIFRA)
Rua dos Andradas, nº 1614 – 91.010-032 – Santa Maria – RS - Brasil
[email protected], [email protected]
Resumo. Com a finalidade de estender o trabalho de Rafael Cardoso (2011),
que integrou o ambiente leJOS NXJ com o kit Lego Mindstorms NXT 1.0, este
trabalho visa modelar e implementar um Sistema Multiagente especificado e
implementado por meio da linguagem AgentSpeak(L) no interpretador Jason,
afim de avaliar o comportamento do sistema multiagente com vários agente,
diferente do trabalho citado, que avaliou um agente e focou na integração.
1. Introdução
Segundo Russell e Norvig (2004), uma das subáreas da Inteligência Artificial é a área de
Agentes, que tem como objetivo a resolução de problemas. Um dos primeiros passos
para a resolução de problemas é a formulação de objetivos, que é baseada na situação
atual e na medida de desempenho do agente. Os agentes de resolução de problemas
decidem o que fazer encontrando sequencias de ações que levam a estados desejáveis,
definindo com precisão os elementos que constituem um “problema” e sua “solução”,
adotando objetivos que ajudam a organizar o comportamento, limitando a finalidades
em que o agente está tentando alcançar.
De acordo com Hübner e Sichman (2003, p. 2), a área de Sistemas Multiagentes
“estuda o comportamento de um grupo organizado de agentes autônomos que cooperam
na resolução de problemas que estão além das capacidades de resolução de cada um
individualmente”. Os agentes são elementos ou componentes fundamentais em um
SMA, com características de autonomia, próatividade, comunicação, adaptação,
persistência, entre outros, dependendo do grau de cognição.
Para Cardoso (2011), os problemas que devem ser resolvidos por um Sistema
Multiagente (SMA) estão no contexto de como agentes fazem comunicação entre si e
como realizam cooperação, a fim de coordenar suas ações, pois estão em ambiente
compartilhado. Segundo Fernandes (2003, p. 89) “o objetivo principal dos Sistemas
Multiagentes está na coordenação de tal comportamento social inteligente, uma vez que
dita coordenação envolve conhecimento, objetivos, habilidade e planejamento sobre os
agentes”. Para Russel e Norvig (2004, p. 33), “um agente é tudo o que pode ser
considerado capaz de perceber seu ambiente por meio de sensores e de agir sobre o
ambiente por intermédio de atuadores”.
O trabalho do Cardoso (2011) consiste em integrar duas áreas de estudo da
Inteligência Artificial, a robótica e Agentes Inteligentes, para realizar um planejamento
de ações e percepções de agentes para robôs LEGO Mindstorms NXT. Foi modelado e
implementado um agente Jason em um sistema, demonstrando a utilização de agentes
118
Anais do XI Simpósio de Informática da UNIFRA - SIRC2012
ISSN: 2175-0955 Santa Maria - RS, Outubro de 2012
inteligentes em robôs reais. A robótica é uma área que engloba computadores, robôs e é
composto por partes mecânicas automáticas e controladas. O Kit LEGO é composto de
um brick (bloco programável) onde contém a programação em ambiente Java, sensores
que captam as mudanças no ambiente, e os atuadores (garras, motores) que permite que
o robô se mova ou pegue certos objetos.
2. Desenvolvimento
Este trabalho busca dar sequência ao trabalho realizado por Cardoso (2011), modelando
e implementando um sistema multiagente especificado utilizando a linguagem de
programação leJOS NXJ e implementado por meio da linguagem AgentSpeak(L) no
interpretador Jason. Também será utilizado o Kit LEGO Mindstorms NXT 1.0 (robô) e
um robô virtual (executado pelo computador). Esses robôs irão interagir entre si no
ambiente, que será um almoxarifado, executando tarefas tais como pegar e guardar
caixas que entram pela porta do almoxarifado.
3. Conclusão
Este trabalho apresenta um referencial teórico referente a sistemas multiagentes
abordando conceitos básicos, arquitetura e tipos de linguagem. Ainda é abordado os
tipos de metodologia para poder desenvolver um SMA, e para finalizar o referencial
teórico, foi falado sobre robótica e LEGO Mindstorms NXT 1.0.
Para a modelagem do problema proposto foi utilizado a metodologia Prometheus
e a ferramenta Prometheus Design Tools.
4. Referências
CARDOSO, Rafael Cauê. Planejamento de percepções e ações de agentes Jason no
Robô LEGO® Mindstorms® NXT 1.0. Centro Universitário Franciscano - UNIFRA,
Santa Maria-RS, 2011.
LeJOS, Java for Lego Mindstorms. Disponível em: http://lejos.sourceforge.net/. Acesso
em março, 2012.
RUSSEL, Stuart; NORVIG, Peter. Inteligência Artificial. Tradução da 2ª edição. Editora
Campus, Florianópolis 2004.
HÜBNER, J. F. ; SICHMAN, J. S. Organização de Sistemas Multiagentes. In: Renata
Vieira, Fernando Osório, Solange Rezende. (Org.). III Jornada de Mini-Cursos de
Inteligência Artificial. Campinas: SBC, 2003, v. 8, p. 247-296
HÜBNER, J.F.; BORDINI, R.H.; VIERA, R. Introdução ao desenvolvimento de
sistemas multiagentes com Jason. XII Escola de Informática da SBC – Paraná.
Guarapuava, PR: Editora da UNICENTRO. Capítulo 2, 51 - 89, 2004.
119
Anais do XI Simpósio de Informática da UNIFRA - SIRC2012
ISSN: 2175-0955 Santa Maria - RS, Outubro de 2012
Mapeamento e Implantação de uma Rede Mesh, um estudo
de caso.
Tobias de Oliveira1, Alessandro A. Mainardi de Oliveira1, Sylvio André G. Vieira1
1
Sistemas de Informação – Centro Universitário Franciscano (UNIFRA)
Rua dos Andradas, 1614 – 97.010- 032 – Santa Maria – RS – Brasil
[email protected], [email protected],
[email protected]
Abstract . This work is a study of mesh networks, operation and major routing
protocols. These networks inherit characteristics and properties of wireless
networks unstructured (ad hoc). Mesh networks are networks of low cost and
extending the reach of traditional wireless networks through multihop
communication. This study aims to deploy a mesh network in the building of
Campus I of Franciscan University Center (UNIFRA), providing wireless
Internet for students, faculty and staff on campus.
Resumo. Este trabalho consiste no estudo sobre as redes mesh, seu
funcionamento e os principais protocolos de roteamento. Estas redes herdam
características e propriedades das redes sem fio não estruturadas (ad hoc).
Redes mesh são redes de baixo custo e que estendem o alcance das redes sem
fio tradicionais através da comunicação em múltiplos saltos. Este estudo visa
implantar uma rede mesh no prédio I do Campus I do centro universitário
franciscano (Unifra), disponibilizando internet sem fio para os alunos,
professores e funcionários do campus.
1. Introdução
Devido a grande necessidade de troca de informações fora dos ambientes tradicionais
(computadores conectados a rede cabeada ou wired), surgiu então o padrão IEEE 802.11
mais conhecido como Wi-Fi (Wireless Fidelity). A comunicação neste tipo de rede se dá
através de ondas de rádio frequência [Carolo 2011].
A partir deste momento, equipamentos Wi-Fi são encontrados em redes locais e
públicas, podendo facilmente conectar a rede mundial de computadores (World Wide
Web) através dos pontos de acesso que, por sua vez, estão conectados na rede wired. As
redes mesh herdam características e propriedades do padrão IEEE 802.11 em modo ad
hoc formando uma espécie de malha sem fio [Biscaglia 2009].
Tendo em vista a importância da mobilidade e dos vários tipos de equipamentos
que podem estar conectados a rede, a tecnologia mesh surgiu como evolução do sistema
de comunicação sem fio com algumas vantagens como o baixo custo, tolerância a falhas
e sua grande abrangência e segurança [Arruda 2010].
O Centro Universitário Franciscano (Unifra) possui rede wireless, neste tipo de
rede o usuário precisa do sinal de um dos roteadores existentes para se autenticar a rede.
Caso o usuário precisar se deslocar até outro prédio do campus, ele terá que se
120
Anais do XI Simpósio de Informática da UNIFRA - SIRC2012
ISSN: 2175-0955 Santa Maria - RS, Outubro de 2012
autenticar novamente, escolhendo sinal disponível de outro roteador. Visando que a
autenticação seja feita automaticamente, é proposta uma nova rede que utilizará o
protocolo Pró Ativo.
2. Desenvolvimento
O objetivo deste projeto é a implantação da rede mesh, pois esta tecnologia traz uma
melhor mobilidade para o usuário na rede, pois ele precisará se autenticar uma única vez
e poderá se deslocar dentro das dependências do campus sem que o sinal da rede caia ou
que ele precise se autenticar a outro roteador.
Para este projeto usaremos três roteadores da marca D-Link modelo DAP-2590.
Este roteador trabalha com o padrão wireless 802.11 a,b,g,n, o sinal é transmitido na
faixa de 2.4GHz com velocidade de 300 MBPs e suporta até 64 usuários autenticados
simultaneamente[D-Link 2011].
Os protocolos de roteamento podem ser classificados de acordo com a
abordagem para a descoberta de rotas. A escolha do melhor protocolo está
inerentemente ligada ao cenário e ao tipo de aplicação que será usada na rede [Carolo
2011].
Com base nestas informações utilizaremos os protocolos Pró-Ativos (orientados
a tabela de roteamento), pois mantém sempre uma visão atualizada sobre a topologia da
rede, através do envio e recebimento de mensagens de controle. Um nó pode enviar
mensagens de controle informando que ele está ativo na rede e também enviar
mensagem divulgando os nós aos quais ele tem alcançabilidade [Oliveira 2008].
A principal vantagem é que as rotas para os diversos nós que fazem parte da rede
estão sempre disponíveis e são sensíveis a mudanças na topologia da rede. Eles estão
sendo largamente utilizados como solução para redes mesh [Oliveira 2008].
3. Conclusão
Atualmente as redes mesh, são redes confiáveis e de baixo custo para implantação e
manutenção. Estas redes também são uma opção para as universidades como solução de
integração e cobertura das áreas de campus, devido a sua mobilidade e a conexão de
vários dispositivos móveis.
4. Referência Bibliográfica
Arruda, F. W (2010) “Estudo da Tecnologia, do Desenvolvimento e da Utilização das
redes Mesh”, Universidade Regional de Blumenau. Blumenau. p.50.
Biscaglia, L. R (2009) “Redes Mesh: Avaliação de Problemas, Soluções e Estudo de
caso”, Centro Universitário Franciscano. Santa Maria. p.74.
Carolo, H. (2011) “Avaliando a Qualidade do Serviço em Redes Mesh com Aplicação
VoIP”, Centro Universitário Franciscano. Santa Maria. p.87.
D-Link (2011) “DAP-2590 Access Point / Router”, http://www.dlink.com.br/produtosdetalhes/items/dap-2590.html, Junho 2012.
Oliveira, C. F. D. (2008) “Avaliação Comparativa de Protocolos de Roteamento de
Redes Mesh”, Universidade Católica de Goias.Goias. p.54.
121
Anais do XI Simpósio de Informática da UNIFRA - SIRC2012
ISSN: 2175-0955 Santa Maria - RS, Outubro de 2012
Sistema Tolerante a Falhas para Aquisição e
Disponibilização de Dados
Marco Aurélio Bertoldo1, Reiner Franthesco Perozzo1
1
Ciência da Computação – Centro Universitário Franciscano (UNIFRA)
Santa Maria – RS – Brasil
[email protected], [email protected]
Resumo. Os sistemas tolerante a falhas são desenvolvidos de modo a garantir
que, dado um determinado problema, o sistema consiga continuar operando
ou possa ser direcionado a um estado seguro. Dentro desse contexto, existem
diversas técnicas utilizadas em tolerância a falhas, dentre elas a redundância
dos dispositivos de computação embarcada. Dessa forma, este trabalho
apresenta um sistema tolerante a falhas, baseado em redundância, para
aquisição e disponibilização de dados provenientes de dispositivos existentes
em plantas industriais. A proposta é constituída de uma arquitetura
computacional de hardware e de software combinada para garantir que o
sistema continue a sua execução normalmente caso um dos dispositivos de
aquisição de dados venha a falhar, sendo os dispositivos de aquisição
baseados na plataforma Arduino.
1. Introdução
A evolução tecnológica proporcionou o crescimento da computação em várias áreas do
conhecimento, em que as atividades que antes eram realizadas manualmente agora estão
utilizando algum tipo de mecanismo para melhorar o produto, ou mesmo algum serviço.
Porém, com a grande utilização de software surge a necessidade de que sistemas
computacionais estejam sempre disponíveis e confiáveis. Contudo, a falta de garantias
de que os sistemas sejam executados da mesma forma, traz consigo as técnicas de
tolerância a falhas [Jalote 1997].
A área de tolerância a falhas possui técnicas que buscam garantir o correto
funcionamento de um sistema mesmo quando este apresenta falhas, oferecendo
respostas coerentes, ou levando o sistema a um estado seguro dependendo dos requisitos
do projeto. Uma técnica muito aplicada é a de redundância de hardware, em que é
realizada a replicação de um componente para quando este falhar, o outro assuma as
atividades até a reparação do elemento falho [Jalote 1997]. Um tipo de hardware
utilizado em sistemas tolerantes a falhas são os microcontroladores, presentes nos mais
variados domínios de aplicação, tais como: os industriais, a aviação e a militar. Dentro
da domínio industrial, é possível citar os sistemas supervisórios (SCADA) responsáveis
pela supervisão, pelo controle e pela aquisição de dados provenientes de dispositivos de
automação existentes na planta industrial, fruto do presente trabalho. Para a validação
da proposta, este trabalho utiliza a plataforma Arduino como dispositivos redundantes
para a aquisição e disponibilização de dados provenientes de elementos existentes em
plantas industriais [Margolis 2011].
122
Anais do XI Simpósio de Informática da UNIFRA - SIRC2012
ISSN: 2175-0955 Santa Maria - RS, Outubro de 2012
2. Desenvolvimento
Dentre as atribuições de um sistema SCADA estão a aquisição e a disponibilização de
dados provenientes dos dispositivos industriais alvos. Entretanto, como a supervisão
está baseada em software e nem sempre a informação obtida na supervisão é obtida ou,
caso obtida, pode não ser confiável, em função de uma falha no sistema. Diante disso,
este trabalho propõe um sistema SCADA tolerante a falhas, cuja sua arquitetura é
apresentada na Figura 1.
Figura 1. Sistema de aquisição e disponibilização de dados
O estudo de caso utilizado para validar a arquitetura computacional proposta
está baseado na aquisição de dados obtidos de um potenciômetro e enviados a um
computador de supervisão. A tolerância a falhas da proposta é obtida tanto na aquisição
quanto na disponibilização dos dados do potenciômetro, uma vez que duas plataformas
Arduino obtém as informações, em paralelo, enviando-as via porta serial universal ao
computador. Este, por sua vez, implementa a comunicação com os Arduinos através da
linguagem Java, cujo software recebe os dados os exibe na tela. Quando um dos
dispositivos de aquisição é desconectado do computador, simulando uma falha de
energia, o outro continua a transmissão, permitindo que a supervisão de um mesmo
processo seja mantida em caso de falha em um dos elementos de aquisição.
3. Conclusões
Os resultados obtidos na execução do estudo de caso apresentado validam a
arquitetura proposta no âmbito de uma das técnicas de tolerância a falhas: a redundância
de elementos. Outras estratégias poderiam ser utilizadas ou acrescentadas na proposta,
tais como, a redundância de comunicação de dados para cada um dos elementos de
aquisição redundantes, ou seja: cada Arduino com duas conexões seriais ao computador
de supervisão. De qualquer modo, destaca-se a importância de sistemas redundantes e
tolerantes a falhas em sistemas computacionais cuja confiabilidade e disponibilidade de
dados são imprescindíveis.
Referências bibliográficas
JALOTE, P. Fault Tolerance in Distributed Systems. EUA: CRC Press, 1997.
p.2171-2182
MARGOLIS,Michael;WELDIN,Nicholas. Arduino Cookbook. Sebastopo: O’Reilly
Media,2011.
123
Anais do XI Simpósio de Informática da UNIFRA - SIRC2012
ISSN: 2175-0955 Santa Maria - RS, Outubro de 2012
Utilização dos algoritmos Perceptron Multicamadas e J48
Para Auxiliar em Diagnósticos Médicos
Vania Cristina Bordin Freitas1, Simone R. Ceolin1, Sylvio André Garcia Vieira1
1
Unifra – Centro Franciscano
[email protected], [email protected], [email protected]
Resumo. A má respiração na infância pode acarretar alterações posturais para a vida
adulta. Com base nessa informação é realizado a mineração de dados na base de dados
Respiradores_Bucal_Nasal com a utilização dos algoritmos perceptron multicamadas e
o J48 com intuito de auxiliar nos diagnósticos médicos. Os resultados obtidos na
mineração de dados foram 90,76% de acertos com o algoritmo J48 e 100% de acertos
com algoritmo perceptron multicamadas.
1.Introdução
A mineração de dados vem ganham um espaço cada vez maior entre as empresas,
devido aos acúmulos de informações que se julgam necessárias para seu crescimento.
Essas informações não seriam nítidas sem o auxilio de um mecanismo, ferramenta que
indicasse resultados mais eficientes. Em busca disso, a mineração de dados está presente
em diversas áreas como da economia, medicina, astronomia, engenharia entre outras
[Carvalho 2005]. Dentre essas, ressalta-se sua utilização em diagnósticos médicos em
crianças com alterações posturais em virtude da respiração bucal.
Pensando nisso, esse trabalho busca realizar a mineração dados na base de dados
Respiradores_Bucal_Nasal com a utilização de dois algoritmos, Perceptron
Multicamadas e J48 presentes na ferramenta Waikato Environment for Knowledge
Analysis (WEKA) a fim de obter resultados que poça vir ajudar nos diagnósticos
médicos.
2. Metodologia
Para a elaboração deste trabalho foi utilizado uma base de dados cedidos pela
Universidade Federal de São Paulo – Escola Paulista de Medicina (UNIFESP) [Mancini
Et Al. 2007]. Onde foram analisadas 52 crianças, sendo 30 respiradoras bucais e 22
respiradores nasais [Mancini Et Al. 2007]. Os atributos da base de dados analisados são
lordose cervical, lordose lombar, cifose torácica, posição da pelves, excursão do
diafragma do lado direito, excursão do diafragma do lado esquerdo peso e altura para
cada paciente com respiração bucal e nasal.
Para o treinamento da base de dados Respiradores_Bucal_Nasal é necessário
dividi-la em registros, sendo uma parte utilizada para treinar em conjunto e o restante
124
Anais do XI Simpósio de Informática da UNIFRA - SIRC2012
ISSN: 2175-0955 Santa Maria - RS, Outubro de 2012
para testar os registros. Deste modo, 70% do banco de dados devem estar intercalados
entre respirador bucal e respirador nasal e posteriormente deve-se selecionar o Use
training set para treiná-lo, pois assim é possível descobrir relações de predições. Logo
após para a validação do treinamento, o restante dos dados são testados em arquivos
individuais no Supplied test sets para garantir a precisão do modelo.
3. Resultados
Os resultados encontrados podem ser observados na Tabela1 a seguir.
Tabela 1: Resultados da mineração de dados alcançados com os algoritmos perceptron
multicamadas e J48.
Com base nas informações obtidas na mineração de dados e exibidas na Tabela 1,
percebesse que a classificação entre os algoritmos alcançou bons resultados, com
90,76% de acerto com o algoritmo J48 e 100% de acertos no algoritmo perceptron
multicamada em respiradores bucais e nasais.
4. Referências Bibliográficas:
CARVALHO, L. V. (2005) DataMing: A mineração de dados no marketing, medicina,
economia, engenharia e administração. Rio de Janeiro, Ciência Moderna.
MANCINI ET AL. (2007) Aplicação de Redes Neurais Artificiais na Classificação de
Padrões
Posturais
em
Crianças
Respiradoras
Bucais
http://seer.ufrgs.br/rita/article/view/rita_v14_n2_p91-107, Janeiro 2012.
125
e
Nasais,
Anais do XI Simpósio de Informática da UNIFRA - SIRC2012
ISSN: 2175-0955 Santa Maria - RS, Outubro de 2012
Integração de Serviços para Publicação Eletrônica de
Dados
Fernanda Cassol Coradini, Alexandre de O. Zamberlan
Ciência da Computação e Sistemas de Informação
Centro Universitário Franciscano (UNIFRA)
Cep. 97010 – 032 – Santa Maria – RS – Brasil
[email protected], [email protected]
Resumo. Este trabalho visa projetar e desenvolver uma estrutura para
publicação de dados organizacionais em meio eletrônico, onde poderão ser
divulgadas, de maneira segura, dados de receita e de despesa de organizações
não governamentais, empresas privadas e demais instituições.
1. Introdução
Atualmente, a divulgação de dados gerenciais tornou-se uma necessidade
organizacional. Para as organizações não governamentais (ONGs) é importante a
divulgação de receitas e despesas, para com isso justificar o emprego do dinheiro
recebido em doações. Como também, é importante para empresas privadas a divulgação
de investimentos na área de responsabilidade social, e com isso aumentando as vendas.
No caso de ONGs, a divulgação de dados financeiros tornou-se importante
inclusive devido à parceria com o governo, a fim de garantir transparência no
investimento do dinheiro público. Nesses casos, a publicação dos dados em meio
eletrônico facilitaria muito o acesso da população aos dados da organização. Além do
mais, com a transparência das receitas e despesas a população iria sentir-se mais segura
para realizar doações, inclusive incentivando as pessoas a fazê-las.
Para organizações privadas a divulgação de dados gerenciais e financeiros pode
ter aspectos muito importantes na parte de gerência e tomada de decisões. Mediante o
uso dessas informações, gerentes e funcionários responsáveis por tomadas de decisões,
podem consultar via web informações importantes para resolução de problemas.
Também, a divulgação de determinados dados organizacionais à população pode ser um
fator diferencial no marketing da empresa, como por exemplo, a divulgação de auxílio a
projetos sociais, incentivo ao primeiro emprego e inclusive programas governamentais
de inclusão social. Tudo isso para garantir seu espaço no mercado e ampliá-lo.
De acordo com O´Brien (2010) um sistema de informação é “um conjunto
organizado de pessoas, hardware, software, redes de comunicações e recursos de dados
que coleta, transforma e dissemina informações em uma organização”.
Esses sistemas produzem informação que são dados apresentados de forma
significativa e útil para seres humanos [Laudon 2011]. De posse desses dados, as
organizações empresariais visam à resolução de problemas e desafios. E para alcançar
esses objetivos, têm-se vários tipos de sistemas de informação, como por exemplo,
Sistemas de Processamento de Transações, Sistemas de Apoio à Decisão, Sistema de
126
Anais do XI Simpósio de Informática da UNIFRA - SIRC2012
ISSN: 2175-0955 Santa Maria - RS, Outubro de 2012
Apoio ao Executivo, Sistemas Especialistas e Sistemas de Informação Gerenciais, que é
o modelo abordado neste trabalho.
2. Desenvolvimento
Esta proposta, busca resumir o banco de dados de determinada organização, pública ou
privada, transformando os dados de interesse para publicação em arquivos XML,
flexíveis para diferentes plataformas. Esses dados podem ser disponibilizados para a
população ou ficar a nível organizacional. A criação do banco de dados resumido torna
o acesso ao mesmo mais rápido e evita sobrecarga no servidor da organização.
Dessa forma, para a implementação da estrutura proposta, será utilizado o
processo de desenvolvimento de software iterativo incremental, que é, segundo Booch,
Rumbaugh e Jacobson (2000), um processo que envolve o gerenciamento de sequências
de versões executáveis e a integração contínua da arquitetura do sistema para a produção
dessas versões, de maneira que cada nova versão incorpore os aprimoramentos
incrementais em relação às demais. Para o processo de modelagem será usado a
diagramação Unified Modeling Language (UML), definida como uma linguagem para
especificar, visualizar, construir e documentar os artefatos de sistemas de software, bem
como para modelar negócios e outros sistemas que não sejam de software [Larman
2004]. Para a implementação do sistema, serão utilizadas as seguintes tecnologias:
Delphi 2010 como ambiente de desenvolvimento; MySQL 5.5 como a base de dados de
código aberto; a linguagem de marcação estendida (XML) como linguagem para
formatação e publicação de bases de dados resumidas.
Considerações finais
A dinâmica de funcionamento da estrutura proposta prevê a implantação de um
serviço acionado automaticamente, com frequência definida pela organização que usar o
sistema, o qual inicia a geração dos dados que serão publicados. O fluxo inicia-se
quando o serviço é disparado. Na sequência, a base de dados é lida, os dados são
convertidos no formato XML e os dados de entrada são validados. Finalmente, os dados
resumidos são disponibilizados.
Referências bibliográficas
Booch, Grady; Rumbaugh, James; Jacobson, Ivar. (2000) “UML: guia do usuário”,
Editora Campus LTDA, Rio de Janeiro, RJ.
Larman, Craig (2004) “Utilizando UML e padões: uma introdução à análise e ao projeto
orientados a objetos e ao Processo Unificado”, Bookman, 2 ed. Porto Alegre, RS.
Laudon, Kenneth C.; Laudon, Jane P. (2011) “Sistemas de informação gerenciais:
administrando a empresa digital”, Pearson Prentice Hall , 9 ed. São Paulo, SP.
O’brien, James A. (2010) “Sistemas de Informação: e as decisões gerenciais na era da
internet”, Saraiva, 3 ed. São Paulo, SP.
127
Anais do XI Simpósio de Informática da UNIFRA - SIRC2012
ISSN: 2175-0955 Santa Maria - RS, Outubro de 2012
ParaLiver – Ferramenta de análise e aprendizagem de
padrões em dados em transplante de fígado
Pedro A. Guerrato1, , Cristina Correa Oliveira 2, Alex Jones Flores Cassenote3, Jair
Minoro Abe4
1,2
3
IFSP – Instituto Federal de Educação Ciência e Tecnologia de São Paulo
Campus Bragança Paulista – Bragança Paulista, SP – Brasil
Graduate Program in Infectious and Parasitic Diseases, Medicine College of São Paulo
University, São Paulo - Brazil.
2,4
Graduate Program in Production Engineering - Paulista University
[email protected], [email protected], [email protected],
[email protected]
Abstract. This paper presents a purpose of a web application, by using
desktop and mobile clients, informing the liver availability for a hospital
transplant team in the state of Sao Paulo. The application uses an inference
engine built with Paraconsistent Artificial Neural Network cells; the network
will be trained to receive laboratory tests and figure out the Meld donor.
Resumo. Este artigo apresenta a proposta de uma aplicação web, utilizando
clientes desktop e móveis, informando a disponibilidade de um fígado à equipe
de transplante de um hospital do estado de São Paulo. A aplicação utilizará
um motor de inferência construído com células da Rede Neural Artificial
Paraconsistente; a rede será treinada para receber exames laboratoriais e
calcular o Meld do doador.
1. Introdução
Este artigo apresenta uma proposta de software de apoio a decisão para auxiliar o
especialista de transplante no recebimento de informações sobre a disponibilidade de
órgãos a serem transplantados, aumento o fluxo de informação entre hospitais
conveniados com a unidade transplantadora de São Paulo, maximizando assim, o
sucesso no transplante de fígado.
A aplicação será construída utilizando Rede Neural Artificial Paraconsistente,
baseada na Lógica Paraconsistente Anotada Evidencial Eτ.
2. Contexto
No ano de 2009, quando refeito o Regulamento Técnico do Sistema Nacional de
Transplantes estimou-se que a fila [Galvão 2011] de espera para transplante de órgãos é
de aproximadamente setenta mil pacientes. Entre os setenta mil pacientes que estão na
fila de espera, os de transplante de fígado estão sujeito a restrições como tempo de vida
do órgão para transplante, rejeição e compatibilidade com o doador, ou seja, tendo o
fígado o tempo máximo de resistência fora do organismo de 24 horas, e levando em
128
Anais do XI Simpósio de Informática da UNIFRA - SIRC2012
ISSN: 2175-0955 Santa Maria - RS, Outubro de 2012
consideração que o mesmo pode ser rejeitado pelo organismo de um receptor, torna-se
imprescindível que seja encontrado um receptor que tenha compatibilidade com o
organismo do doador do órgão.
3. Proposta
Construir um software para auxiliar a tomada de decisão para a aceitação ou não de um
fígado a ser transplantado.
Utilizando a Lógica Eτ, será construída a Rede Neural Artificial Paraconsistente
(RNAP) [Silva Filho 2008], que por sua vez utiliza dez tipos de células para sua
formação. Quando interligadas de acordo com os princípios e regras da lógica, estas
células permitem que a rede tenha capacidade de aprender, analisar e decidir por meio
de padrões. Inicialmente, serão utilizadas as células paraconsistentes de análise, de
aprendizagem e de decisão.
A arquitetura da aplicação, conforme Figura 1, conterá o cliente web, para os
hospitais conveniados do estado disponibilizem os dados do doador; o servidor de
transplante conterá o motor de inferência que calculará o grau de evidência favorável
para a aceitação do órgão. Após a aceitação do órgão, o servidor enviará mensagem para
a equipe de transplante a fim de notificá-los sobre a disponibilidade de um órgão a ser
transplantado. Será utilizado o D-Meld (Model for End-stage Liver Disease)
[Halldorson, 2009], cálculo utilizando exames laboratoriais do doador, variando de 6 a
40 para predizer o tempo de vida do enxerto no doador, para treinar a RNAP.
Figura 1 - Diagrama de Implantação
4. Bibliografia
Silva Filho, J. I., Abe, J. M. and Torres, G. L. (2008), “Inteligência Artificial com as
Redes de Análises Paraconsistentes: Teorias e Aplicações”. LTC.
Halldorson, J. B., Bakthavatsalam, R., Fix, O., Reyes, J. D. and Perkins, J. D. (2009),
“D-Meld, a Simple Predictor of Post Liver Transplant Mortality for Optimization of
Donor/Recipient Matching”.
Galvão, L. (2011), “Brasil bate recorde em doação de órgãos”
http://portal.saude.gov.br/portal/aplicacoes/noticias/default.cfm?pg=dspDetalheNoticia
&id_area=124&CO_NOTICIA=12289, Agosto.
129
Anais do XI Simpósio de Informática da UNIFRA - SIRC2012
ISSN: 2175-0955 Santa Maria - RS, Outubro de 2012
Aplicação de Árvores de Decisão na definição das regras
da evolução de feridas.
Sylvio A. G. Vieira1, Elenice S. R. Martins1, Solange C. S. M. Hoelzel2, Vanilde
Bisognin2
1
Alunos doutorado em Nanociências – Centro Universitário Franciscano (UNIFRA)
2 Professores doutorado em Nanociências – Centro Universitário Franciscano
(UNIFRA)
Rua dos Andradas 1614 - 97.110-000 – Santa Maria – RS – Brazil
{Sylvio, elenicemartins}@unifra.br
Resumo. Este trabalho tem o objetivo de definir as regras necessárias à
modelagem da evolução de feridas. Apos as medições das feridas realizadas
em laboratório, devidamente acompanhada por profissionais, registrou-se o
quadro evolutivo destas de acordo com os medicamentos aplicados, na forma
livre e nanoencapsulada. Os resultados foram comparados e aplicados a
mineração de dados que definiu as regras permitindo desenvolver o seu
mapeamento.
1. Introdução
Toda e qualquer lesão que leve à descontinuidade do tecido pode ser chamada de ferida.
As lesões podem atingir desde a epiderme até estruturas mais profundas como
músculos, articulações, tendões, ossos ou qualquer outra estrutura do corpo [Dealey
2008]. A cicatrização é um processo que envolve a organização celular, sinais químicos
e a matriz extracelular, sendo um processo complexo com objetivo de reparar os
tecidos, buscando o fechamento rápido da lesão [Mendonça e Coutinho Netto 2009].
“Mineração de dados é a exploração e a análise, por meio automático ou
semiautomático, de grandes quantidades de dados, a fim de descobrir padrões e regras
significativos” [Berry e Linoff 1997, p.5]. Na mineração de dados, há um processo de
aprendizagem em que alguns dos dados são oferecidos a uma ferramenta de mineração,
como por exemplo, o “R” e o “Weka”. Durante o processo, a ferramenta aprende os
padrões existentes na combinação de características. Assim, pode testar os dados novos
e comparar com os padrões criados, classificando os dados em duas ou mais classes
distintas [Haykin 2001]. Neste contexto aplicou-se o algoritmo de mineração de dados
para classificar os dados evolutivos da cicatrização na aplicação de fármacos, em suas
formas gel e nanoestruturada, em comparativo com um grupo controle em feridas.
O objetivo deste trabalho é identificar dentre os grupos, se há um padrão na
evolução do tratamento das feridas, de acordo com o medicamento utilizado,
independente do tamanho original da ferida. Para assim, definir as regras que serão
utilizadas no mapeamento evolutivo. Este trabalho se justifica pela razão de contribuir
para a classificação, permitindo intuir o prazo de cura, de acordo com o tamanho da
ferida e com a medicação utilizada. Trata-se de atribuir ao algoritmo funções empíricas.
130
Anais do XI Simpósio de Informática da UNIFRA - SIRC2012
ISSN: 2175-0955 Santa Maria - RS, Outubro de 2012
2. Metodologia
Neste trabalho, a base de dados foi criada a partir de observações no tratamento de 32
feridas em pacientes voluntários. A coleta dos dados foi realizada no período de maio a
dezembro de 2009, no Sistema Integrado de Saúde (SIS), na sala de curativos do curso
de Enfermagem (sala 312, P.17) no Centro Universitário Franciscano- UNIFRA, no
município de Santa Maria-RS. As feridas foram tratadas durante um período de 90 dias
e ou até completar a cicatrização da lesão. Para a mensuração da área de cicatrização,
Foram realizadas as medidas horizontais (MH) e medidas verticais (MV) e assim
calculada a área total da lesão, utilizando o software Adobe Photoshop CS2 (versão
9.0), Os pacientes que aceitaram participar desse estudo, assinaram o Termo de
Consentimento Livre e Esclarecido previamente aprovado no comitê de Ética e Pesquisa
do Centro Universitário Franciscano, registro no CONEP nº1246, CEP/UNIFRA nº
014.2009.2 . Os dados foram submetidos a ferramenta Weka, com a utilização de um
algoritmo de arvore de decisão, chamado RandomTrees, nativo da ferramenta em sua
versão 3.6.8, par a plataforma Macintosh.
3. Conclusões
O algoritmo teve condições de separar todas as 3 classes de medicamentos
utilizados. A árvore gerada pelo algoritmo será utilizada no mapeamento evolutivo das
cicatrizações das feridas, permitindo visualizar sua melhora de acordo com o prazo e o
tipo de concentração do fármaco aplicado.
4. Referências bibliográficas
Berry, M.J.A. and Linoff, G. (1997) “Data mining techniques.” John Wiley & Sons, Inc.
New York.
Dealey, C. (2008) “Cuidando de feridas: um guia prático para enfermeiros” 3ed.
Atheneu Editora., São Paulo.
Haykin, S. (1999) “Neural Networks - A Compreensive Foundation.”, 2nd edition;
Prentice-Hall; New Jersey.
Mendonça, R.J; Coutinho Netto, J. (2009) “Aspectos celulares da cicatrização”. Anais
Brasileiros de Dermatologia., São Paulo, 84(3):257-62.
131
Anais do XI Simpósio de Informática da UNIFRA - SIRC2012
ISSN: 2175-0955 Santa Maria - RS, Outubro de 2012
Serviços Microcontrolados em Ambientes Inteligentes
Reiner Franthesco Perozzo1, Alexandre de Oliveira Zamberlan1
1
Ciência da Computação – Centro Universitário Franciscano (UNIFRA)
Santa Maria – RS – Brasil
[email protected], [email protected]
Resumo. Avanços nas áreas de eletrônica e de sistemas de automação
predial/residencial tornam viáveis as construções dos chamados “Ambientes
Inteligentes”, ambientes dotados de sensores, controladores, interfaces
homem-máquina e atuadores capazes de interagir e se adaptar à presença de
usuários, facilitando as operações destes sobre o ambiente e otimizando as
condições operacionais. Neste trabalho é proposta uma arquitetura
computacional, a qual permitirá a utilização de serviços e dispositivos de
automação baseados em microcontroladores.
Palavras-chave: Ambientes Inteligentes, Microcontroladores, Sistemas de
Informação.
Abstract. Advances in areas of Electronics and Home Automation Systems
make available the building of the called “Intelligent Environments”,
environments with sensors, controllers, man-machine interfaces and actuators
which are able to interact and adapt them to the users presence, making
simpler their operations on the environment and optimising the operational
conditions. In this work, it is proposed a computational architecture which
will permit the use of services and automation devices based on
microcontrollers.
Keywords: Intelligent Environments, Microcontrollers, Information Systems.
1. Introdução
Os avanços que têm ocorrido no desenvolvimento de dispositivos eletrônicos,
microcontroladores e software estão influenciado consideravelmente o desenvolvimento
de sistemas de automação, tanto os industriais quanto os sistemas de automação predial/
residencial [Anastasopoulos et al. 2005]. Enquanto as arquiteturas antigas eram bastante
centralizadas e pouco flexíveis, os sistemas modernos são altamente descentralizados e
consistem em dispositivos autônomos baseados em microcontroladores, os quais são
capazes de processar a informação localmente e tomar decisões [Helal 2005].
No contexto da automação predial/residencial esses sistemas são conhecidos
como Ambientes Inteligentes (AmI), em que há uma mudança de paradigma: deixa-se
de lado o fato de apenas controlar dispositivos e parte-se para um mundo onde os
dispositivos se autogerenciam, estando cientes (aware) de tudo que os cercam [Ark e
Selker 1999], [Ducatel 2001]. Nesses ambientes são comumente encontrados
dispositivos microcontrolados, incluindo sensores, atuadores e, principalmente, sistemas
inteligentes para o gerenciamento e otimização de tarefas [Edwards 2006]. Um exemplo
de projeto que vem obtendo destaque nessa area é liderada pela empresa Microsoft,
132
Anais do XI Simpósio de Informática da UNIFRA - SIRC2012
ISSN: 2175-0955 Santa Maria - RS, Outubro de 2012
através de uma proposta [Easy Living 2008] que busca o desenvolvimento de novas
tecnologias para oferecer suporte na criação dos AmI, oferecendo interoperabilidade de
dispositivos eletrônicos.
2. Desenvolvimento
Este trabalho consiste na criação de uma arquitetura computacional capaz de permitir a
utilização de serviços e dispositivos de automação baseados em microcontroladores, os
quais estão inseridos em AmI. O trabalho busca desenvolver uma estratégia para
garantir a interoperabilidade entre dispositivos de automação e permitir a interação entre
usuários e AmI.
Assim, o trabalho proposto contempla os seguintes recursos: (i) um sistema de
informação, baseado em hardware e software, capaz de oferecer a descoberta, a
visualização e a interação com serviços e dispositivos de automação que são inseridos
dinamicamente na rede de comunicação de dados do AmI; (ii) um protocolo que
permite a descoberta de serviços e a interoperabilidade entre dispositivos de automação
microcontrolados e o AmI; (iii) um sistema adaptativo para gerenciamento do AmI
através de diferentes plataformas computacionais móveis.
3. Conclusões
Em um AmI, o usuário pode dispor de uma variedade de plataformas computacionais
que permitem a interação com os dispositivos microcontrolados e com serviços de
automação que eles oferecem. Entretanto, um dos principais desafios encontrados nessa
área é a interoperabilidade entre dispositivos e sistemas de automação, uma vez que há
diversas tecnologias e padrões de comunicação disponíveis atualmente. No meio
acadêmico, muitos autores têm proposto diferentes estratégias para resolver esse
problema de interoperabilidade, através de infraestruturas que linearizem a comunicação
em tempo de execução. Porém, é necessário mais do que equipamentos para atingir tal
objetivo: é preciso que estes dispositivos, independente da tecnologia que estejam
utilizando, sejam sensíveis ao contexto, capazes de responder autonomamente às
necessidades do usuário, com integração transparente ao AmI.
References
Anastasopoulos, M.; et al. (2005) “Towards a Reference Middleware Architecture for
Ambient Intelligent Systems, Proceedings of the Workshop for Building Software for
Pervasive Computing.
Ark, W. S. e Selker, T. (1999) “A look at human interaction with pervasive computers”.
IBM Systems Journal, Riverton, v. 38, n. 9, p. 504 – 507.
Ducatel, K. et al. (2001) “Scenarios for ambient intelligence (ISTAG Report)”. Seville:
Institute for Prospective Technological Studies (European Commission).
Easy Living (2008) Microsoft easy living project. Disponível
<http://research.microsoft.com/easyliving>. Acesso em: 30 out. 2008.
em
Edwards, W. K. Discovery Systems in Ubiquitous Computing. IEEE pervasive
computing, New York, v. 5, n. 2, p. 70-77, Apr./June 2006.
Helal, S. et al. (2005) “The Gator Tech Smart House: A Programable Pervasive Space”,
IEEE Pervasive Computing, p 64 - 74.
133
Anais do XI Simpósio de Informática da UNIFRA - SIRC2012
ISSN: 2175-0955 Santa Maria - RS, Outubro de 2012
Benchmark MongoDB
Yago Damasceno Portella
Centro Universitario Franciscano (UNIFRA)
Santa Maria - RS – Brasil
[email protected]
Resumo. Este artigo trata-se da comparação de dois banco de dados (DB), a
comparação foi feita para se ter uma análise em qual banco de dados tem o
melhor desempenho na inserção. Os DB’s utilizados foram o MySQL e o
MongoDB. Pois cada dia se precisa de mais agilidade tanto em buscas e
inserções. Nos tempos de hoje não é mais viável ficar muito tempo esperando
uma inserção em massa (possuem uma grande quantidade de registros sendo
inseridos na base de dados) e buscas complexas. Foi utilizado o ambiente
JAVA para fazer as comparações entre os DB’s efetuando inserções com
grandes quantidade de dados.
1. Introdução
Neste benchmark sera utilizados os seguintes bancos de dados o MySQL e o MongoDB,
o MySQL é um banco de dados relacional que utiliza linguagem Structure Query
Language (SQL) é mantido pela Oracle e o MongoDB é um banco de dados onde não se
utiliza linguagem SQL ele é baseado na linguagem JSON e é mantido pela 10Gen. O
objetivo deste artigo é mostrar qual banco de dados tem melhor performance na
inserção e leitura dos dados.
Os testes foram feitos utilizando a linguagem de programação Java. A conexão
dos bancos de dados com a plataforma Java foi feito através do Java Database
Connectivity (JDBC) disponibilizados por suas empresas, a maquina em que os testes
rodaram é um i7 950 com 4GB de memoria RAM, com o sistema operacional Debian
6.0.5, a versão dos bancos de dados é as seguintes MySQL 5.1.63 e do MongoDB 2.0.7.
Os testes foram realizados inseridos os seguintes dados: Nome, sexo, estado civil e
idade. Foi efetuado 4 tipos de inserções com 20 mil, 50 mil, 100 mil e 500 mil linhas. E
a leitura foi efetuada sobre as 500 mil linhas.
2. MongoDB
O MongoDB é um banco de dados da família Not Only Structure Query Language
(NoSQL), ele é desenvolvido na linguagem de programação C++, é escalável, possui
alta performance e é open source. O mongoDB é orientado a documentos. Nele não
existe tabelas e sim coleções. Onde se pode associar as tabelas com as coleções, as
linhas com os documentos e um documento é composto por 1 ou mais campos onde se
pode associar com as colunas. Mas a maior diferença entre o MySQL e o MongoDB é
que nele não temos um modelo fixo de dados como ocorre nas tabelas do MySQL.
Exemplo uma tabela contem os campos nome e idade, para criar uma nova coluna os
demais dados iriam receber 'NULL', no MongoDB não ocorre isto pois nele não precisa
se ter um padrão sua coleção no casso citado anteriormente para inserir um novo
134
Anais do XI Simpósio de Informática da UNIFRA - SIRC2012
ISSN: 2175-0955 Santa Maria - RS, Outubro de 2012
registro basta incluir este registro nas próximas inserções que ele não afetara os dados
anteriores. Com isso ele se torna muito mais flexível do que os MySQL.
3. Comparação
Para os testes ocorrem foi criado 4 vetores, foi utilizado um vetor para nome, sexo,
estado civil e idade. Os vetores foram manipulados de forma fictícia pois os nomes
utilizados era fulano mais o seu respectivo numero no vetor, o sexo e a idade foram
gerados de forma aleatoriamente.
Para calcular o tempo de inserção foi utilizado o System.currentTimeMillis();
que contem no Java, ela era inicializada antes de entrar no 'FOR' das inserções no banco
de doas e finalizada no termino do 'FOR'.
Nas inserções de 100 mil e 500 mil registros a engine do MySQL teve que ser
alterada do MyISAM para o InnoDB, utilizando o MyISAM não era possível inserir os
registros, quando ele atingia a marca de 70 80 mil registros inseridos ele travava e
cancelava a inserção dos demais registros, por este motivo foi efetuada a troca de
engine.
A tabela abaixo mostra os tempos que cada banco de dados levou para fazer a
inserção dos registros.
Nº de Registros
20000
50000
100000
500000
MySQL
2842ms
4748ms
501946ms
2263733ms
MongoDB
719ms
1047ms
1600ms
11510ms
Tabela 1: Mostra os tempos em MS que cada banco de dados levou para efetuar a
inserção.
4. Considerações Finais
Foi observado uma grande diferenças entre os resultados entre a velocidade do
MongoDB e do MySQL, onde o MongoDB superou o MySQL em todas as inserções e
com uma diferença muito mais significativas nas inserções com grande numero de
registros a serem inseridos chegando a ser 196 vezes mais rápido que o MySQL na
inserção de 500 mil registros. Para o futuro quero fazer as comparações utilizando o
Apache Jmeter, fazer testes de buscas e updates e também verificar a quantidade de
memoria e processador gasto durante os testes.
5. Referencias
Seguin, Karl. (2012) “The Little MongoDB Book” https://github.com/karlseguin/thelittle-mongodb-book/blob/master/en/mongodb.markdown, Setembro.
Magnusson, Geir e Reinero, Bryan (2012) “Java Language Center”,
http://www.mongodb.org/display/DOCS/Java+Language+Center, Setembro.
Merriman,
Dwight,
(2011)
http://www.mongodb.org/display/DOCS/Philosophy, Outubro.
“Philosophy”
Ramalho,
Luciano
(2012)
“Open
Library
no
MongoDB”,
http://www.slideshare.net/ramalho/open-library-no-mongodb, Outubro.
135
Anais do XI Simpósio de Informática da UNIFRA - SIRC2012
ISSN: 2175-0955 Santa Maria - RS, Outubro de 2012
O X da Questão em Escolas e Pré-vestibulares
Mariele de Freitas Favero1 e Simone R. Ceolin2
1,2
Centro Universitário Franciscano (UNIFRA)
Rua dos Andradas1614 – 97.010-032 – Santa Maria – RS – Brasil
[email protected], [email protected]
Resumo. Esse trabalho tem como objetivo a criação de um software,
denominado o X da Questão, para auxiliar professores no desenvolvimento de
provas e trabalhos para alunos. X da Questão será desenvolvido com uma
interface amigável e guia de uso para que o professor consiga utilizá-lo de
maneira correta e satisfatória.
1. Introdução
A sala de aula é o lugar onde crianças e adultos aprendem conteúdos para se
tornarem pessoas mais capacitadas e ir em busca de objetivos e ideais. Professores e
alunos vivem em um ambiente, onde não utilizamos somente o quadro negro e papel
para escrever, mas, no qual a tecnologia chegou para fazer parte de suas vidas. Fica cada
vez mais evidenciado que a tecnologia precisa ser usada como um mecanismo de
auxílio para o aprendizado, porque as crianças aprendem a utilizar computadores,
smartphones, tablets nos primeiros anos de vida, tornando a criança totalmente
dependente dessas tecnologias para seu aprendizado e entretenimento (BASTOS, 1991).
Com o avanço das tecnologias, as escolas estão se adaptando cada vez mais com
o uso do computador para auxiliar no ensino, como por exemplo, elaboração de provas e
material didático. Fica a evidência que professores precisam correr contra o tempo para
aprender novos métodos de ensino utilizando a tecnologia. Geram-se então, conflitos e
questionamento sobre esses métodos. Será que um professor deve mudar o seu ensino
depois de anos? Será que o aluno aprende mais ou fica mais motivado utilizando os
benefícios que a tecnologia proporciona?
Através de muitas opiniões de professores e outros profissionais, foi detectado
uma grande dificuldade dos mesmos na elaboração de avaliações. A pesquisa de
questões em livros tornou-se um pouco obsoleta em função das tecnologias e disposição
de tempo. Também, os direitos autorais não permitem modificar as questões
disponibilizadas pelas instituições que oferecem vestibular. Por esse motivo, o software
X da Questão, será um software desenvolvido, para auxiliar professores e profissionais
da área, facilitando a elaboração de provas e trabalhos didáticos.
2. Metodologia
A elaboração do software “X da Questão” será desenvolvida utilizando uma linguagem
de programação voltada para a web e o banco de dados que será utilizado para o
desenvolvimento será analisado no decorrer da pesquisa. Também, a ferramenta será
136
Anais do XI Simpósio de Informática da UNIFRA - SIRC2012
ISSN: 2175-0955 Santa Maria - RS, Outubro de 2012
software livre e utilizará a área de Interface Humano Computador para o
desenvolvimento da mesma. Será utilizados os conceitos básicos da área para o
desenvolvimento da pesquisa, como por exemplo, como deve ser desenvolvido o
questionário, a interface da ferramenta, o guia de ajuda da ferramenta, entre outras
funcionalidades importantes para que o usuário fique satisfeito com a mesma. Para
validação da ferramenta será utilizado um banco de provas de uma universidade X, que
será pesquisada no decorrer do trabalho (INTERBITS, 2012).
3. Trabalho Relacionado
O software SuperPro foi criado pela empresa Interbits para favorecer professores de
Ensino Médio e Fundamental. Porém o software possui inúmeros problemas, sendo eles
interface, compatibilidade e de alto custo. A Compatibilidade é um problema que
dificulta bastante, pois o software estudado só funcionava no ambiente Windows e na
versão XP. Hoje, em que os sistemas operacionais muito difundidos, assim como Linux,
MacOX e até mesmo as versões mais recentes do Windows (Windows 7) esse quesito
torna-se um fator de dificuldade.
4. X da questão
O software X da questão tem como objetivo ser um banco de questões para auxiliar
professores de Ensino Fundamental, Ensino Médio e professores de Pré-Vestibulares. O
mesmo terá questões de todos os níveis de dificuldade onde o professor a qualquer
momento seleciona a área do conhecimento que deseja trabalhar. O conteúdo e o
assunto, o usuário terá as questões com aqueles requisitos que escolheu em todos os
níveis com seus respectivos gabaritos. O software tem como base a melhoria de todos os
problemas do software SuperPro, porém não possuindo a versão executável e somente
online, para que o professor possa acessar o banco de questões do lugar que ele estiver.
Porém o professor só terá direito a acessar a disciplina que ele leciona, tornando-o assim
um software mais “leve” para acesso. O software terá interface de ajuda, ou seja, toda
página web, com ajuda em tempo integral junto do professor. Assim o mesmo, não terá
dificuldade de montar sua prova. Como a versão é online, a compatibilidade de
navegadores é a questão. O software poderá ser visualizado e utilizado em qualquer
navegador, do mais atual ao mais antigo.
5. Referências
INTERBITS. Disponível em: http://www.superprofessorweb.com.br/> Acesso em:
14set. 2012.
BASTOS, João A. Souza Leão de Almeida. A educação técnico-profissional:
fundamentos, perspectivas e prospectivas. Brasília: Senete, 1991.
137
Anais do XI Simpósio de Informática da UNIFRA - SIRC2012
ISSN: 2175-0955 Santa Maria - RS, Outubro de 2012
Especificação de um processo de desenvolvimento
distribuído de software com OpenUP
Catherine de L. Barchet1, Tiago R. da Rocha2
1
2
Acadêmica do Curso de SI – Centro Universitário Franciscano (UNIFRA)
Santa Maria – RS – Brasil
Professor dos Cursos de SI e CC – Centro Universitário Franciscano (UNIFRA)
Santa Maria – RS – Brasil
[email protected], [email protected]
Resumo. Este artigo tem por objetivo apresentar um proposta de utilização do
OpenUP no DDS (desenvolvimento distribuído de software), realizando todas
as mudanças necessária nos processos para que torne possível a aplicação em
equipes distribuídas.
1. Introdução
Segundo as definições do ECLIPSE FOUNDATION (2012), o OpenUp destina-se à
pequenas equipes que trabalham juntas em um mesmo espaço físico, necessitando de
total iteração face-a-face diariamente para engajar-se, sendo assim, não possuí técnicas
para o desenvolvimento distribuído, necessitando adaptações nos seus processos
internos principalmente no que diz respeito a comunicação para aplicação em equipes
distribuídas. Tendo como um dos objetivos a minimização dos problemas gerados pelo
desenvolvimento de software como comunicação, fusos horários, reuniões, confiança
entre as equipes, entre outros. O desenvolvimento distribuído de software (DDS), tem se
tornado cada vez mais comum tendo em vista razões econômicas e tecnológicas
(HUZITA, 2008).
Como conceito propriamente dito do que é o DDS, Prikladnicki (2006) afirma
que consiste na colaboração e cooperação entre os setores de uma organização e pelo
surgimento de grupos de desenvolvedores que trabalham em equipes localizadas em
cidades ou países diferentes, ou seja, independentemente do seu nível de dispersão. O
objetivo deste trabalho é adaptar o OpenUp para que seja possível sua utilização em
equipes distribuídas, de modo que fique alinhado com as especificações para um
processo distribuído de acordo com características do DDS propostas por autores que
aqui foram estudados.
2. OpenUP
Segundo Cunha (2007), OpenUP/Basic define um conjunto sucinto de papéis, tarefas e
artefatos, em que são realizadas tarefas que utilizam e produzem artefatos. O OpenUp
foi desenvolvido pela IBM com base nos processos RUP e XP na expectativa de reunir
as melhores características de cada metodologia, é considerado um processo de
desenvolvimento de software iterativo podendo ser classificado como: Compacto,
Completo ou Extensível, ou seja, que sua estrutura e processos podem ser modificados
conforme particularidades de cada projeto (ECLIPSE FOUNDATION, 2012).
138
Anais do XI Simpósio de Informática da UNIFRA - SIRC2012
ISSN: 2175-0955 Santa Maria - RS, Outubro de 2012
3. Desenvolvimento Distribuído de Software
Juntamente com a solução para as exigências de mercado, surgiram com o DDS
algumas dificuldades e desafios para coordenação deste tipo de desenvolvimento. Essas
dificuldades estão relacionadas principalmente as características que definem o DDS:
dispersão geográfica, diferenças culturais e dispersão temporal, como por exemplo,
desafios em termos de pessoas, processos, tecnologia, gestão e comunicação (AUDY,
2007).
Os critérios que definem o desenvolvimento como distribuído é basicamente a
existência de equipes de trabalho em ambientes físicos diferentes, podendo existir
diferenças culturais e temporais, distribuição da equipe de desenvolvimento e
terceirização do desenvolvimento. Por se tratar de um tema recente o DDS, ainda é um
tipo de desenvolvimento novo no mercado e por esse motivo que encontramos alguns
desafios e problemas que devem ser sanados, desafios esses mencionados anteriormente.
4. Metodologia – definição de um processo distribuído baseado em openup
Após realizar estudo do OpenUp e DDS, serão feitas modificações nos processos
internos do OpenUp, ou seja, serão analisadas todas as fases, documentos, papéis e
artefatos, e realizados ajustes para que se consiga suprir todas os critérios do DDS,
permitindo a utilização do processo em ambientes distribuídos, para isso foram e ainda
estão sendo estudados diversos artigos que contemplem os temas OpenUp e DDS, e o
EclipseComposer.
5. Conclusões
Como resultado deste trabalho espera-se um modelo de processos baseado no OpenUp,
com todas as modificações necessárias para sanar as necessidades do DDS e pronto para
aplicação em ambientes de Desenvolvimento Distribuído de Software.
Como trabalhos futuros, sugere-se a aplicação do modelo em equipes de
desenvolvimento distribuídas.
Referências
HUZITA, E. H. M.; SILVA. C. A.; WIESE, I. S.; TAIT, T. F. C.; QUINAIA, M.;
SCHIAVONI, F. L. Um conjunto de Soluções para Apoiar o Desenvolvimento
Distribuído de Software. SBES. II. Workshop de Desenvolvimento Distribuído de
Software - WDDS. Anais... Campinas: São Paulo, 2008.
PRIKLADNICKI, R.; AUDY, J. L. N. “Uma Análise Comparativa de Práticas de
Desenvolvimento Distribuído de Software no Brasil e no exterior”. In: XX SBES Simpósio Brasileiro de Engenharia de Software, Florianópolis, 2006. p. 255- 270.
CUNHA, C. E. A. Utilizando OpenUP/Basic para Desenvolvimento de Aplicações
WEB. Trabalho de Graduação, UFP/PE, Recife, PE, Brasil, 2007.
ECLIPSE
FOUNDATION.
OpenUP.
Disponível
<http://www.eclipse.org/wikis/opeup>. Último acesso em: 30/08/2012.
em:
AUDY, J.L.N; PRIKLADNICKI, R. Desenvolvimento Distribuído de Software:
Desenvolvimento de Software com Equipes Distribuídas. Rio de Janeiro: Elsevier,
2007.
139
Anais do XI Simpósio de Informática da UNIFRA - SIRC2012
ISSN: 2175-0955 Santa Maria - RS, Outubro de 2012
Aplicação e Análise de Algoritmos de Mineração de Dados
no Processo de Detecção de Spam
Guilherme Chagas Kurtz1, Rodrigo Ramos Pacheco1
1
Centro Universitário Franciscano (UNIFRA)
Santa Maria – RS – Brazil
[email protected], [email protected]
Abstract. Currently a large part of the transactions and trades take place
through the exchange of e-mails, which became a powerful tool for
communication because it saves time and money. However, due to the growth
of social networks and advertisers, a problem arose in the e-mails received, a
large amount of unsolicited mail, spam. Therefore, in this study, a database
containing samples of legitimate email and spam will be analyzed using the
tool WEKA Data Mining. Then, three classification algorithms are applied,
and will make an analysis of their performance.
Resumo. Atualmente a grande parte das transações e negócios ocorrem
através da troca de e-mails, esta que se tornou uma ferramenta poderosa para
a comunicação, pois economiza tempo e dinheiro. Porém, devido ao
crescimento das redes sociais e anunciantes, surgiu um problema nos e-mails,
uma grande quantidade de mensagens não solicitadas, spams. Portanto, neste
trabalho, uma base de dados contendo amostras de e-mails legítimos e spams,
será analisada utilizando a ferramenta WEKA de Mineração de Dados. Em
seguida, três algoritmos de classificação serão aplicados, e será feita uma
análise de seus desempenhos.
1. Introdução
A classificação de e-mails com spam recebeu uma grande atenção pelos usuários, pois
ajuda a identificar as informações indesejadas e ameaças. Portanto, pesquisadores
tentam encontrar o melhor classificador para detectar e-mails de spam. Estes emissores
de spams, mais conhecido como spammers, se aproveitam da falta de conhecimento e
ingenuidade na maioria dos usuários, para se obter vantagens sobre os mesmos [Kumar,
Poonkuzhaali e Sudhakar 2012].
Mineração de dados, ou “data mining”, é o termo utilizado para nomear o
processo de análise de conjuntos de dados com o objetivo de encontrar padrões que
representem informações úteis [Fayyad, Piatetsky-Shapiro e Smyth 1996]. Serão
aplicados métodos de mineração de dados no processo de detecção de spam.
2. Objetivos
Neste trabalho, uma base de dados de spam da UCI Maching Learning [UCI 2012] será
analisada, utilizando a ferramenta de Mineração de Dados WEKA [Weka 2012], sendo
aplicados três algoritmos de classificação no processo de detecção de spam sobre a base
140
Anais do XI Simpósio de Informática da UNIFRA - SIRC2012
ISSN: 2175-0955 Santa Maria - RS, Outubro de 2012
de dados, analisando seu desempenho em classificar os e-mails sendo autênticos ou
spam.
Os algoritmos escolhidos para serem analisado são j48 que fornece uma
classificação de uma base de dados que é fornecida e gera um classificador na forma de
uma árvore de decisão, OneR que é um algoritmo de classificação simples, constrói
uma regra para cada atributo nos dados de treinamento e NaiveBayes que é um
algoritmo de classificação baseado no teorema de Bayes. Desta forma será feita uma
análise individual dos algoritmos, um comparativo entre eles, resultando em qual terá a
maior precisão de acerto em classificar os e-mails.
3. Justificativa
A escolha do algoritmo para realizar uma tarefa pode ser muitas vezes complexa.
Podem-se utilizar algoritmos diferentes para realizar a mesma tarefa, embora cada
algoritmo produza um resultado diferente, e alguns algoritmos podem produzir mais de
um resultado. Os algoritmos não devem necessariamente ser utilizados
independentemente. Em uma solução de mineração de dados, é possível, por exemplo,
utilizar algoritmos para explorar dados e em seguida utilizar outros algoritmos para
prever um resultado específico com base nesses dados.
4. Considerações Finais
Com a intenção de analisar os três algoritmos de mineração de dados no processo de
detecção de spam, elaborou-se, ao longo deste trabalho, um referencial teórico sobre o
tema proposto, para que pudessem ser observados os conceitos e definições dos
problemas gerados pelo spam. No decorrer do trabalho, será feita uma análise de seus
desempenhos em relação ao tempo necessário para a avaliação da base de dados, a
acurácia (taxa de acertos), a precisão dos algoritmos e as regras apresentadas, de forma e
definir qual deles apresenta uma melhor eficiência em relação à classificação destes emails analisados.
5. Referências
Weka. (2012) “Weka”, In:< http://www.cs.waikato.ac.nz/ml/weka/>.
UCI. (2012) “UCI Machine Learning Repository”, In:<http://archive.ics.uci.edu/ml/>.
Kumar, K.; Poonkuzhali; Sudhakar. (2012) “Comparative Study on Email Spam
Classifier using Data Mining Techniques”, In: Multiconference of engeninners and
computer scientists.
Fayyad, U.; Piatetky-Shapiro, G.; Smyth, P (1996).” Data Mining to Knowledge
Discovery in Databases”, In: American Association for Artificial Intelligence.
141
SIRC 2012 XI SIMPÓSIO DE INFORMÁTICA DA UNIFRA www.sirc.unifra.br 23 a 25 de Outubro de 2012 Realização:
Apoio:
Patrocínio:
Download

Anais - Unifra