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: