-
CAPA
UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE
UNIDADE ESPECIALIZADA EM CIÊNCIAS AGRÁRIAS
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE
SISTEMAS
André Gomes da Silva
POPGESTOR: SISTEMA DISTRIBUÍDO PARA GESTÃO DE RECURSOS
HUMANOS
Componente Vital de um Sistema de Gestão Empresarial (ERP)
Macaíba
2018
-
FOLHA DE ROSTO
André Gomes da Silva
POPGESTOR: SISTEMA DISTRIBUÍDO PARA GESTÃO DE RECURSOS
HUMANOS
Componente Vital de um Sistema de Gestão Empresarial (ERP)
Trabalho de conclusão de curso de graduação apresentado à
Unidade Acadêmica Especializada em Ciências Agrárias da Universidade Federal do Rio Grande do Norte como
requisito parcial para a obtenção do título de Tecnólogo (a)
em Análise e Desenvolvimento de Sistemas.
Orientador: Prof. Dr. Edson Moreira Silva Neto
Macaíba
2018
-
FICHA CATALOGRÁFICA
Universidade Federal do Rio Grande do Norte – UFRN
Sistema de Bibliotecas – SISBI
Catalogação de Publicação na Fonte. UFRN – Biblioteca Central Zila Mamede – Escola
Agrícola de Jundiaí – EAJ
-
FOLHA DE APROVAÇÃO
André Gomes da Silva
POPGESTOR: SISTEMA DISTRIBUÍDO PARA GESTÃO DE RECURSOS
HUMANOS
Componente Vital de um Sistema de Gestão Empresarial (ERP)
Trabalho de conclusão de curso de graduação apresentado à Unidade Acadêmica Especializada
em Ciências Agrárias da Universidade Federal do Rio Grande do Norte como requisito parcial
para a obtenção do título de Tecnólogo (a) em Análise e Desenvolvimento de Sistemas.
Aprovado em: ____ de _______ _____.
BANCA EXAMINADORA
__________________________________________
Prof. Dr. Edson Moreira Silva Neto – EAJ/UFRN (Orientador)
__________________________________________
Prof.ª Dr.ª Laura Emmanuella Alves dos Santos Santana de Oliveira – EAJ/UFRN
__________________________________________
Prof. Dr. Carlos Henrique Grilo Diniz – EAJ/UFRN
__________________________________________
Eng. Helton Pierre Lucena de Medeiros – UFRN/NURA/PoP-RN
-
DEDICATÓRIA
Dedico este trabalho primordialmente a Deus, por me conceder o dom da vida, aos meus pais
e demais familiares, professores e amigos que unanimemente me acolheram em suas orações
e apoio incondicional durante toda esta jornada.
-
AGRADECIMENTOS
Agradeço em primeiro lugar à Deus pelo cuidado, por não me deixar esquecer que não
estou só nesse caminho, por acalentar e acalmar a minha mente nas horas mais difíceis
possibilitando que a mesma estivesse sã para que os objetivos pudessem ser alcançados.
Aos meus pais, Everaldo Ferreira da Silva, Erivaldo Silva do Nascimento e Carmelúcia
Gomes de Lira Nascimento, pelas orações incessantes, estímulos diários e por sempre
acreditarem em mim, inclusive quando nem eu mesmo estava mais acreditando.
À minha irmã Thatiane Cristina e ao meu filho primogênito Gabriel Henrique, que
praticamente me obrigaram, no bom sentido da palavra, a prestar o ENEM no ano de 2015,
praticamente 20 anos após ter concluído os estudos. Vocês me proporcionaram a realização de
um sonho e assim me deram um bilhete premiado rumo ao conhecimento, ao crescimento
pessoal e profissional.
À minha companheira Samara Sousa Duarte pela paciência durante todo este processo
(risos). Ao meu filho caçula Enzo Gabriel pelo sorriso inspirador que durante os intervalos das
pesquisas e do desenvolvimento deste trabalho aliviaram e renovaram minhas forças.
A todos os meus professores da EAJ/UFRN que desde o primeiro período do TADS me
fizeram apaixonar pelo curso, passando conhecimentos com esmero, plantando junto comigo
as sementes que hoje germinam e me possibilitam vislumbrar um futuro melhor. Me sinto
orgulhoso em ter ao longo destes três anos usufruído do alto nível intelectual, profissional e
humano de cada um destes virtuosos educadores que compõem esta honrosa casa de ensino.
Em especial aos professores: Leonardo Rodrigues, por me apresentar ao mundo dos
microcontroladores, mundo este que faz parte deste trabalho; Laura Emmanuella, por me
ensinar como é fascinante o mundo da programação orientada a objetos, da leitura e da pesquisa;
Alessandra Mendes, pelo ensinamento de que o meu limite é imposto apenas por mim mesmo
e que no mundo do conhecimento mais vale uma derrota conquistada com coragem do que uma
vitória cômoda. Ensinamento aprendido professora; Edson Moreira, pela amizade, confiança e
apoio incondicionais, por disponibilizar toda infraestrutura do PoP-RN para que o
desenvolvimento deste trabalho fosse possível.
A todos os amigos distintos que fiz ao longo desta jornada na EAJ/UFRN e que levarei
pra vida, bem como a todo corpo de bolsistas, funcionários e coordenação do PoP-RN (local
onde estagiei por exatos dois anos). Em especial aos amigos Diego Amaral, Helton Pierre,
Mário Rolim, Bruno Oliveira, Eduardo Rocha, Gabriel Macedo, Thiago Dantas e Nicole
Rieckmann, que nos ajudaram no desenvolvimento direto deste trabalho atuando na construção
de toda infraestrutura física e lógica necessária. Jamais esquecerei vocês.
À Escola Agrícola de Jundiaí (EAJ) e Universidade Federal do Rio Grande do Norte
(UFRN) por todo apoio institucional dispensado para que pudéssemos concluir mais esta etapa
no dia de hoje.
-
EPÍGRAFE
“Cedo ou tarde você descobrirá a diferença entre saber o
caminho e percorrer o caminho.”
(Morpheus – Matrix)
-
RESUMO
Os avanços nas áreas de Internet e Tecnologia da Informação têm transformado a forma como
pessoas e organizações tangem suas vidas e negócios. Diante dessas transformações as
organizações têm se utilizado da Tecnologia da Informação como aliada no processo de
organização, processamento, otimização da informação e apoio à tomada de decisões pela alta
gestão. Essa tendência se consolida com o surgimento dos sistemas ERP (Enterprise Resource
Planning), por condensarem características direcionadas ao planejamento e gestão dos recursos
da organização, com base na informação gerada a partir da integração dos dados de todos os
seus departamentos em forma de relatórios, visando o alcance de metas, aumento da
produtividade e competitividade. O objetivo dessa monografia é apresentar o desenvolvimento
do POPGESTOR: Sistema Distribuído para Gestão de Recursos Humanos, como módulo de
controle do sistema ERP da organização PoP-RN. O POPGESTOR auxilia os profissionais de
Recursos Humanos, bolsistas e funcionários da organização nos processos de gestão da
informação, ponto eletrônico de bolsistas e meio de acesso ao prédio da organização, ambos
por leitura e autenticação biométrica (impressão digital). O sistema foi modelado com base na
linguagem UML (Unified Modeling Language), no modelo MER (Modelo Entidade
Relacionamento) e implementa o padrão arquitetural MVC (Model, View e Controller) em seus
artefatos de software, também é composto por cinco módulos distintos que trabalham
integrados, dos quais: três encontram-se em pleno funcionamento (Módulo de Cadastro
Biométrico – MCB, Módulo de Abertura de Porta Eletrônica – MAPE e Módulo Arduino de
Acionamento de Relé – MAAR), um em fase final de testes (Módulo de Leitura de Ponto
Eletrônico - MLPE), e o último em fase inicial de testes (Módulo Web de Gerenciamento –
MWG). Os testes realizados produziram resultados satisfatórios indicando que o POPGESTOR
atingiu os objetivos propostos.
Palavras-chave: Biometria, Impressão Digital, Sistemas Distribuídos, Sistema ERP, Gestão de
Recursos Humanos, Sistemas Embarcados.
-
ABSTRACT
Advances in the areas of Internet and Information Technology have transformed the way people
and organizations manage their lives and business. Considering these transformations,
organizations have been using Information Technology as an ally in the process of organizing,
processing, optimizing information and supporting decision-making by the board. This trend is
reinforced by the emergence of ERP (Enterprise Resource Planning) systems, as they condense
characteristics directed to the planning and management of the organization's resources, based
on the information generated from the integration of the data of all its departments in the form
of reports, aiming at the achievement of goals, increased productivity and competitiveness. The
purpose of this monograph is to present the development of POPGESTOR: Distributed System
for Human Resource Management, as a control module of the ERP system of the PoP-RN
organization. POPGESTOR helps human resources professionals, trainees and employees of
the organization in the information management processes, electronic point sheet of the trainees
and access to the organization's building, both by biometric reading and authentication (digital
printing). The system was modeled based on the UML (Unified Modeling Language) language,
model MER (Relationship Entity Model) and implements the MVC (Model, View and
Controller) architectural standard in its software artifacts, it is also composed of five distinct
integrated modules, of which: three are fully functioning (Biometric Register Module - MCB,
Electronic Gate Opening Module - MAPE and Arduino Relay Drive Module - MAAR), one is
in it's final phase of testing (Electronic Point Reading Module - MLPE) and the last one on it's
initial phase (Web Management Module - MWG). The tests performed produced satisfactory
results indicating that the POPGESTOR reached the proposed objectives.
Keywords: Biometrics, Digital Printing, Distributed Systems, ERP System, Human Resource
Management, Embedded Systems.
-
LISTA DE FIGURAS
Figura 1. Composição Modular do POPGESTOR. ............................................................... 18
Figura 2. Fluxo de Dados do Padrão MVC. .......................................................................... 24
Figura 3. Seis Características Biométricas mais Comuns ...................................................... 25
Figura 4. Dedos de Silicone utilizados para Fraudar Sistemas Biométricos. .......................... 28
Figura 5. Comparativo entre Sistemas de Virtualização. ....................................................... 29
Figura 6. Arquitetura Docker. .............................................................................................. 30
Figura 7. Diagrama de Sequência para Comunicação por Meio de Sockets. .......................... 31
Figura 8. Arduino Uno REV3............................................................................................... 32
Figura 9. Sketch de Exemplo do Arduino. ............................................................................ 33
Figura 10. Organograma Inicial da Iniciativa POP-ERP. ...................................................... 39
Figura 11. Diagrama de Casos de Uso do Funcionário.......................................................... 41
Figura 12. Diagrama de Casos de Uso do Bolsista ................................................................ 42
Figura 13. Diagrama de Classes MWG................................................................................. 43
Figura 14. Diagrama de Classes do MCB ............................................................................. 44
Figura 15. Diagrama de Classes do MLPE ........................................................................... 44
Figura 16. Diagrama de Classes do MAPE. .......................................................................... 45
Figura 17. Diagrama de Implantação do POPGESTOR ........................................................ 46
Figura 18. Diagrama Conceitual. .......................................................................................... 47
Figura 19. Diagrama Lógico Relacional. .............................................................................. 48
Figura 20. Leitora Biométrica USB Hamster DX NITGEN. ................................................. 50
Figura 21. Versão Simplificada do Diagrama de Implantação – Contexto MCB. .................. 53
Figura 22. Diagrama de Atividades – Fluxo de Troca de Mensagens (Adaptação). ............... 54
Figura 23. Tela de Cadastro Biométrico do POPGESTOR. .................................................. 55
Figura 24. Fluxo de Processamento da Função Verify. ......................................................... 56
Figura 25. Função Verify Iterando sobre a Base de Dados. ................................................... 56
Figura 26. Módulo MLPE em Funcionamento Experimental no PoP-RN. ............................ 58
Figura 27. Módulo Externo de Leitura Biométrica................................................................ 60
Figura 28. Sketch do MAAR. ............................................................................................... 61
Figura 29. Processo de Confecção de Placas de Circuito Impresso ....................................... 62
Figura 30. Arduino Fixado sob Móvel .................................................................................. 62
Figura 31. Dashboard do Módulo MWG. ............................................................................. 63
Figura 32. View Consulta de Departamentos. ....................................................................... 65
Figura 33. View Consulta de Projetos .................................................................................. 65
Figura 34. Página de Teste de Conexão Socket. .................................................................... 69
-
LISTA DE TABELAS
Tabela 1. Diferenças entre o Sistema Operacional comum e Virtualizado com Docker. ........ 30
Tabela 2. Seleção dos Materiais ........................................................................................... 34
Tabela 3. Requisitos Funcionais ........................................................................................... 39
Tabela 4. Requisitos não-funcionais ..................................................................................... 40
Tabela 5. HAMSTER DX NITGEN – Características. ......................................................... 50
Tabela 6. HAMSTER DX NITGEN – Especificações Técnicas. ........................................... 52
Tabela 7. Threads do Módulo MLPE ................................................................................... 59
Tabela 8. Threads do Módulo MAPE ................................................................................... 60
Tabela 9. Testes dos Módulos do POPGESTOR................................................................... 69
Tabela 10. Dicionário de Dados – Tabela: autenticacao. ....................................................... 76
Tabela 11. Dicionário de Dados – Tabela: popusers. ............................................................ 76
Tabela 12. Dicionário de Dados – Tabela: departamentos..................................................... 77
Tabela 13. Dicionário de Dados – Tabela: bolsistas. ............................................................. 78
Tabela 14. Dicionário de Dados – Tabela: registros_ponto. .................................................. 78
Tabela 15. Dicionário de Dados – Tabela: projetos. .............................................................. 79
Tabela 16. Dicionário de Dados – Tabela: horários. ............................................................. 80
Tabela 17. Dicionário de Dados – Tabela: registros_porta. ................................................... 80
Tabela 18. Dicionário de Dados – Tabela: parametros. ......................................................... 81
Tabela 19. Dicionário de Dados – Tabela: popusers_departamentos. .................................... 81
Tabela 20. Dicionário de Dados – Tabela: credenciais. ......................................................... 82
-
LISTA DE SIGLAS
AJAX – Asynchronous Javascript and XML
CA – Computação Autonômica
CASE – Computer-Aided Software Enginering
CRUD – Create, Read, Update e Delete
EAJ – Escola Agrícola de Jundiaí
ERP – Enterprise Resource Planning
GUI – Graphical User Interface
IDE – Integrated Development Environment
JDBC – Java™ EE Database Connectivity
JSON – JavaScript Object Notation
LDAP – Lightweight Directory Access Protocol
LFD – Live Finger Detection
MAAR – Módulo Arduino de Acionamento de Relé
MAPE – Módulo de Abertura de Ponto Eletrônico
MCB – Módulo de Cadastro Biométrico
MER – Modelo Entidade Relacionamento
MLPE – Módulo de Leitura de Ponto Eletrônico
MRP II – Manufacturing Resource Planning II
MVC – Model – View – Controller
MWG – Módulo Web de Gerenciamento
ODBC – Open Database Connectivity
ORM – Object Relational Mapper
PCB – Placa de Circuito Impresso
PHP – Hypertext Preprocessor
REST – Representational State Transfer
RNP – Rede Nacional de Ensino e Pesquisa
SDK – Software Development Kit
SGBD – Sistema Gerenciador de Banco de Dados
TCP – Transmission Control Protocol
TI – Tecnologia da Informação
UFRN – Universidade Federal do Rio Grande do Norte
UML – Unified Modeling Language
XML – Extensible Markup Language
-
SUMÁRIO
1 INTRODUÇÃO ............................................................................................................... 15
1.1 JUSTIFICATIVA........................................................................................................... 18
1.2 OBJETIVOS .................................................................................................................. 19
1.2.1 Objetivo geral ............................................................................................................ 19
1.2.2 Objetivos Específicos ................................................................................................. 20
1.3 ORGANIZAÇÃO DO TRABALHO .............................................................................. 20
2 REFERENCIAL TEÓRICO .......................................................................................... 21
2.1 SISTEMAS DISTRIBUIDOS ........................................................................................ 21
2.2 MICROFRAMEWORK PYTHON FLASK ................................................................... 23
2.3 PADRÃO ARQUITETURAL DE SOFTWARE – MVC ................................................ 23
2.4 BIOMETRIA – IMPRESSÃO DIGITAL ....................................................................... 25
2.4.1 Modos de autenticação .............................................................................................. 26
2.4.2 Impressão digital ....................................................................................................... 26
2.5 CONTÊINERES DOCKER ........................................................................................... 28
2.6 COMUNICAÇÃO ENTRE PROCESSOS POR MEIO DE SOCKETS TCP .................. 31
2.7 MICROCONTROLADOR ARDUINO UNO ................................................................. 32
3 MATERIAIS E MÉTODOS ........................................................................................... 34
3.1 MATERIAIS .................................................................................................................. 34
3.2 MÉTODOS .................................................................................................................... 35
4 DESENVOLVIMENTO ................................................................................................. 36
4.1 SELEÇÃO DAS TECNOLOGIAS ................................................................................. 36
4.1.1 Banco de dados .......................................................................................................... 36
4.1.2 Linguagens de programação ..................................................................................... 36
4.1.2.1 Java app (desktop) .................................................................................................... 37
4.1.2.2 C++ .......................................................................................................................... 38
4.1.2.3 Python (Microframework Web Flask)....................................................................... 38
4.2 ANÁLISE DE REQUISITOS ......................................................................................... 38
4.3 MODELAGENS ............................................................................................................ 40
4.3.1 Modelagem UML ...................................................................................................... 40
4.3.1.1 Diagrama de casos de uso ......................................................................................... 41
4.3.1.2 Diagramas de classes ................................................................................................ 42
-
4.3.1.3 Diagrama de implantação ......................................................................................... 45
4.3.2 Modelagem de banco de dados ................................................................................. 47
4.3.2.1 Modelo conceitual – MER ........................................................................................ 47
4.3.2.2 Modelo lógico relacional .......................................................................................... 48
4.3.2.3 Dicionário de dados .................................................................................................. 49
4.4 IMPLEMENTAÇÃO DOS MÓDULOS DESKTOP, ARDUINO e web ......................... 49
4.4.1 Implementação dos módulos Java ............................................................................ 49
4.4.1.1 Dispositivo USB de leitura biométrica Nitgen .......................................................... 50
4.4.1.2 Módulo de cadastro biométrico – MCB .................................................................... 53
4.4.1.3 Módulos de leitura biométrica (MLPE – MAPE) ...................................................... 55
4.4.1.3.1 Mecanismo de busca da biblioteca NBIOBSPJNI.DLL .......................................... 56
4.4.1.3.2 Módulo de leitura de ponto eletrônico – MLPE ..................................................... 57
4.4.1.3.3 Módulo de acionamento de porta eletrônica – MAPE ............................................ 59
4.4.2 Implementação do módulo Arduino – MAAR ......................................................... 61
4.4.3 Implementação do módulo web – MWG .................................................................. 63
5 RESULTADOS E DISCUSSÕES ................................................................................... 67
6 CONCLUSÃO ................................................................................................................. 71
REFERÊNCIAS BIBLIOGRÁFICAS .............................................................................. 73
APÊNDICE A – DICIONÁRIO DE DADOS.................................................................... 76
-
15
1 INTRODUÇÃO
O advento da Internet e sua posterior difusão em escala global somados ao célere e
contínuo avanço da tecnologia em suas inúmeras frentes, revolucionaram o modo como pessoas
e organizações tangem suas vidas e negócios no mundo moderno.
Tais mudanças trouxeram diversos benefícios para pessoas comuns e organizações. Este
trabalho, portanto, insere-se no contexto do desenvolvimento da Tecnologia da Informação (TI)
sobre as organizações.
Independentemente do tamanho da organização e da natureza da mesma, pública ou
privada, não basta instalar computadores, impressoras e aplicativos utilitários interligados em
rede pelos diversos departamentos da organização para que a mesma se torne automaticamente
organizada. Os recursos da TI resolvem problemas nas organizações quando bem planejados e
utilizados, como destacam Rezende e Abreu (2003, p. 56) ao apresentarem a necessidade da
realização de um trabalho prévio de organização interna e externa da empresa, que compreende
singularmente as funções empresariais e os específicos procedimentos do negócio principal que
abrangem as atividades de recursos humanos, produção, comercial, financeira, de materiais e
respectivos aspectos legais e jurídicos, a fim de que somente a partir do alcance desse limiar,
seja iniciado o processo de informatização da organização.
Observou-se que para se manterem no mercado as organizações necessitam de muito
mais do que o status de organização informatizada, ou seja, precisam ser competitivas, estarem
a altura da concorrência, bem como atenderem as diversas necessidades de seus clientes, que
são inúmeras e em constante mutação. Percebeu-se ainda que não apenas investimentos em
tecnologia de produtos e/ou serviços e infraestrutura empresarial são fundamentais para garantir
a sobrevivência da organização, e sim o investimento em Tecnologia da Informação. A TI tem
se mostrado crucial para que as organizações possam estar inteiradas acerca do que ocorre ao
seu redor de um modo proativo e com base em informações produzidas a partir da análise e do
processamento de dados confiáveis, influenciar positivamente no processo de tomada de
decisões da alta gestão da organização.
Um sistema de informação (SI) pode ser definido tecnicamente como um conjunto de
componentes inter-relacionados que coletam (ou recuperam), processam, armazenam
e distribuem informações destinadas a apoiar a tomada de decisões, a coordenação e
o controle de uma organização. Além de dar apoio à tomada de decisões, à
coordenação e ao controle, esses sistemas também auxiliam os gerentes e
trabalhadores a analisar problemas, visualizar assuntos complexos e criar novos
produtos. (LAUDON, K. J., 2010, p. 12)
-
16
Assim, a tecnologia não mais figura apenas como sinônimo de infraestrutura
empresarial moderna, ou ainda de automação de processos repetitivos outrora realizados
manualmente. Dadas as mudanças provocadas pelo próprio mercado, e o desenvolvimento
tecnológico dentre outros fatores, a Tecnologia por Tecnologia rendeu-se à Tecnologia da
Informação, que protagoniza dentro das organizações um papel de coleta, análise e cruzamento
de dados que objetiva manter a competitividade, sobrevivência e o poder empreendedor das
organizações através da tomada de decisões assertivas por parte da alta gestão.
E é neste contexto que surgiram a partir dos anos 90 os sistemas ERP, sigla para
Enterprise Resource Planning (planejamento de recursos empresariais) como uma evolução
dos sistemas MRP II sigla para Manufacturing Resource Planning (planejamento dos recursos
de manufatura).
Os sistemas ERP são sistemas de informação integrados adquiridos na forma de
pacotes comerciais de software com a finalidade de dar suporte à maioria das
operações de uma empresa industrial (suprimentos, manufatura, manutenção,
administração financeira, contabilidade, recursos humanos, etc.). (ZWICKER;
ZOUZA, 2003, p. 2)
A importância da utilização de um sistema ERP em uma organização é justificada
quando se analisa os seus benefícios em detrimento das necessidades de se integrar as
informações de seus departamentos de forma segura e hierárquica, através de módulos de
software distintos e interconectados que compartilham informações comuns, garantindo a
unicidade e confiabilidade.
Nesse sentido, para atender a essas necessidades o Ponto de Presença da Rede Nacional
de Ensino e Pesquisa no Rio Grande do Norte (PoP-RN), que representa a Rede Nacional de
Ensino e Pesquisa (RNP) no estado do RN atende às demandas operacionais da rede (Internet
a nível acadêmico), às demandas de conectividade e informações aos usuários de todo o Estado,
bem como coordena e opera serviços de Internet para as instituições acadêmicas e de pesquisa
no estado (POP-RN, 2018), é sugerido como cenário experimental para a implementação de um
sistema ERP.
O PoP-RN tem em sua estrutura organizacional aproximadamente oito departamentos,
cujo conjunto de atividades desenvolvidas atingem um alto grau de organização e
documentação. O PoP-RN faz uso de diversos sistemas de informação que gerenciam suas
atividades. Alguns destes artefatos utilizados são proprietários enquanto outros de iniciativa
Open Source (código aberto).
No entanto, devido a heterogeneidade desses sistemas, bem como do uso de tais
artefatos se darem de maneira independente por cada departamento, salvo algumas exceções
-
17
(dentre elas o AtivPop1), foram observados alguns problemas tais como: redundância em
informações utilizadas por alguns departamentos; ausência de homogeneidade na gerência das
informações do departamento administrativo (Recursos Humanos) com os demais
departamentos; controle ainda manual do movimento de ponto dos bolsistas da organização.
Isto posto, uma iniciativa foi realizada pela coordenação do PoP-RN, com o objetivo de
conceber um layout de projeto para o desenvolvimento de um sistema ERP customizado para a
organização haja vista que os ERPs existentes no mercado são em sua maioria direcionados aos
setores de indústria e comércio, além de demandarem alto custo de customização, implantação
e manutenção.
Tal iniciativa, provisoriamente denominada POP-ERP, objetiva integrar os
departamentos, compartilhar informações comuns, extinguir retrabalhos, produzir relatórios
gerenciais diversos com foco na gerência e tomada de decisões e ainda centralizar o controle
de acesso por meio de níveis de permissões aos usuários através da ferramenta. Alguns módulos
do sistema ERP já estão em desenvolvimento e serão entregues e integrados em breve.
Uma dessas aplicações é o POP-INVENTÁRIO, nome dado ao Sistema de Controle
Patrimonial de Ativos e Passivos de Rede da organização, desenvolvido por dois alunos do
Curso Técnico em Informática Integrado ao Médio da Escola Agrícola de Jundiaí e também
bolsistas do PoP-RN. A aplicação foi modelada e desenvolvida sob os mesmos paradigmas e
tecnologias utilizados no objeto deste trabalho, bem como integra a ferramenta ERP.
O cerne deste trabalho, denominado de POPGESTOR, é provavelmente um dos mais
importantes pilares deste ERP. O POPGESTOR é um sistema distribuído que possui cinco
módulos de softwares integrados que atuam no processo de gestão de recursos humanos com a
finalidade de armazenar informações cadastrais de usuários (funcionários, bolsistas), gerenciar
e controlar o acesso aos módulos do ERP, controlar o ponto eletrônico de bolsistas por leitura
biométrica e realizar o controle de acesso à sede da organização (porta de entrada) por meio da
junção da autenticação biométrica com um microcontrolador.
A Figura 1 ilustra a composição modular do POPGESTOR com suas descrições.
1 Sistema de gerência de projetos que utiliza a plataforma Open Source REDMINE SOLUTIONS para controle de
projetos, cronogramas, agenda, arquivo on-line de documentações e de arquivos.
-
18
Figura 1. Composição Modular do POPGESTOR.
FONTE: própria do autor.
1.1 JUSTIFICATIVA
Dada a ausência de um sistema de gestão de Recursos Humanos (RH) que concentre
informações cadastrais de funcionários e bolsistas, e as atividades relacionadas aos bolsistas, o
departamento administrativo tem se utilizado de ferramentas alternativas para manter o controle
destas informações tais como: Microsoft Word, Microsoft Excel e o AtivPop. No entanto,
apesar da finalidade de armazenamento desses dados ser feita na prática através destas
aplicações, a atomicidade das informações armazenadas não é garantida, o que permite a
existência de redundâncias e/ou duplicidade nos dados armazenados. Um outro ponto sensível
é o controle manual do ponto dos bolsistas através do preenchimento de folha de ponto. A tarefa
de computação e contabilização das horas de atividades dos mesmos, é exaustiva e demanda
um trabalho manual, mensal e contínuo em uma tarefa que pode seguramente ser automatizada
através de um sistema de informação com esta finalidade.
Conforme apresentado na introdução, a iniciativa POP-ERP prevê o desenvolvimento
de uma aplicação para gestão do departamento de recursos humanos, bem como de outras
aplicações específicas aos demais departamentos, que visa centralizar informações comuns e
reaproveita-las quando necessário. Como já apontado anteriormente, os Sistemas Integrados de
-
19
Gestão (SIG), que são sistemas ERPs existentes no mercado, possuem um alto custo de
implantação e manutenção, sem contar que são mais comumente difundidos nos segmentos de
indústria e comércio, ou seja, demandariam customizações para atender as necessidades do
PoP-RN elevando significativamente os custos. Alguns dos principais sistemas ERPs mais
utilizados pelas organizações no Brasil são: SAP; Microsiga; Retail Pro; Linx; Totvs; (o Linx
e o Retail Pro atendem clientes de menor porte).
Diante das necessidades expostas o POPGESTOR, sistema distribuído composto por
cinco módulos integrados por meio de comunicação entre processos, surgiu como uma
alternativa viável não só por sanar as questões que envolvem as necessidades diretas
apresentadas acima relativas a implantação de um sistema ERP, com também pelo baixíssimo
custo de aquisição de equipamentos/componentes eletrônicos, implementação e manutenção da
ferramenta, uso de tecnologias Open Source, com destaque à solução integrada por meio de
leitura biométrica no processo de verificações, validações, ponto eletrônico entre outras
aplicabilidades possíveis, em detrimento a soluções existentes no mercado de empresas
consolidadas que custam mais caro e não integram seus bancos de dados com o banco de dados
da aplicação ERP, em alguns casos armazenam as credenciais biométricas no próprio
dispositivo, o que não é aconselhável. Além dessas justificativas o POPGESTOR mostrou-se
substancialmente viável em razão de ter sua implementação e manutenção de código fonte
realizados pela própria organização, o que possibilita ainda a qualquer tempo vir a realizar
modificações e/ou novas implementações graças a arquitetura aberta implementada.
1.2 OBJETIVOS
Nas subseções seguintes serão apresentados o objetivo geral e os objetivos específicos.
1.2.1 Objetivo geral
O objetivo deste trabalho é apresentar e implementar um sistema distribuído de gestão
de Recursos Humanos como componente primordial de um sistema de organização empresarial
(ERP).
-
20
1.2.2 Objetivos Específicos
Como objetivos específicos podem ser estabelecidos os cinco módulos a seguir, que
juntos compõem o POPGESTOR:
Desenvolvimento do Módulo de Cadastro Biométrico (MCB);
Desenvolvimento do Módulo de Leitura do Ponto Eletrônico (MLPE);
Desenvolvimento do Módulo de Abertura da Porta Eletrônica (MAPE);
Desenvolvimento do Módulo Arduino de Acionamento de Relé (MAAR);
Desenvolvimento do Módulo Web de Gerenciamento (MWG);
1.3 ORGANIZAÇÃO DO TRABALHO
Os conteúdos dos capítulos a seguir estão divididos da seguinte forma:
Capítulo 2: Apresenta o referencial teórico de embasamento do tema;
Capítulo 3: Materiais e Métodos;
Capítulo 4: Descreve o desenvolvimento do trabalho, organização e execução
dos processos de seleção de materiais, tecnologias aplicadas, análise de
requisitos, modelagens, processo de implementação dos módulos Desktop,
Arduino e Web;
Capítulo 5: Apresenta os resultados obtidos com o sistema desenvolvido;
Capítulo 6: Apresenta as conclusões do trabalho, contribuições, bem como as
propostas para trabalhos futuros;
-
21
2 REFERENCIAL TEÓRICO
Este capítulo apresenta as definições utilizadas como base teórica para este trabalho
acerca das tecnologias adotadas, arquitetura das aplicações, bem como do modelo de
comunicação entre elas. O Capítulo 2 está disposto da seguinte forma: a seção 2.1 descreve as
definições de sistemas distribuídos; a seção 2.2 apresenta o microframework Python Flask; a
seção 2.3 apresenta o padrão arquitetural de software utilizado – MVC; a seção 2.4 descreve
conceitos relacionados a biometria (impressão digital); a seção 2.5 apresenta conceitos de
Contêineres Docker; a seção 2.6 descreve a comunicação entre processos por meio de Sockets
TCP e, finalmente, a seção 2.7 apresenta o microcontrolador Arduino Uno.
2.1 SISTEMAS DISTRIBUIDOS
Segundo Coulouris et al. (2013), sistemas distribuídos são aqueles compostos por
componentes de hardware e/ou software, localizados em computadores interligados em rede,
que comunicam-se e coordenam a execução de ações por meio do envio de mensagens entre si.
Tanenbaum e Steen (2008) definem sistemas distribuídos de uma forma interessante.
Apontam que são aqueles sistemas que ao seu usuário final é apresentado como um sistema
único e coerente abstraindo toda complexidade das trocas de mensagens existentes entre um
conjunto de computadores independentes ligados em rede.
A principal motivação de um sistema distribuído é o compartilhamento de recursos de
maneira útil em um sistema de computadores interligados em redes. Estes recursos podem ser
discos, arquivos, bancos de dados, impressoras, objetos de dados entre outros. O aprimoramento
da abstração é explorado como um dos maiores objetivos dos sistemas distribuídos fazendo
com que cada vez mais usuários utilizem recursos diversos sem que haja interesse em saber
qualquer informação sobre como são implementados, ou seja, o que há nos bastidores dessas
aplicações. São exemplos de sistemas distribuídos: internet; sistemas financeiros; jogos online;
redes sociais e plataformas similares; sistemas de pesquisa (motores de busca) entre muitos
outros.
Ainda de acordo com Coulouris et al. (2013), constituem alguns dos maiores desafios
na área de sistemas distribuídos:
-
22
Heterogeneidade – Hardwares, sistemas operacionais, redes, linguagens de
programação implementados e produzidos por desenvolvedores diferentes2.
Segurança – Confidencialidade, integridade e disponibilidade resumem este desafio.
Dados mantidos em sistemas distribuídos são de importância incalculável para o
usuário, tornando a rotina de envio de informações sensíveis um grande desafio.
Escalabilidade – Um sistema é escalável quando se mantem eficiente quando há
aumento significativo do número de usuários e operações realizados pelo sistema. Nisso
implica-se controlar custos, perda de desempenho e manutenção dos recursos.
Tratamento de falhas – São parciais, alguns componentes falham enquanto outros não.
Os maiores desafios estão na detecção, tolerância e recuperação de falhas.
Concorrência – Quando se tem um ambiente em que vários usuários tentam acessar
determinado recurso ao mesmo tempo, há a necessidade de garantir devido tratamento
a esta concorrência, bem como manter a coerência dos recursos.
Transparência – Elevar o grau de abstração do usuário final para os programadores de
aplicativos. Transparência de acesso, localização, concorrência, replicação etc.
Qualidade de serviço – É a garantia de entrega dos serviços com qualidade atendendo a
requisitos não funcionais tais como: segurança; confiabilidade e parâmetros de
desempenho.
Um exemplo prático de uma abordagem focada na superação dos desafios supracitados
está presente na visão de Corneli Júnior (2016, p. 72), onde propõe soluções para a questão da
concorrência de recursos em sua aplicação distribuída.
Igualmente à procura de superar tais desafios, Prado (2017) eleva o nível da busca pela
resolução dos desafios através da Computação Autonômica (CA). A ideia preconizada pela CA
é de que os sistemas possam se auto gerenciar sem a intervenção do ser humano. Os sistemas
autonômicos são fundamentados em quatro atributos segundo (JACOB; LANYON-HOGG;
YASSIN, 2004).
São eles:
Autoconfiguração – Capacidade de se autoconfigurar dinamicamente;
Autocura – Detecção de problemas e realização de ações corretivas;
2 Embora a Internet seja heterogênea em sua composição física e lógica, suas diferenças são mascaradas pelo uso
dos protocolos de comunicação que padronizam a comunicação e abstraem a heterogeneidade.
-
23
Auto-otimização – Habilidade de gerenciar e alocar seus recursos com eficiência;
Autoproteção – Realiza o controle de acesso a dados a usuários devidamente
credenciados;
A seguir, a seção 2.2 apresenta o microframework Python Flask.
2.2 MICROFRAMEWORK PYTHON FLASK
O Flask é um Microframework Python utilizado para o desenvolvimento web criado em
2010. É chamado de “Micro” por manter um núcleo simples, mas extensível. Em outras
palavras é um framework que possui o essencial para gerar aplicações enxutas e compactas.
Não possui uma camada de abstração do banco de dados (Object Relational Mapper – ORM),
validação de formulários ou ainda integração com ferramentas Front-end como por exemplo o
Bootstrap de forma nativa como alguns dos seus principais concorrentes (Django e Pyramid).
No entanto, com o crescimento da comunidade Flask, hoje há uma vasta coleção de
bibliotecas/extensões de terceiros que suprem estas e outras necessidades, o que torna sua curva
de aprendizado mais suave.
Em virtude de ser considerada ainda uma linguagem nova pelas comunidades Python, o
Flask não contém muito suporte relativo a documentação e fóruns de discussão, quando
comparado aos seus principais concorrentes, mas muitos materiais bibliográficos de excelente
qualidade estão sendo desenvolvidos e lançados para aumentar esse aporte.
A seguir, a seção 2.3 descreve o padrão arquitetural de software MVC.
2.3 PADRÃO ARQUITETURAL DE SOFTWARE – MVC
O MVC, sigla para Model – View – Controller, é um padrão de arquitetura muito
utilizado no desenvolvimento web, mas pode ser aplicado a outros cenários que envolvem
integração com o usuário.
O padrão MVC preconiza a separação da aplicação em três camadas chamadas de
Model, View e Controller. No entanto, o objetivo desta separação não é induzir ao significado
literal da separação em camadas apenas como a separação dos códigos desenvolvidos em pastas
diferentes. O propósito central do MVC se dá na definição de como essas camadas interagem.
Luckow e Melo (2015, p. 185) apontam que, em outras palavras, a separação de
responsabilidades é um conceito benéfico na implementação do MVC.
-
24
No MVC, as camadas View e Model não podem se conhecer, a comunicação entre as
duas se dá através da camada Controller.
Model – Pode ser confundida com modelo de dados, mas representa na verdade a
camada de acesso aos dados e regra de negócio.
View – Representa tudo que compõe a interface de um sistema. É na View que o
usuário insere dados para utilização do sistema, bem como é nela que são exibidas
as informações geradas pela camada Model.
Controller – Como o próprio nome sugere é a camada de controle que estabelece e
controla a comunicação entre a View e Model. É encarregado por buscar informações
da camada Model para gerar a View e por receber informações da View e enviar para
Model.
A Figura 2 ilustra como as camadas conversam dentro do padrão MVC. É possível
observar que o Model e a View não se relacionam diretamente, sendo intermediados pela
camada Controller.
Figura 2. Fluxo de Dados do Padrão MVC.
FONTE: própria do autor3.
A seguir, a seção 2.4 apresenta conceitos sobre Biometria e Impressão Digital.
3 Com base na imagem original obtida no site TABLELESS.
-
25
2.4 BIOMETRIA – IMPRESSÃO DIGITAL
É o estudo estático das características físicas e comportamentais dos seres vivos. O
termo é também utilizado como forma de identificação de um indivíduo com base nas suas
características fisiológicas ou comportamentais. Segundo Holanda (2009) é um ramo da ciência
direcionado ao estudo da mensuração dos seres vivos.
A Figura 3 mostra os tipos de métodos de identificação. Alguns mais utilizados que
outros.
Figura 3. Seis Características Biométricas mais Comuns
FONTE: própria do autor a partir de (COSTA, L.; OBELHEIRO, R.; Fragra, J. 2006).
A biometria tem sido utilizada amplamente em sistemas computacionais na área de
segurança para reconhecimento, identificação criminal, controle de acessos a dados e aparelhos,
entre outras áreas.
Vale ressaltar que nessa área da segurança três propriedades são fundamentais:
confidencialidade, que garante a revelação da informação mediante devida autorização; a
integridade, que garante que a informação só será alterada com a devida autorização; e, a
disponibilidade, que garante que a informação esteja disponível aos legítimos usuários
(COSTA, L.; OBELHEIRO, R.; Fragra, J. 2006).
Segundo Miller (2004), em uma requisição de acesso a um recurso, a entidade
requisitante fornece uma credencial, o protocolo de autenticação é o responsável por aceitar as
credenciais como prova da identidade dos requerentes. As credenciais apresentadas podem ser
de três tipos:
-
26
Posse – Quem detém a posse de um objeto é capaz de utilizá-lo.
Conhecimento – Indivíduos que possuem conhecimento diferenciado são aptos a
utilizar um recurso, ou seja, a autenticação baseia-se em um conhecimento secreto. Ex:
dados bancários tais como: agência, conta. Não são totalmente secretos mas nem todos
possuem esta informação.
Biometria – Traços de um indivíduo que pode ser mensurado e computado na forma de
um identificador biométrico único, de modo a dificultar roubo, fraude ou
compartilhamento.
2.4.1 Modos de autenticação
Dois modos de autenticação são usados pelos sistemas biométricos para autenticação de
pessoas: VERIFICAÇÃO e a IDENTIFICAÇÃO.
A verificação consiste numa busca fechada, chamada 1:1, onde o usuário não apenas
passa a característica biométrica, mas uma identidade que se diz possuidor. Esse modo de
autenticação busca responder a pergunta: “O usuário é quem diz ser?”. Por exemplo: O acesso
de um cliente de banco feito por meio de um terminal de caixa eletrônico. Antes de qualquer
solicitação de autenticação biométrica, o cliente deve inserir o cartão antes, ou seja, uma
identificação que será atestada mediante a confirmação biométrica.
A autenticação no modo identificação consiste numa busca aberta, chamada 1:N, onde
o usuário passa apenas a característica biométrica e o sistema é quem passa a ter a competência
de identificar o usuário analisando uma base de dados registro por registro. Nesse caso a
pergunta que corresponde a essa identificação é: “Quem é o usuário?”. Por exemplo: Acesso de
um cliente à sua academia de ginástica, onde na chegada fornece apenas a impressão digital, o
sistema faz a busca e libera a catraca4.
2.4.2 Impressão digital
A impressão digital é uma das características biométricas mais estudadas e utilizada na
área de segurança, possui inúmeras soluções maduras e eficientes que implementam esta
característica. Segundo Pinheiro (2008) só perde no quesito segurança para o teste de DNA.
4 As buscas chamadas 1:N tendem a ser mais demoradas e consumir mais recursos dos sistemas computacionais
em razão do caráter da busca em toda a base de dados.
-
27
Mazi e Dal Pino Júnior (2009) apontam que estudos científicos acerca das impressões
digitais se deram a partir de 1667 com comprovações da característica de identificação. Tal
estudo foi chamado de Datiloscopia.
Apontam ainda que as elevações da pele, chamadas de papilas dérmicas, pois localizam-
se na derme são sobrepostas pela epiderme, que é uma camada superficial e transparente,
realçando as papilas, também chamadas de linhas ou cristas. Estas papilas são separadas por
sulcos ou vales o que caracterizam uma identificação. Os diferentes padrões de desenhos
reforçam a característica de identificação:
Unicidade – Improbabilidade de dois indivíduos diferentes com impressões
idênticas;
Imutabilidade – Do nascimento até a morte, salvo por fator externo tais como:
acidentes, cortes, queimaduras entre outros, a característica biométrica se
mantem igual;
Praticabilidade – O processo de aquisição das imagens das papilas pode ser
realizado com grande facilidade;
Classificabilidade – Os desenhos papilares apesar de uma infinita variedade nas
minúcias, atendem a um número limitado de tipos fundamentais, possibilitando
sua classificação.
Na análise das papilas, percebem-se variações das cristas tais como: cristas
interrompidas, bifurcações, entre outros. Tais acidentes são chamados de minúcias.
Algumas das vantagens do uso da autenticação biométrica por impressões digitais
quando comparada com outras formas de autenticação biométrica são: baixo custo do
hardware, tamanho reduzido dos dispositivos de captura e fácil integração dos dispositivos com
a aplicação.
Segundo Penteado (2009) mesmo diante de todas as incontestes vantagens da utilização
de sistemas biométricos é necessário compreender que não são à prova de falhas que podem ir
desde limitações na aquisição do traço biométrico até a classificação incorreta de indivíduos.
Alerta ainda para a observância de certas propriedades nas etapas de projetos levando em
consideração o contexto das aplicações.
No caso específico das impressões digitais, podem ocorrer fraudes como por exemplo a
confecção de dedos de silicone como mostra a Figura 4. Aparentemente algo difícil de se fazer,
-
28
mas infelizmente já existem tutoriais na internet mostrando como se faz um “dedo falso”. Como
alternativa a este tipo de fraude existem dispositivos mais sofisticados no mercado que
implementam a tecnologia LFD (Live Finger Detection), ou “detecção do dedo vivo”. Tais
dispositivos antes de realizarem a captura de uma imagem experimentam diversos outros
aspectos, tais como: temperatura, cor, carga eletrostática que apenas um dedo vivo possui
(TOPDATA, 2016, online).
Figura 4. Dedos de Silicone utilizados para Fraudar Sistemas Biométricos.
FONTE: retirada do site https://www.topdata.com.br5.
A seguir, a seção 2.5 apresenta as definições de Contêineres Docker.
2.5 CONTÊINERES DOCKER
Docker é um sistema de virtualização não tradicional onde recursos isolados utilizam o
kernel em comum (entre o host e o container), ao contrário dos sistemas de virtualização
tradicionais que utilizam um sistema operacional completo e isolado. Isto é possível porque o
Docker tem como base o LXC Linux Container, que é um tipo de virtualização em nível de
5 Disponível em Acessado em nov. 2018. A
TOPDATA é uma das maiores empresas brasileiras fabricantes de relógios de ponto e catracas para controle de
acesso.
-
29
sistema operacional que permite executar vários sistemas Linux isolados (contêineres) em um
único host de controle principal (LCX host).
A Figura 5 ilustra a arquitetura Docker e destaca sua principal diferença em relação a
um virtualizador tradicional.
Figura 5. Comparativo entre Sistemas de Virtualização.
FONTE: retirada do site https://linux4sysadmin.wordpress.com6.
O LXC não fornece uma máquina virtual e sim um ambiente virtual com suas próprias
características de configuração distintas (CPU, memória, rede, espaço, entre outros). Ainda para
reforçar o conceito, dentro do Container o Docker parece uma VM (Virtual Machine), enquanto
fora do Container é apenas mais um processo para o sistema operacional.
Algumas razões para utilização de Containers:
Economia de recursos;
Velocidade;
Boot em segundos;
Processos executados dentro de um container são vistos como um processo no
sistema hosts.
Possibilidade de subir vários containers ao mesmo tempo consumindo o mínimo
de recursos;
6 Disponível em: Acesso
em nov. 2018.
-
30
As diferenças ficam mais evidentes quando se verifica que em um Container Docker a
quantidade de camadas é bem menor, o que ressalta as razões para se utilizar o Docker como
mostra a Tabela 1.
Tabela 1. Diferenças entre o Sistema Operacional comum e Virtualizado com Docker.
Sistema Operacional Container Docker
Bootfs – Boot FileSystem Bootfs – (LXC, aufs/btrfs) – Mesmo Kernel da Máquina
Bottloader e Kernel Rootfs – Sistema de Arquivos.
Rootfs – Root FileSystem
Restante dos Arquivos do Sistema
FONTE: própria do autor.
Um container é construído através de comandos (namespaces, chroot) entre outras
funcionalidades do Kernel para construir uma área isolada para a aplicação.
A Figura 6 mostra de forma objetiva a arquitetura cliente-servidor do Docker, formada
por dois principais componentes: uma plataforma de conteinerização (Docker engine) que
implementa tanto o Docker Client quando o Docker Daemon, bem como um serviço de registro
(Registry), que trata-se de um repositório provido pelo Docker, se encontra na nuvem e realiza
o download e compartilhamento de imagens de Containers.
Figura 6. Arquitetura Docker.
FONTE: retirada do site https://hahoangv.wordpress.com7.
A seguir, a seção 2.6 descreve a comunicação entre processos por meio de sockets TCP.
7 Disponível em: Acesso em nov. 2018.
-
31
2.6 COMUNICAÇÃO ENTRE PROCESSOS POR MEIO DE SOCKETS TCP
A comunicação realizada por meio de SOCKETS TCP (Transmission Control Protocol),
caracteriza-se pela troca de mensagens entre um par de processos. As operações básicas que
envolvem esta troca são: SEND (enviar dados) e RECEIVE (receber dados). Para que a
comunicação seja estabelecida entre estes dois processos distintos, remetente e destino
respectivamente devem ter seus processos sincronizados (COULOURIS et al. 2013).
O processo de comunicação consiste na transmissão de uma mensagem entre um
soquete de um processo e um soquete de outro processo. Para que um processo receba
mensagens, seu soquete deve estar vinculado a uma porta local e ao endereço IP do computador
de execução. Um processo pode usar o mesmo soquete para enviar e receber mensagens.
A comunicação pode ser síncrona ou assíncrona. A comunicação síncrona garante
algumas características de confiabilidade, tais como: validade, que á a garantia de que a
mensagem será entregue independente da perca de pacotes; integridade que garante que os
dados não serão entregues corrompidos ou duplicados. Estas foram as razões que justificaram
a escolha da comunicação síncrona neste trabalho, em detrimento da comunicação assíncrona,
que não fornece tais garantias, apenas sendo preferida em casos específicos em razão do alto
desempenho, menor utilização de recursos (exemplo: TV por streaming).
Existem dois tipos de sockets comumente utilizados, que representam respectivamente
os dois tipos de comunicação descritos anteriormente. O Socket TCP (Síncrono) e o Socket UDP
(Assíncrono). A Figura 7 ilustra como se dá efetivamente a comunicação entre dois processos
por essas duas abordagens TCP/UDP, e como os processos se comportam.
Figura 7. Diagrama de Sequência para Comunicação por Meio de Sockets.
FONTE: própria do autor.
-
32
Pode se observar que na comunicação realizada por meio de socket TCP, o processo
MWG (remetente) fica congelado até que a resposta do processo MCB (destino) seja recebida
com a confirmação de sucesso ou falha na transmissão da mensagem, enquanto no cenário por
meio de socket UDP, o processo de origem apenas envia a mensagem e segue seu curso, sem
aguardar algum tipo de retorno do processo de origem.
A seguir, a seção 2.7 apresenta o microcontrolador Arduino Uno.
2.7 MICROCONTROLADOR ARDUINO UNO
O Arduino é um microcontrolador utilizado mundialmente para prototipar projetos
envolvendo sistemas embarcados.
Arduino é um pequeno computador que você pode programar para processar entradas
e saídas entre o dispositivo e os componentes externos conectados a ele. O Arduino é
o que chamamos de plataforma de computação física ou embarcada, ou seja, um
sistema que pode interagir com seu ambiente por meio de hardware e software.
(MCROBERTS, M., 2012, p. 22)
Pode ser conectado a LEDs, displays, sensores diversos, motores, receptores GPS, relés,
módulos Ethernet ou qualquer outro que emita ou possa receber dados. A sua versão mais
recente, de acordo com o site do fabricante, é baseada no ATmega328P conforme mostra a
Figura 8. Ele é conectado ao PC via cabo USB, que conduz a USB para serial.
Figura 8. Arduino Uno REV3.
FONTE: retirada do site https://www.arduino.cc/8.
A plataforma conta com uma IDE para criação, compilação e upload dos códigos
programados, que no Arduino denominam-se sketch, para o chipset do microcontrolador via
cabo USB. A IDE padrão, encontra-se na versão 1.8.7 no momento deste trabalho e está
8 Disponível em: < https://store.arduino.cc/usa/arduino-uno-rev3> Acesso em nov. 2018.
-
33
disponível para os três principais sistemas operacionais (Windows, MacOS X, Linux), o que
possibilita que o usuário codifique seus sketches na linguagem C++ (padrão).
A Figura 9 mostra um SKETCH Arduino responsável por fazer um LED piscar.
Figura 9. Sketch de Exemplo do Arduino.
FONTE: própria do autor - print screen da aplicação no sistema operacional Windows 10.
-
34
3 MATERIAIS E MÉTODOS
Neste capítulo descreve de forma organizada o processo de seleção de materiais
utilizados neste trabalho, bem como os passos seguidos no desenvolvimento do mesmo. O
Capítulo 3 está organizado da seguinte forma: a seção 3.1 apresenta a lista de materiais
utilizados, e, a seção 3.2 descreve sequencialmente os métodos executados para
desenvolvimento.
3.1 MATERIAIS
A Tabela 2 apresenta a lista de materiais utilizados. Suas aplicabilidades e
funcionalidades específicas estão descritas a partir da seção 4.4 IMPLEMENTAÇÃO DOS
MÓDULOS DESKTOP, ARDUINO.
Tabela 2. Seleção dos Materiais
N Nome do Material Quant. Categoria Aplicação(ões)
1 Leitor Biométrico Nitgen modelo Hamster
DX9
03 Dispositivo USB MCB/MLPE/MAPE
2 Microcontrolador Arduino UNO c/ case. 01 Dispositivo USB MAAR
3 Microcomputador AMD Athlon™ II X2
B22 Processador 2.80 GHz – 4.00 GB –
Sistema Operacional Windows 7 x64.
01 Computador MLPE/MAPE/MAAR
4 Relé de 5V para Arduino com
Optoacoplador.
01 Comp. Eletrônico MAAR
5 Placa de circuito impresso (PCB) 02 Comp. Eletrônico MAAR
6 Conector fêmea RJ45 02 Comp. Eletrônico MAAR
7 Cabo Extensor USB amplificado com 10m 01 Cabo MAAR
8 Led colorido 03 Comp. Eletrônico MAAR
9 Resistores de 300 Ω 03 Comp. Eletrônico MAAR
10 Pedaço de Eletrocalha 01 Diversos MAAR
11 Cabo UTB com 10m 01 Cabo MAAR
12 Jumpers de conexão com Arduino ≅15 Comp. Eletrônico MAAR
FONTE: própria do autor.
9 Modelo de leitora biométrica moderno, resistente e que dispões da função de autodetecção AUTO-ON.
-
35
3.2 MÉTODOS
Para que o objetivo deste trabalho fosse alcançado com êxito, etapas de pesquisas,
estudos e implementações foram seguidas cronologicamente a fim de construir um caminho
para a execução ordenada das tarefas. Algumas dessas etapas se deram de forma simultânea
tendo em vista o grau de complementação entre elas, outras em sequência.
O início das pesquisas e estudos se concentraram no domínio das funcionalidades da
biblioteca Nitgen NBioBSPJNI.jar. Uma vez que tais funcionalidades foram dominadas, as
demais etapas do POPGESTOR foram executadas conforme os passos a seguir:
Seleção de Tecnologias: A escolha das tecnologias (banco de dados, linguagens de
programação e dispositivos a serem utilizados) se deu em observância a fatores diversos
tais como: dispositivos de hardware envolvidos, requisitos técnicos da organização,
domínio das tecnologias, curva de aprendizagem das ferramentas não dominadas entre
outros.
Análise de Requisitos: Foi estabelecida uma linha de contato com a alta gestão,
departamento administrativo, bem como com bolsistas da organização com o objetivo
de serem estabelecidas as funcionalidades que o POPGESTOR deveria implementar.
Modelagens: Uma vez estabelecidas as funcionalidades da aplicação, foi iniciado o
processo de modelagem do POPGESTOR. A modelagem se deu de forma simultânea,
ou seja, modelagem UML e modelagem do banco de dados foram realizadas
simultaneamente, o que resultou em uma maior integridade e consistência entre as duas
modelagens.
Implementação dos Módulos MCB / MLPE / MAPE / MAAR e MWG: Uma vez
com todos os materiais necessários disponíveis, tecnologias selecionadas,
funcionalidades da aplicação definidas e bem modeladas, foi dado início ao processo de
implementação dos módulos na ordem MCB, MLPE, MAPE, MAAR e MWG.
Testes das Aplicações: Os testes foram realizados em diversos estágios da
implementação dos módulos, não apenas no final de cada implementação, mas ao longo
da implementação, bem como não só o módulo implementado, mas outros módulos com
necessidades de interação e comunicação entre si.
-
36
4 DESENVOLVIMENTO
Este capítulo descreve como foi organizada e executada a tarefa de desenvolvimento da
aplicação proposta e apresenta os processos de seleção das tecnologias utilizadas, análise de
requisitos, modelagens necessárias, implementação dos módulos desktop, web e Arduino, bem
como o modelo da comunicação entre os processos dos módulos desenvolvidos. O Capítulo 4
está organizado da seguinte forma: a seção 4.1 apresenta o processo de seleção das tecnologias;
a seção 4.2 descreve o processo de análise de requisitos; a seção 4.3 apresenta as modelagens
realizadas e, finalmente, a seção 4.4 descreve o processo de desenvolvimento dos módulos que
compõem o POPGESTOR e suas interações.
4.1 SELEÇÃO DAS TECNOLOGIAS
O processo de seleção das tecnologias e arquiteturas utilizadas nesse trabalho observou
importantes fatores técnicos, institucionais, limitações de dispositivos, entre outros, os quais
influenciaram direta ou indiretamente na definição das tecnologias e arquiteturas apresentadas.
4.1.1 Banco de dados
O Sistema Gerenciador de Banco de Dados (SGBD) escolhido para este trabalho foi o
PostgreSQL versão 10. A escolha se deu por razão de requisito técnico da organização que já o
utilizara em outras aplicações, bem como por considerar as diretrizes de segurança do
PostgreSQL mais relevantes que outras opções de SGBDs semelhantemente analisadas.
O banco de dados está armazenado em um dos servidores da organização com as devidas
regras de firewall aplicadas o que garante o acesso qualificado. Foram utilizadas ferramentas
de gerência tais como: PGADMIN4, Microsoft Access (via ODBC).
4.1.2 Linguagens de programação
As linguagens de programação adotadas neste trabalho foram selecionadas a partir da
análise dos critérios a seguir:
Linguagens de Iniciativa Open Source – Linguagens de programação oriundas de
iniciativas de código aberto que não demandam custos e/ou investimentos em
aquisições de licenças foram priorizadas;
-
37
Linguagens Consolidadas nas Universidades – Foram observadas as grades
curriculares dos principais cursos de TI das universidades do estado, a fim de se
estabelecer um mapa das tecnologias abordadas nestes cursos, bem como da sua junção
com as tecnologias escolhidas pela organização haja vista que a mesma possui parte do
seu quadro de bolsistas dedicado ao desenvolvimento e manutenção de artefatos de
software.
Linguagens com Baixa Curva de Aprendizado – Este critério foi um dos mais
determinantes em razão da rotatividade natural de bolsistas da organização não permitir
a permanência dos mesmos no quadro da mesma por tempo ilimitado, o que
eventualmente pode causar uma substituição e por consequência a interrupção de um
projeto. Em virtude disso, linguagens de fácil aprendizado foram priorizadas, pois
formam novas equipes em menor tempo e dão sequência aos projetos da organização.
Linguagens Multiplataforma focadas na Produtividade – Funcionar em qualquer
plataforma (Windows, Linux, Mac OS X), bem como poder se utilizar de ferramentas
que aceleram o desenvolvimento, tais como frameworks, camadas de abstração de
banco de dados ORMs entre outras, também foram fatores observados.
Conforme disposto na seção 1.2.2, foram desenvolvidos cinco módulos de software que
compõe o sistema distribuído POPGESTOR. As linguagens de programação são comentadas
a seguir.
4.1.2.1 Java app (desktop)
Três destes módulos foram escritos na linguagem Java Application (Java para desktop)
na IDE NETBEANS 8.1, a saber:
Módulo de Cadastro Biométrico (MCB);
Módulo de Leitura de Ponto Eletrônico (MLPE);
Módulo de Abertura de Porta Eletrônica (MAPE);
Um ponto comum entre os três módulos acima foi a necessidade da implementação de
uma interface gráfica para interação com o dispositivo de leitura biométrica Nitgen modelo
Hamster DX utilizado neste trabalho. O fabricante do dispositivo, Nitgen, disponibiliza em seu
site um kit de desenvolvimento de software (SDK) que contém bibliotecas e código fonte básico
para as seguintes linguagens de programação: C#, .Net, VB, Java, ASP e Delphi. O SDK
disponibilizado dá suporte a aplicações 32/64 bits, bem como aos sistemas operacionais
-
38
Windows e Linux. No entanto, segundo a documentação, algumas das importantes funções da
leitora não possuem implementação para ambientes Linux10, e em virtude desta limitação foram
selecionadas para este trabalho as bibliotecas suportadas em ambientes Windows. A linguagem
Java foi escolhida em função dos critérios: Linguagem Open Source e Multiplataforma.
4.1.2.2 C++
O Módulo Arduino de Acionamento de Relé (MAAR), foi desenvolvido na IDE própria
do Arduino11, que é distribuída gratuitamente no site do fabricante e utiliza por padrão a
linguagem C++ na escrita de seus programas (Sketch).
4.1.2.3 Python (Microframework Web Flask)
O Módulo Web de Gerenciamento (MWG) foi escrito na linguagem Python, utilizando
o Microframework Flask e a IDE Microsoft Visual Code. A seleção da linguagem foi
estabelecida em virtude da reformulação da estrutura de sistemas do PoP-RN e também em
função da implementação de uma infraestrutura ágil voltada para abordagem de aplicações
oferecidas em contêineres Docker, integração com ferramentas de testes e versionamento de
código. Outro fator preponderante foi a curva de aprendizado suave do Python em relação a
outras linguagens de alto nível e sua abordagem crescente nas grades curriculares das
instituições de ensino.
A seleção do Microframework Flask ocorreu em observância a uma das principais
características do framework que o distingue de seus iguais, que é um núcleo simples, ou seja,
além desse núcleo que permite as principais funcionalidades do framework, somente são
adicionadas bibliotecas e/ou extensões sob demanda na aplicação.
4.2 ANÁLISE DE REQUISITOS
Todo processo de modelagem do sistema levou em consideração a inserção do
POPGESTOR no contexto do POP-ERP como componente fundamental de acesso aos demais
sistemas de informação já em desenvolvimento, bem como os que anexarão futuramente este
ERP, conforme detalhado na introdução deste trabalho e ilustrado na Figura 10.
10 A documentação completa do SDK Java está disponível em:
11 IDE Arduino distribuída gratuitamente e disponível em:
-
39
Figura 10. Organograma Inicial da Iniciativa POP-ERP.
FONTE: própria do autor.
A concepção do trabalho, bem como a análise de requisitos ocorreram desde o início de
modo conjunto e envolveu a alta gestão da organização, usuários dos sistemas, bem como
funcionários do departamento administrativo (Recursos Humanos) do PoP-RN, sob a égide de
que a aplicação seria construída para atender todas as demandas propostas, bem como garantir
uma estrutura aberta de modo a comportar futuras implementações oriundas da iniciativa POP-
ERP.
Foram levantados os requisitos preliminares do sistema e após o refinamento dos
mesmos, estabelecidos os requisitos funcionais, que correspondem as funcionalidades diretas
do sistema, bem como os requisitos não-funcionais, que descrevem o uso da aplicação
atendendo a critérios e/ou restrições em termos de desempenho tais como: confiabilidade,
escalabilidade, usabilidade e segurança. As Tabela 3 e Tabela 4 apresentam respectivamente
os principais requisitos funcionais e não-funcionais levantados.
Tabela 3. Requisitos Funcionais
Código Descrição
RF001 Fazer login e autenticar usuário no sistema web.
RF002 Permitir abertura da porta eletrônica de entrada do PoP-RN mediante autenticação
biométrica.
RF003 Inclusão, exclusão, consulta e atualização de projetos.
RF004 Inclusão, exclusão, consulta e atualização de departamentos.
RF005 Inclusão, exclusão, consulta e atualização de feriados.
RF006 Consulta e atualização de parâmetros do sistema.
RF007 Inclusão, exclusão, consulta e atualização de horários de exceção de expediente para
bolsistas.
RF008 Inclusão, exclusão, consulta e atualização de funcionários.
RF009 Inclusão, exclusão, consulta e atualização de bolsistas.
FONTE: própria do autor.
Sistemas em Desenvolvimento
Sistemas Futuros
-
40
Tabela 4. Requisitos não-funcionais
Código Descrição
RNF001 Requisito de segurança. O sistema web só poderá ser acessado por usuário previamente
cadastrado, autorizado e por meio de login.
RNF002 Requisito de segurança. O sistema deve armazenar as credenciais de usuário utilizando
criptografia.
RNF003 Escalabilidade e Desempenho. O sistema deverá ser executado em uma infraestrutura de
conteinerização docker, para facilitar o desenvolvimento, implantação (deploy) de
funcionalidades, garantia de bom desempenho e acesso concorrente de usuários.
RNF004 Segurança. O Banco de dados da aplicação deverá estar hospedado em um servidor do PoP-
RN com regras de firewall específicas para garantir a segurança dos dados.
RNF005 Usabilidade. Os sistemas devem possuir uma interface amigável e intuitiva aos usuários.
RNF006 Desempenho. Os módulos em Java APP devem ter seus modelos otimizados ao máximo,
bem como o modo de utilização das bibliotecas JDBC e NBioBSPJNI.jar12 a fim de garantir
o desempenho das aplicações.
FONTE: própria do autor.
4.3 MODELAGENS
Dois tipos específicos de modelagem foram realizadas neste trabalho. A primeira,
Modelagem UML, apresenta as funcionalidades do sistema de forma clara e objetiva a alta
gestão da organização e desenvolvedores. A segunda, Modelagem de Banco de Dados, utiliza
representação conceitual e lógica para chancelar toda modelagem UML realizada
anteriormente, e cumprir seu objetivo principal que é gerar o banco de dados físico da aplicação.
4.3.1 Modelagem UML
Após o refinamento de todos os requisitos levantados, foi realizado o processo de
Modelagem UML (Unified Modeling Language), que consistiu na representação em uma
linguagem para especificação, construção, visualização e documentação de artefatos de
software. (SILVA; VIDEIRA, 2001, p. 117)
A Modelagem UML desse trabalho foi realizada através da ferramenta Astah
Community13 utilizando algumas de suas principais visões (diagramas) que melhor ilustram os
cenários existentes nesse trabalho.
12 Biblioteca proprietária da empresa NITGEN, fabricante da Leitora Biométrica modelo Hamster DX. 13 Versão gratuita de software de modelagem UML descontinuada em 26 de setembro de 2018. Apenas versões
proprietárias estão disponíveis no site da empresa.
-
41
4.3.1.1 Diagrama de casos de uso
Foram elaborados diagramas de casos de usos para ilustrar as funcionalidades
estabelecidas para seus principais atores: funcionários e bolsistas do PoP-RN. A Figura 11
mostra o diagrama de casos de uso do ator Funcionário, e lista a sequência de ações a ele
atribuída, ou seja, toda parte de gerenciamento do POPGESTOR.
Figura 11. Diagrama de Casos de Uso do Funcionário
FONTE: própria do autor.
-
42
A Figura 12 mostra o diagrama de casos de uso do bolsista, e lista de igual forma as
ações associadas ao ator Bolsista no contexto da aplicação.
Figura 12. Diagrama de Casos de Uso do Bolsista
FONTE: própria do autor.
4.3.1.2 Diagramas de classes
Os diagramas de classes permitem aprofundar a visão de modelagem de uma aplicação
ou mesmo sua compreensão por um prisma lógico. Nesse sentido, foram elaborados quatro
diagramas de classes que contém as classes implementadas no POPGESTOR, separadas por
módulos conforme definido na seção 1.2.2 deste trabalho.
A aplicação Módulo Web de Gerenciamento é ilustrada na Figura 13 abrangendo toda
estrutura do POPGESTOR na sua forma mais ampla e completa.
-
43
Figura 13. Diagrama de Classes MWG
FONTE: própria do autor.
-
44
A Figura 14 apresenta a classe Popuser no contexto da aplicação Módulo de Cadastro
Biométrico, que sintetiza em sua composição apenas os atributos vitais ao propósito da
aplicação que é o cadastro da informação biométrica do usuário.
Figura 14. Diagrama de Classes do MCB
FONTE: própria do autor.
O Módulo de Leitura do Ponto Eletrônico14 é responsável pela leitura e computação
efetiva do ponto eletrônico diário dos bolsistas do PoP-RN, conforme mostra a Figura 15.
Figura 15. Diagrama de Classes do MLPE
FONTE: própria do autor.
14 As aplicações menores MCB, MLPE e MAPE tiveram seus modelos reduzidos e/ou adaptados em
conformidade com o requisito não funcional RNF006, constante na seção 3.1 deste documento.
-
45
O modelo do Módulo de Abertura da Porta Eletrônica está representado na Figura 16.
Uma estrutura resumida que contém apenas as classes e atributos necessários para a
identificação do usuário e acionamento da porta eletrônica.
Figura 16. Diagrama de Classes do MAPE.
FONTE: própria do autor.
4.3.1.3 Diagrama de implantação
Um diagrama de implantação foi elaborado para mostrar como se deu o processo de
modelagem da arquitetura física do POPGESTOR, ou seja, do relacionamento entre os nós
deste sistema distribuído (componentes de hardware e software, bem como a distribuição física
do processamento, descrição de protocolos e portas de comunicação utilizados).
O diagrama de implantação do POPGESTOR é ilustrado na Figura 17. Nele, estão
dispostos todos os componentes de hardware, software, protocolos e portas utilizados que
compõem o sistema. Nesse diagrama, cada retângulo corresponde a um nó (node), que é
identificado pelo atributo stereotype (da ferramenta) que predispõe uma lista de identificação
dos nós que podem ser dos tipos: device; software; entity; component; ou uma identificação
personalizada pelo usuário. As linhas representam as ligações entre os nós e sempre com uma
seta indicando a direção do fluxo, bem como uma legenda que descreve os tipos de
comunicação implementados (protocolos, tipos de conexão, portas utilizadas, entre outros). O
diagrama de implantação é flexível e objetiva ilustrar como as estruturas de hardware e software
estão dispostas e como se comunicam em uma aplicação.
-
46
Figura 17. Diagrama de Implantação do POPGESTOR
FONTE: própria do autor.
-
47
4.3.2 Modelagem de banco de dados
A modelagem do banco de dados foi realizada por meio da ferramenta CASE (sigla para
Computer-Aided Software Engineering) Open Source BRModelo 3.0, que fornece uma
representação conceitual e lógica da aplicação.
4.3.2.1 Modelo conceitual – MER
A Figura 18 apresenta o Modelo Conceitual – MER (Modelo Entidade-
Relacionamento) da aplicação POPGESTOR, que contém todas entidades e relacionamentos
necessários à aplicação representados por um modelo mais próximo do mundo real, abstrato e
que descreve a estrutura do banco de dados de forma independente de um SGDB específico.
Figura 18. Diagrama Conceitual.
FONTE: própria do autor.
-
48
4.3.2.2 Modelo lógico relacional
A representação lógica da aplicação foi gerada automaticamente a partir de uma
conversão do Modelo Conceitual apresentado na seção anterior. Essa representação é dada na
forma de tabelas já definidas, relacionamentos estabelecidos, cardinalidades, criação de chaves
primárias, chaves estrangeiras, tipos de dados conhecidos do SGDB adotado por este trabalho
(PostgreSQL) conforme ilustra a Figura 19. O modelo lógico relacional gerou o script para a
criação física do banco de dados.
Figura 19. Diagrama Lógico Relacional.
FONTE: própria do autor.
-
49
4.3.2.3 Dicionário de dados
O dicionário de dados é uma coleção de metadados que contém definições e
representações de elementos de dados que permitem que analistas tenham acesso a informações
de todos os objetos do modelo de forma textual. Toda essa representação em observância ao
diagrama do Modelo Lógico Relacional apresentado na seção anterior pode ser encontrada no
APÊNDICE A – DICIONÁRIO DE DADOS.
4.4 IMPLEMENTAÇÃO DOS MÓDULOS DESKTOP, ARDUINO E WEB
Os módulos especificados nessa seção foram escritos em observância a técnicas de boas
práticas de programação, versionamento completo dos códigos com git (Gitlab15), orientação a
objetos e utilização do padrão arquitetural MVC, com exceção do módulo Arduino, escrito em
C++ sob paradigma estruturado.
4.4.1 Implementação dos módulos Java
Três módulos do POPGESTOR foram escritos na linguagem Java App (desktop),
conforme critérios de seleção descritos na seção 4.1.2.1 Java app (desktop), deste documento.
Os módulos apresentados a seguir estão dispostos na ordem cronológica de seus
desenvolvimentos. Alguns padrões e bibliotecas foram utilizados em todas as aplicações Java
desenvolvidas nesta seção tais como:
Padrão de projeto (Design Pattern) Singleton16 – Foi implementado na classe
Conexao.java para garantir uma única instância da mesma em todos os pontos
da aplicação;
Biblioteca Java de Acesso a Banco de Dados JDBC – O acesso à base de dados
PostgreSQL foi realizado de forma direta, sem utilização de bibliotecas ou
ferramentas ORM em virtude da observância ao requisito não funcional de
desempenho RNF006.
Biblioteca Java NBioBSPJNI.jar – Esta biblioteca é fornecida pelo fabricante
das leitoras biométricas adotadas neste trabalho (NITGEN, modelo Hamster
DX).
15 Gerenciador de repositórios de software baseado em git. 16 Padrão de projeto criacional que lida com mecanismos de criação de objetos. Na prática é uma classe que tem
apenas uma instância e fornece um ponto de acesso global a ela.
-
50
4.4.1.1 Dispositivo USB de leitura biométrica Nitgen
A leitora biométrica utilizada neste trabalho é o modelo HAMSTER DX da NITGEN,
como mostra a Figura 20. A escolha do dispositivo foi determinada por dois fatores: a
existência de um dispositivo já comprado pela organização e disponível para testes;
características técnicas satisfatórias do dispositivo, as quais foram atestadas somente depois dos
primeiros testes com o equipamento.
Figura 20. Leitora Biométrica USB Hamster DX NITGEN.
FONTE: retirada do site https://www.automacaoglobal.com.br17.
A Tabela 5 apresenta no detalhe as características do dispositivo.
Tabela 5. HAMSTER DX NITGEN – Características.
Características Descrição
Conexão USB Interface compatível com USB 2.0.
Dispositivo plug and play Suporta vários dispositivos.
Motor de Combinação Superior 1º no FVC (Competição da Verificação de
Impressão Digital).
Função Auto-on™ (Detecção de presença de dedo).
Avançada Tecnologia Óptica Sensor resistente a arranhões, impacto, vibração e choque eletrostático.
continua
17 Disponível em: < https://cdnv2.moovin.com.br/automacaoglobal/imagens/produtos/original/leitor-biometrico-
fingkey-hamster-dx-nitgen-e40f42f3cd480eb196bd105e14e631e2.png> Acesso em nov. 2018.
-
51
Tabela 5. HAMSTER DX NITGEN – Características.
continuação
Características Descrição
Formato internacional de imagem padrão e
interfaces
Compressão WSQ.
ISO 19794-2/4, ANSI 378, NFIQ.
Captura de Imagem de Alta Qualidade -
Forte desempenho para dedo molhado / seco
-
FONTE: própria do autor com dados retirados do site http://www.nitgen.com18
Uma das principais características do dispositivo é a função Auto On. Ela atua com uma
espécie de sensoriamento que detecta a presença de um dedo no dispositivo, para só então