FACULDADE FARIAS BRITO
CIÊNCIA DA COMPUTAÇÃO
FELIPE OQUENDO NOGUEIRA
PROTÓTIPO DE FERRAMENTA DE INVENTÁRIO EM
TEMPO REAL UTILIZANDO RFID
Fortaleza, 2008
FELIPE OQUENDO NOGUEIRA
PROTÓTIPO DE FERRAMENTA DE INVENTÁRIO EM
TEMPO REAL UTILIZANDO RFID
Monografia apresentada para obtenção dos
créditos da disciplina Trabalho de Conclusão do
Curso da Faculdade Farias Brito, como parte das
exigências para graduação no Curso de Ciência da
Computação.
Orientadora: Dra Wietske Ineke Meyering.
2
Fortaleza, 2008
PROTÓTIPO DE FERRAMENTA DE INVENTÁRIO EM
TEMPO REAL UTILIZANDO RFID
Felipe Oquendo Nogueira
PARECER _____________________
Data: ____/____/_________
BANCA EXAMINADORA:
___________________________________
Nome e titulação
(Orientador)
___________________________________
Nome e titulação
(Examinador)
___________________________________
Nome e titulação
(Examinador)
3
Dedico este trabalho a todas as pessoas que eu amo porque com seus conselhos e
exemplos de vida me ajudaram a construir o que eu sou no presente.
4
Agradeço a Deus, a minha família e aos meus professores pelo apoio e paciência e
à empresa E-NOVAR pelo suporte no processo de desenvolvimento deste trabalho.
5
RESUMO
O trabalho “Protótipo de inventário em tempo real utilizando RFID” apresenta uma
solução em estágio de protótipo de uma ferramenta de inventário em tempo real utilizando
RFID (Radio Frequency identification, do inglês: “Identificação por radiofreqüência”). O
protótipo foi desenvolvido desprezando as dificuldades na aplicação da tecnologia, mas
apontando os empecilhos que existem e como tem sido o desenvolvimento da tecnologia de
identificação por radiofreqüência para superá-los. A fundamentação teórica que dá sustentação
à análise parte de conceitos de comunicação utilizando energia refletida concebidos por
Stockman (1948) e nas perspectivas da tecnologia apresentadas por Viehland (2007). Para
construção do protótipo foi utilizada uma arquitetura de software flexível para permitir futuras
extensões e para que o protótipo possa ser utilizado como base para o desenvolvimento de um
produto final. Os resultados obtidos comprovam que é viável desenvolver uma ferramenta em
estágio final com o propósito apresentado.
6
SUMÁRIO
1 REVISÃO BIBLIOGRÁFICA............................................................................................... 14
1.1 Histórico .............................................................................................................................. 14
1.2 O que é RFID?...................................................................................................................... 15
1.3 Aplicações ............................................................................................................................ 17
1.4 Padronização ........................................................................................................................ 19
1.5 Futuro do RFID .................................................................................................................... 20
2 Metodologia............................................................................................................................ 23
2.1 Model View Controller........................................................................................................ 24
2.10 Plataforma de leitura........................................................................................................... 32
2.11 Outras camadas e bibliotecas.............................................................................................. 33
2.2 Programação Orientada a Objetos ........................................................................................ 24
2.3 Mapeamento Objeto Relacional ........................................................................................... 24
2.4 Plataforma “.Net” ................................................................................................................ 25
2.5 Ferramentas ......................................................................................................................... 25
2.6 Visão da solução................................................................................................................... 26
7
2.7 Common ............................................................................................................................... 27
2.8 DAL..................................................................................................................................... 29
2.9 Business................................................................................................................................ 30
3 Resultados obtidos.................................................................................................................. 35
4 Conclusão ............................................................................................................................... 39
ANEXO I.................................................................................................................................... 44
Diagrama da camada de negócios .............................................................................................. 51
Diagrama de classes concretas da camada de acesso a dados .................................................... 47
Diagrama de classes da camada de comunicação com RFID..................................................... 55
Diagrama de interfaces da camada de acesso a dados................................................................ 45
INTRODUÇÃO.......................................................................................................................... 12
REFERÊNCIAS ......................................................................................................................... 41
8
LISTA DE FIGURAS
Figura 1 – Sistema RFID composto de uma leitora, uma antena, um transponder e um sistema
de software ................................................................................................................................. 16
Figura 2 – Carrinho de compras inteligente dotado de um sistema de identificação por
radiofreqüência. .......................................................................................................................... 17
Figura 3 – Implante de RFID em humanos. ............................................................................... 18
Figura 4 – Utilização de etiquetas inteligentes em animais. ...................................................... 18
Figura 5 – Diagrama de casos de uso da solução. Os casos de uso são “Realizar Login”,
“Cadastrar Produto”, “Cadastrar Item de Produto”, “Realizar Inventário” e “Cadastrar Leitora”.
.................................................................................................................................................... 26
Figura 6 – Diagrama de pacotes da solução. Apresenta o relacionamento entre componentes da
solução........................................................................................................................................ 27
Figura 7 – Diagrama de classes do pacote Common.................................................................. 28
Figura 8 – Interfaces do pacote DAL. ........................................................................................ 29
Figura 9 – Classes concretas do pacote DAL............................................................................. 30
Figura 10 – Interfaces do pacote Business. ................................................................................ 31
Figura 11 – Classes concretas do pacote Business..................................................................... 31
Figura 12 – Diagrama de classes da plataforma......................................................................... 33
9
Figura 13 – Tela de cadastro de leitoras do protótipo. ............................................................... 36
Figura 14 – Tela de cadastro de produtos................................................................................... 37
Figura 15 – Tela de associação de itens a produtos.................................................................... 37
Figura 16 – Tela de execução do inventário............................................................................... 38
Figura 17 – Interfaces do pacote DAL. ...................................................................................... 45
Figura 18 – Classes concretas do pacote DAL........................................................................... 47
Figura 19 – Interfaces do pacote Business. ................................................................................ 51
Figura 20 – Classes concretas do pacote Business..................................................................... 51
Figura 21 – Diagrama de classes da plataforma......................................................................... 55
10
LISTA DE TABELAS
Tabela 1 – Padrões de etiqueta inteligente. ................................................................................ 19
11
INTRODUÇÃO
Atualmente indústrias e lojas precisam realizar inventário para os mais variados
propósitos; de uma simples contagem de produtos para garantir que o estoque suprirá a
demanda, até o objetivo de fazer uma contagem de bens por uma empresa de auditoria do
mercado de capitais.
Para realizar um inventário de bens e materiais as empresas precisam parar a
produção, alocar recursos humanos e realizar o inventário várias vezes até que se atinja um
grau de confiabilidade adequado.
O objetivo deste trabalho é apresentar uma ferramenta em estágio de protótipo de
inventário em tempo real utilizando etiqueta inteligente, apontar os empecilhos que existem em
sua aplicação e como tem sido seu desenvolvimento para superá-los.
Para atingir os objetivos aqui apresentados, foi desenvolvida a revisão bibliográfica
discorrendo sobre o histórico da tecnologia, os empecilhos que existem na aplicação desta e o
que se espera de seu futuro.
Na metodologia são apresentadas as ferramentas utilizadas e a solução técnica
adotada para o desenvolvimento do protótipo.
12
Finalmente chegamos à conclusão que é possível construir uma ferramenta em
estágio final de inventário em tempo real utilizando a tecnologia.
13
1 REVISÃO BIBLIOGRÁFICA
1.1 Histórico
Com a descoberta da onda contínua na primeira década do século 20, iniciou-se
uma nova era na comunicação por radiofreqüência moderna. Esta descoberta, que permitiu a
criação do radar, foi o passo mais importante para que, em 1948, a tecnologia de RFID (Radio
Frequency Identification (do inglês: “identificação por radiofreqüência”) fosse explorada pela
primeira vez pelo cientista Harry Stockman em seu artigo “Communication by Means of
Reflected Power” (LANDT, 2001).
Harry Stockman deixou claro o potencial da tecnologia, mas apontou vários
problemas a serem resolvidos até que fosse possível tornar a tecnologia utilizável. Esses
desafios fizeram-no concluir: “Evidentemente, muita pesquisa e desenvolvimento serão
necessários antes que os problemas básicos que ainda existem na comunicação por energia
refletida sejam resolvidos e aplicações para a tecnologia sejam exploradas1” (HARRY, 1948).
1
"Evidently, considerable research and development work has to be done before the remaining
basic problems in reflected-power communication are solved, and before the field of useful applications is
explored." (Tradução nossa).
14
Aproximadamente trinta anos seriam necessários para que as tecnologias que
resolveriam os problemas básicos apontados por Harry fossem desenvolvidas. Circuitos
integrados, transistores, microprocessadores e a evolução das redes de comunicação são apenas
alguns exemplos (LANDT, 2001).
Na década de 60, as primeiras atividades comerciais surgiram com sistemas
antifurto composto por transponder colocado nos produtos e antenas posicionadas nas portas
dos estabelecimentos que produziam um sinal sonoro quando o produto passava pelas antenas.
Era o prelúdio da expansão de sistemas RFID.
Na década seguinte, as pesquisas se intensificaram unindo companhias, governo,
inventores e instituições acadêmicas no sentido de explorar o potencial da tecnologia com
aplicações para o mundo real (LANDT, 2001).
Algumas companhias fizeram adoção da tecnologia ainda na década de 70,
enquanto estava em processo de desenvolvimento e testes. Isso contribuiu para que estes testes
fossem intensificados e para que na década de 80 a tecnologia estivesse madura para ser
fortemente explorada comercialmente, inicialmente apenas com sistemas antifurto e
identificação de produtos e materiais.
A década de 90 foi marcada pela criação de padrões que permitiriam
interoperabilidade e portabilidade para as aplicações já existentes. RFID foi largamente
difundido nesta época e passou a fazer parte do cotidiano das farmácias, supermercados,
indústrias e portos com aplicações de cadeia de suprimentos, sistemas contra falsificação,
identificação de produtos e identificação de contêineres.
1.2 O que é RFID?
RFID é um sistema composto por uma leitora com uma antena capaz de emitir
ondas eletromagnéticas e de uma etiqueta inteligente, comumente denominada “tag”, dotada de
um microchip composto por uma antena e uma memória capaz de gravar um identificador. A
15
leitora emite uma onda que é captada pela antena da etiqueta inteligente, a própria energia da
onda é utilizada para ler o identificador gravado na memória e para responder o sinal com o
valor do identificador. (GLOVER, 2007).
Figura 1 – Sistema RFID composto de uma leitora, uma antena, um transponder e um sistema de software
A figura 1 do sistema RFID representa um software que utiliza as informações das
etiquetas inteligentes, por exemplo, um software de inventário. A leitora é responsável por
gerar e interpretar sinais para fazer a comunicação com as etiquetas inteligentes; a antena é
responsável por emitir o sinal gerado pela leitora e captar o sinal emitido pela etiqueta
inteligente e, por fim, o transponder, que é o principal elemento do circuito de uma etiqueta
inteligente, é responsável por receber e retransmitir o sinal recebido de uma leitora. (GLOVER,
2007)
Esta tecnologia é apresentada como sucessora do código de barras (VIEHLAND,
2007). A maior limitação da tecnologia de leitura por código de barras foi vencida, pois não é
necessário que a leitora esteja alinhada com a etiqueta inteligente. Alguns problemas
relacionados a isto serão estudados na sessão “Futuro do RFID”.
16
1.3 Aplicações
Inúmeras aplicações podem ser citadas quando se fala de identificação por
radiofreqüência. Um dos mais conhecidos exemplos é o carrinho de compras inteligente.
Em um carrinho de compras de supermercado é instalada uma leitora RFID e um
monitor de cristal líquido. Os produtos devidamente identificados com etiquetas inteligentes
são colocados dentro do carrinho de compras e estas etiquetas inteligentes são lidas. Com isso é
possível informar em tempo real para o consumidor os produtos que estão na sua cesta de
compras, o valor da compra até aquele momento e eventualmente sugerir algum produto que
esteja em promoção. Com esta aplicação, a burocracia de um caixa convencional onde uma
pessoa é alocada na identificação produto a produto com uma leitora de código de barras foi
superada porque a leitura pode ser feita uma única vez dando agilidade ao processo de venda,
como exemplificado na figura 2.
Figura 2 – Carrinho de compras inteligente dotado de um sistema de identificação por radiofreqüência.
Apesar do conflito ético, outra aplicação de RFID que pode ser citada é a de
implante de chips em seres humanos e animais. Alguns bares europeus adotaram o sistema de
fazer implantes em clientes considerados importantes. A figura 3 ilustra a etiqueta inteligente
momentos antes de ser colocada na mão de uma pessoa exatamente na posição onde ficará após
a cirurgia.
17
Figura 3 – Implante de RFID em humanos.
A etiqueta pode ser utilizada também em animais para diversos propósitos, dentre
os quais estão controlar o tempo que cada animal passa em um pasto cercado, detectar fuga e
medicações aplicadas. A figura 4 mostra a utilização de etiquetas inteligentes em animais.
Figura 4 – Utilização de etiquetas inteligentes em animais.
Finalmente, podemos citar a aplicação em estoques para inventário em tempo real.
Um protótipo desta ferramenta foi desenvolvido neste trabalho. Atualmente indústrias e lojas
despendem recursos para realização de inventário, pois para realizá-lo é necessário interromper
movimentações no estoque e alocar recursos humanos para realizar a tarefa. Aplicando a
tecnologia de identificação por radiofreqüência, poderíamos ter uma posição do estoque em
tempo real sem nenhum custo além do custo de implantação e manutenção da tecnologia.
18
1.4 Padronização
A padronização é fundamental para que a tecnologia ganhe escala no mundo. Para
que uma cadeia de suprimentos possa ser estabelecida utilizando a tecnologia, seria necessário
que todos os parceiros da cadeia utilizassem a mesma padronização (WENG, 2004).
Infelizmente existem padrões concorrentes e não há um consenso para que haja um
único padrão. Um distribuidor que forneça produtos para duas empresas que adotem padrões
distintos terá que produzir com os dois padrões para poder fornecer para ambas as empresas.
A padronização dos protocolos e etiquetas inteligentes começou na década de 90.
Com o DoD (Department of drugs, do inglês: “Departamento de medicamentos”) dos Estados
Unidos e varejistas como Wal-Mart e Tesco exigindo que seus fornecedores implementassem a
tecnologia utilizando padrões emergentes houve volume para que os padrões se solidificassem
(VIEHLAND, 2007).
Padrões para diversos propósitos começaram a emergir, mas apenas dois são
relevantes de nota; o EPCIS da EPCGlobal e o ISO/IEC 15961:2004 da ISO. O padrão da
EPCIS teve maior aceitação em aplicações de cadeia de suprimento enquanto o padrão da ISO
tem sido aplicado para propósitos gerais.
A tabela 1 relaciona os diferentes tipos de etiquetas inteligentes.
Tabela 1 – Padrões de etiqueta inteligente. (GLOVER, 2007)
Identificador
SGTIN
SSCC
GLN
GRAI
GIAI
GID
Nome
Serial Global de
Mercadorias
Serial
para
Contêineres
Número Global de
Localização
Identificador Global
de Itens Retornáveis
Identificador Global
de Item Único
Identificador
Genérico
Uso pretendido
Exemplo
Rastreamento de itens Pneus individuais
Contêineres de envio
Um contêiner
Localizações
Um local estratégico
Itens de biblioteca e Um carro de uma
aluguel
locadora
Rastreamento de bens Um computador de
um escritório
IDs individuais
Novos esquemas de
identificação
19
O padrão mais difundido é o EPCIS. Desenvolvido pela EPC Global para definir
interfaces que tornem possível o compartilhamento de dados entre parceiros de negócios de
uma cadeia de suprimentos, conforme citado anteriormente. Este padrão define como sistemas
de informática devem interagir com a leitora. O padrão não será objeto de estudo deste
trabalho.
1.5 Futuro do RFID
“Internet das coisas” é apontada como o futuro da identificação por
radiofreqüência. Com a redução do custo das leitoras e etiquetas inteligentes, espera-se que em
um futuro não distante todos os objetos sejam identificados, o que possibilitará muitas outras
aplicações.
Gloover (2007, p. 6) afirma:
“Neste período objetos físicos serão conectados à internet
através de suas identidades digitais. Da mesma forma que esperamos ser
capazes de fazer uma pesquisa rápida pela internet para descobrir a
resposta para um a questão obscura de um jogo de perguntas, esperamos
ser capazes de passar uma garrafa de refrigerante por um telefone celular
e descobrir onde e em que período de tempo específico o refrigerante foi
fabricado e, se quisermos, a última localização conhecida de cada outra
garrafa desse refrigerante fabricada na mesma hora em uma determinada
localização.” (GLOVER, 2007).
Entretanto a tecnologia ainda apresenta vários pontos de melhoria dentre eles,
alguns serão citados.
Anti-Colisão: Ocorre colisão quando os sinais de dois ou mais leitores se
sobrepõem. A etiqueta inteligente não é capaz de responder aos dois leitores simultaneamente.
20
(GLOVER, 2007). Aplicações do mundo real lêem várias etiquetas inteligentes ao mesmo
tempo. (LEE, 2004).
Reengenharia de processos de negócio: O sucesso da tecnologia depende de quão
bem ela se adequar aos processos de negócio (HANEBECK, 2004). Hanebeck sugere que ao
invés de adequar os processos de negócio atuais da empresa, novos processos sejam definidos,
explorando melhor os benefícios do RFID, considerando as limitações que foram vencidas. Por
exemplo, se antes era necessário fazer uma leitura do código de barras item a item para dar
entrada em estoque, é possível agora dar entrada em todos os itens em uma única leitura.
Falta de profissionais qualificados no mercado: Uma pesquisa do CompTIA
(Computing Technology Industry Association) apresenta que 80% das empresas que planejam
implementar a tecnologia acreditam que não há profissionais suficiente no mercado de RFID
(O’CONNOR, 2005). Trata-se de profissionais que estejam realmente capacitados a especificar
e executar projetos com a tecnologia. Atualmente a CompTIA fornece programas de
capacitação e certificação na tecnologia.
Orientação: Apesar da etiqueta inteligente não precisar necessariamente estar na
linha de visão da antena, se ela estiver perpendicular em relação à antena, o sinal pode não ser
captado pela leitora (WANT, 2004).
Desempenho: Leitoras podem falhar na leitura da etiqueta inteligente por várias
razões, como por exemplo, o sinal pode ser refletido por estrutura metálica ou meio líquido
(JUELS, 2006), pela forma como o produto é manuseado (MICHAEL, 2005), por estar em
meio eletromagnético, ou mesmo pelo fato do produto passar rapidamente pela antena
(SINGER, 2004). A adoção da tecnologia justificaria modificar a forma como os produtos são
embalados, possibilitando a resolução desses problemas (WANT, 2004).
Privacidade: Um produto que possua uma etiqueta inteligente com informações
sobre o produto, está susceptível ao uso indevido por um indivíduo mal intencionado que
capture as informações da etiqueta inteligente. (JUELS, 2006; MICHAEL, 2005).
Alcance: Dependendo das condições de ambiente, sistemas de RFID de alta
freqüência têm um alcance médio de 11 metros, podendo se estender de acordo com as
21
condições de ambiente (ASIF, 2005). Esta limitação pode inviabilizar a implantação de
algumas aplicações, como por exemplo, projetos de inventário em tempo real de baixo custo já
que muitas antenas serão necessárias para que o projeto possa ser implantado.
Segurança: Pelo fato de ser uma tecnologia sem fio, há riscos de confidencialidade,
integridade da informação, garantia de que a informação é fornecida a quem de direito.
(JUELS, 2006; RANASINGHE, 2008; SARMA, 2002).
Custo: Em 2005 nos Estados Unidos, uma etiqueta inteligente custava de 15 a 75
centavos de dólar o que com o volume pode se tornar montantes significativos e proibitivos à
implantação da tecnologia. As leitoras variam no preço de 100 a 2000 dólares (ASIF, 2005).
Atualmente uma etiqueta inteligente de baixo custo tem o preço de 5 centavos de dólar.
Padronização: O mapeamento de um produto entre parceiros de uma cadeia de
suprimentos é fundamental para a adoção da tecnologia (MICHAEL, 2005). A padronização é
fundamental para a definição do protocolo, formato da codificação da etiqueta inteligente,
estrutura de dados. Atualmente existem padrões que competem no mercado (como ISO e
EPCGlobal) o ideal, como vimos, seria que apenas um padrão existisse (WENG, 2004).
Integração: Para funcionar corretamente um sistema de etiqueta inteligente deve ser
o centro da integração entre as estruturas, equipamentos e sistemas de informação da
organização (CLARKE, 2008). No futuro os sistemas de uma organização, de seus
fornecedores e de seus clientes estarão integrados o que trará benefícios de planejamento e
eficiência (LARSSON, 2004).
Segundo Viehland (2007), os três pontos de melhoria mais importantes para os
próximos dois anos da tecnologia são (nesta ordem de importância) padronização, custo e
integração.
22
2 Metodologia
O protótipo de inventário em tempo real desenvolvido neste trabalho foi construído
para simular a leitura de todos os itens de um estoque que estão equipados com etiquetas
inteligentes previamente cadastradas.
A arquitetura proposta para esta solução prevê que seja extensível e poderá ser
utilizada da mesma forma que foi concebida em forma de protótipo.
Para satisfazer os requisitos não funcionais apontados no parágrafo anterior, a
solução técnica foi desenvolvida obedecendo ao padrão MVC (Model-View-Controller do
inglês: “Modelo-Visão-Controle”), utilizando o paradigma de programação orientada a objetos,
mapeamento objeto relacional e arquitetura modelada em camadas. Para permitir que outras
aplicações utilizem o protótipo, foi criada uma camada de serviços e uma biblioteca reutilizável
com uma plataforma para tratar exclusivamente da comunicação com leitoras RFID.
Finalmente, como plataforma de desenvolvimento foi escolhido o “.Net” Framework. Estes
elementos serão melhor detalhados a seguir.
23
2.1 Model View Controller
O padrão MVC permite que o sistema esteja dividido de tal forma que seja possível
alterar os componentes do software sem que o restante da aplicação sofra impacto.
(MICROSOFT, 2008-a). Isso torna o código fonte da aplicação mais fácil de manter e provê
baixo acoplamento (REENSKAUG, 2005).
O objetivo é separar as regras de negócio da forma como os dados são trazidos de
uma camada de persistência de dados, seja ela qual for, e da forma como estes dados são
apresentados para o usuário final da aplicação.
2.2 Programação Orientada a Objetos
Segundo KÖLLING (2005), a Orientação a Objetos foi uma grande revolução no
conceito de desenvolvimento de software no que diz respeito à organização e abstração. A
construção de uma aplicação orientada a objetos deve ser feita para permitir fácil manutenção
no código, reuso de objetos implementados, alta coesão e baixo acoplamento.
2.3 Mapeamento Objeto Relacional
A orientação a objetos trouxe uma nova abordagem mais adequada à forma como
os dados são persistidos (KELLER, 2004). Embora a orientação a objetos tenha permitido que
a programação estivesse em uma linguagem mais próxima da linguagem humana, o desafio de
armazenar estes objetos se tornou um problema. Uma das abordagens para a solução deste
problema é o mapeamento objeto relacional. Com o mapeamento objeto relacional, é possível
definir a forma que um objeto é armazenado em um banco de dados relacional. A partir desta
abstração sobre a persistência, torna-se possível o desenvolvimento de aplicações em camadas
(YODER, 1998).
24
2.4 Plataforma “.Net”
A plataforma gratuita “.NET” e a IDE (Integrated Development Envirioment, do
inglês: “Ambiente de desenvolvimento integrado”) Visual Studio 2005 permitem um
desenvolvimento produtivo. A arquitetura é portável, suportando qualquer linguagem
implementada sobre a linguagem intermediária que define tipos e operações encontradas na
maioria das linguagens. Esta linguagem intermediária é denominada MSIL (Microsoft
Intermediate Language, do inglês: “Linguagem Intermediária Microsoft”). Atualmente,
aproximadamente 65 linguagens de programação já têm compiladores aderentes às regras da
MSIL para dar suporte à plataforma (dentre elas: C#, C++, VB.NET, J#, COBOL, Phyton,
Perl, Delphi, Haskel, Smalltalk, Eiffel). A plataforma “.Net” possui ainda um conjunto de
classes re-utilizáveis para diversos fins, denominada FCL (Framework Class Library. do
inglês: “plataforma comum de biblioteca de classes”). (MICROSOFT, 2008-b)
2.5 Ferramentas
Para desenvolver o protótipo de uma aplicação de inventário em tempo real foi
utilizada a linguagem de programação C# da plataforma “.Net” da Microsoft, como ambiente
de desenvolvimento integrado o Visual Studio 2008 e como sistema de banco de dados o SQL
Server 2005 versão Express.
Os equipamentos utilizados foram um notebook Vaio VGN-FZ150E, um simulador
de leitora com duas antenas, dez etiquetas inteligentes RFID codificadas no padrão SGTIN
(Serialized Global Trade Item Number, do inglês: Identificador de Item Global Serializado).
O protótipo foi desenvolvido no laboratório da E-NOVAR Soluções Tecnológicas
LTDA.
25
2.6 Visão da solução
No protótipo, o usuário é capaz de realizar login, cadastrar produto, cadastrar item
de produto, realizar inventário e cadastrar leitora conforme diagrama de casos de uso na figura
5.
Realizar Login
«uses»
«uses»
Cadastrar Produto
«uses»
Cadastrar Item de
Produto
«uses»
Usuário
Realizar Inventário
«uses»
Cadastrar Leitora
Figura 5 – Diagrama de casos de uso da solução. Os casos de uso são “Realizar Login”, “Cadastrar Produto”,
“Cadastrar Item de Produto”, “Realizar Inventário” e “Cadastrar Leitora”.
A solução foi desenvolvida utilizando o padrão MVC (Model-View-Controller, do
inglês: “Modelo-Visão-Contole). Este padrão separa em três camadas a aplicação. A primeira
camada consiste da visão da solução (view). A visão é o meio pelo qual o usuário irá interagir
com o sistema. A segunda camada consiste na lógica de negócios da aplicação (controller).
Finalmente, a terceira camada trata da persistência da aplicação (model).
Outras camadas e bibliotecas serão necessárias para viabilizar o padrão MVC e o
desenvolvimento da solução. Chamaremos a camada de apresentação de “WEB”, a camada de
negócios de “Business” e a camada de persistência de “DAL”. Na figura 6 se encontra um
diagrama com todos os pacotes da solução:
26
«bind»
Web
«bind»
«bind»
ServiceHost
Service
«bind»
«bind»
«bind»
Common
«bind»
RFIDReaderFramework
Business
«bind»
«bind»
DAL
Figura 6 – Diagrama de pacotes da solução. Apresenta o relacionamento entre componentes da solução.
2.7 Common
O pacote “Common” contém as entidades e as classes utilitárias da solução. O
diagrama da figura 7 mostra as entidades que foram definidas para desenvolver a solução.
27
Figura 7 – Diagrama de classes do pacote Common.
A classe ProductEntity representa um produto. Para este protótipo, apenas o nome
do produto será necessário.
A classe ProductItemEntity representa um item de um produto. Para que um item
de um produto possa ser cadastrado, é necessário que o produto esteja previamente cadastrado.
O usuário faz uma leitura no momento do cadastramento para que seja cadastrada também a
etiqueta inteligente que está associada ao produto.
A classe UserEntity representa um usuário no sistema. Para realizar login no
sistema, é necessário que um usuário esteja previamente cadastrado.
Finalmente a classe ReaderEntity representa uma leitora. As leitoras deverão ser
cadastradas no sistema para que um inventário possa ser realizado. Para estabelecer
comunicação com uma leitora ethernet são necessários o IP da leitora, a porta do serviço, o
nome de usuário e a senha.
28
2.8 DAL
O pacote “DAL” é a camada responsável pela persistência dos dados da aplicação.
O diagrama da figura 8 apresenta as interfaces exportadas por esta camada. Maiores detalhes
sobre o diagrama podem ser encontrados no anexo 1.
Figura 8 – Interfaces do pacote DAL.
Os objetos concretos são criados por uma fábrica abstrata e retornados
encapsulados em interfaces para permitir que no futuro o protótipo possa ser estendido e
consiga acessar outras fontes de dados que não especificamente a que foi definida na
metodologia deste trabalho. As classes concretas e a fábrica abstrata estão representadas na
figura 9. Maiores detalhes sobre o diagrama podem ser encontrados no anexo 1.
29
Figura 9 – Classes concretas do pacote DAL.
2.9 Business
O pacote “Business” contém as regras de negócio da solução. Assim como a
camada “DAL” possui uma interface que encapsula os objetos instanciados pela fábrica
abstrata. O objetivo é impedir que os objetos de negócio possam ser instanciados diretamente e
permitir que o protótipo possa evoluir para uma aplicação real. A figura 10 apresenta as
interfaces de negócio exportadas pela camada de negócio. Maiores detalhes sobre o diagrama
podem ser encontrados no anexo 1.
30
Figura 10 – Interfaces do pacote Business.
As classes concretas e a fábrica abstrata estão representadas no diagrama da figura
11. Maiores detalhes sobre o diagrama podem ser encontrados no anexo 1.
Figura 11 – Classes concretas do pacote Business.
31
2.10 Plataforma de leitura
Foi desenvolvida uma plataforma para tratar especificamente da comunicação com
a leitora. Esta Plataforma é extensível para suportar outras leitoras, mas para este protótipo
admitir-se-á compatibilidade apenas com a leitora definida neste documento.
O diagrama da figura 12 mostra como a plataforma foi modelada para ser
extensível. As leitoras são instanciadas através da classe ReaderFactory, que implementa o
padrão AbstractFactory, enquanto este permite que com uma mesma interface diferentes
objetos concretos sejam manipulados. A ReaderFactory instancia o objeto encapsulando-o na
interface IReader que exporta os métodos readFirstTag e readTagList. O método readFirstTag
retorna a primeira etiqueta inteligente lida pela leitora no formato da classe RFIDTag e o
método readTagList retorna uma lista com todas as etiquetas inteligentes que estão sendo lidas
pela leitora naquele momento. Estes métodos serão suficientes para o desenvolvimento deste
protótipo. Maiores detalhes sobre o diagrama podem ser encontrados no anexo 1.
32
Figura 12 – Diagrama de classes da plataforma.
2.11 Outras camadas e bibliotecas
A camada de apresentação (“WEB”) é desenvolvida com a tecnologia ASP.Net.
Esta aplicação consome um serviço que é hospedado pelo pacote “ServiceHost”. As bibliotecas
de serviço estão definidas no pacote “Service”.
33
Estes serviços utilizam a tecnologia WebService para permitir que qualquer
aplicação possa ser escrita futuramente para utilizar os serviços expostos nesta solução visando
a interoperabilidade.
34
3 Resultados obtidos
Através da revisão bibliográfica deste trabalho foi apresentada a história da
tecnologia de identificação por radiofreqüência, alguns desafios atuais para sua aplicação e as
diversas perspectivas do futuro da tecnologia.
A solução técnica apresentada na metodologia visava a construção de um protótipo
funcional que validasse uma arquitetura consistente que pudesse ser utilizada na evolução de
um produto final.
O protótipo foi construído conforme a arquitetura dividida em camadas apresentada
no capítulo referente à metodologia utilizando o ambiente integrado de desenvolvimento
Visual Studio 2008 com a linguagem C# da plataforma “.Net”, utilizando o simulador de
leitoras RFID conhecido por RIFIDI em sua versão 1.4.2 e utilizando o sistema gerenciador de
banco de dados SQL Server 2005 validando a solução técnica apresentada.
Apesar de este projeto ter sido desenvolvido utilizando um emulador de leitoras
RFID, o protótipo está pronto pra funcionar com a leitora Alien ALR9800, descartando a
necessidade do emulador.
O emulador citado no parágrafo anterior é um software capaz de reproduzir com
fidelidade o protocolo de comunicação da leitora Alien ALR9800 tornando possível a
simulação da leitura de etiquetas inteligentes. Através deste software é possível criar leitoras e
etiquetas virtuais que podem ser acessadas através do protótipo.
35
A leitora Alien ALR9800 utiliza um protocolo proprietário da Alien de fácil
implementação. Foi escolhida neste protótipo pela simplicidade e por ser suficiente para provar
o conceito apresentado neste trabalho.
Para utilizar o protótipo, primeiramente é necessário cadastrar as leitoras RFID que
serão utilizadas, fornecendo ao sistema as informações necessárias para estabelecer conexão
com as mesmas. As informações necessárias para esta conexão são: o nome da leitora, seu IP,
porta, nome de usuário e senha.
A figura 13 mostra a tela de cadastro de leitoras.
Figura 13 – Tela de cadastro de leitoras do protótipo.
Uma vez que as leitoras estão cadastradas é necessário cadastrar também os
produtos que serão monitorados pelo protótipo. Para este protótipo apenas a informação do
nome do produto será suficiente uma vez que o propósito deste protótipo é provar conceito.
A figura 14 mostra a tela de cadastro de produtos.
36
Figura 14 – Tela de cadastro de produtos.
Tendo cadastrados os produtos, será necessário fazer a leitura dos itens de produtos
para que o sistema tome conhecimento da existência dos mesmos e possa fazer a associação
entre a etiqueta inteligente e o produto.
A figura 15 mostra a tela de associação de itens de produtos a produtos.
Figura 15 – Tela de associação de itens a produtos.
Com as informações cadastradas de leitoras, produtos e itens de produto o protótipo
está preparado para realizar o inventário em tempo real. O protótipo mostrará a lista de
produtos encontrados, a lista de produtos não encontrados e a lista de etiquetas desconhecidas
capturadas pela leitora.
A figura 16 mostra a tela do protótipo após a execução do inventário em tempo
real. Neste exemplo (meramente ilustrativo), o inventário identificou 2 Paracetamol, 2
37
Valeriane e 2 Ritmoneurin nas prateleiras, percebeu a ausência de 1 Ritmoneurin e 1
Paracetamol e identificou 2 etiquetas inteligentes que não foram associadas a nenhum produto.
Figura 16 – Tela de execução do inventário.
Em uma farmácia com aproximadamente 100.000 itens de produto o processo de
inventário manual completo demora aproximadamente 90 homens-hora. Com este protótipo, o
mesmo resultado seria obtido instantaneamente, comprovando a eficácia e a rapidez do
protótipo na execução de um inventário. Estas informações foram cedidas por um gerente da
farmácia Dose Certa de Fortaleza.
38
4 Conclusão
Os resultados obtidos comprovam a viabilidade do desenvolvimento de uma
solução em estágio final para realização de inventário em tempo real utilizando RFID e um
software com a arquitetura proposta neste trabalho. A tecnologia está sendo desenvolvida no
sentido de superar os empecilhos de sua implantação, porém estes não impedem a aplicação da
mesma em ambiente de produção.
Trata-se de uma plataforma consistente que quando transformada em produto final
reduzirá custos e permitirá processos mais eficientes nos diversos seguimentos de mercado que
fazem inventário.
Para que este protótipo possa ser utilizado como produto final será necessário
desenvolver mecanismos para integração com outros sistemas que facilite a implantação da
solução.
Será necessário também codificar a comunicação com outros protocolos além do
protocolo proprietário da Alien para a leitora ALR 9800 para que a solução possa abranger o
maior número possível de leitoras.
Para garantir a confiabilidade da solução é importante que uma bateria de testes
com leitoras reais utilizando várias etiquetas inteligentes seja feita com sucesso. Resultados
adversos não estudados neste trabalho podem ser apontados com este tipo de teste.
39
Os próximos passos estão também intimamente ligados à evolução da tecnologia de
identificação por radiofreqüência. À medida que os problemas da tecnologia apontados neste
documento forem solucionados, novas perspectivas para esta solução podem ser desenvolvidas.
40
REFERÊNCIAS
ASIF, Z; Mandviwalla, M. Integrating the supply chain with RFID: A technical and
business analysis. Communications of the Association for Information Systems, vol. 15, pp.
393-427, 2005.
GLOVER, Bill; BHATT, Himanshu. Fundamentos de RFID: teoria e prática. Rio de Janeiro:
Alta Books. 2007.
HANEBECK, Hanns-Christian. Processes management and RFID. Disponível em:
<http://www.globeranger.com/pdfs/futureoftheedge/ProcessManagementandRFID.pdf>.
Acesso em 07 mar. 2008. Publicado em 2004.
HARRY, Stockman. Communication by means of reflected power. In Proceedings of the
IRE, vol. 36 no.10, pp.1196-204. 1948.
JUELS, Ari. RFID security and privacy: A research survey. IEEE Journal on Selected Areas
in Communications, vol. 24, no. 2, pp. 381-394. Fevereiro, 2006.
LANDT, Heremy. Shrounds of Time The History of RFID. Disponível em:
<http://www.transcore.com/pdf/AIM%20shrouds_of_time.pdf>. Acesso em 01 mar. 2008.
Publicado em 2001.
LEE, Jeongkeun et. al. Analysis of RFID anti-collision algorithms using smart antennas. in
Proceedings of the 2nd International Conference on Embedded Network Sensor Systems.
pp. 265-266. Baltimore. 2004.
MICHAEL, Katiana; MCCATHIE, Luke. The pros and cons of RFID in supply chain
management. In proceedings of the 4th International Conference on Mobile Business. pp.
623-629. Sydney, Australia, 2005.
O’CONNOR, M. Survey warns of low RFID talent pool. Disponível em:
<http://www.rfidjournal.com/article/articleview/1450/1/1/>. Acessado em 08 mar. 2008.
publicado em 2005.
41
RANASINGHE C. D.; ENGELS D. W.; COLE P. H. Low-cost RFID systems: Confronting
security
and
privacy.
Disponível
em:
<http://www.m-lab.ch/autoid/SwissReWorkshop/papers/LowCostRFIDConfrontingSecurityAndPrivacy.pdf>. Acesso em
12 abr. 2008.
SARMA, S; WEIS, S; ENGELS, D. RFID systems, security and privacy implications.
Disponível em: <http://saweis.net/pdfs/ches-rfid.pdf>. Acessado em 15 abr. 2008. Publicado
em 2002.
SINGER, Tom. Understanding RFID: a pratical guide for supply chain professionals.
Disponível em: <http://www.usingrfid.com/features/read.asp?id=17>. Acesso em 09 abr. 2008.
VIEHLAND, Dennis; WONG. Aaron. The future of radio frequency identification. Nova
Zelândia. 2007.
WANT, Roy. The magic of RFID, ACM Queue, vol. 2, no. 7. Outubro, 2004.
WENG,
J.
RFID
standardization
in
China.
Disponível
em:
<http://www.scholarlyexchange.org/journals/journalindex.php?action=dumpfile&binarytable=
Articlepdfs&file_id=13&journal_id=18&dumpfile=1>. Acesso em 12 abr. 2008. Publicado em
2004.
MICROSOFT. Microsoft Pattern Share, Model View Controler, <Disponível em:
http://msdn.microsoft.com/en-us/library/ms998572.aspx >. Acessado em 25 de Agosto de
2008-a.
MICROSOFT; MSDN, <Disponível em: http://www.microsoft.com/brasil/msdn>. Acessado
em 25 de Agosto de 2008-a.
REENKSAUG,
Trygve
MVC
Pattern.
Disponível
em:
<http://heim.ifi.uio.no/~trygver/2003/javazone-jaoo/MVC_pattern.pdf> Trygve Reenskaug
KÖLLING, Michael; KOCH, Bett; ROSEMBERG, John. Requirements for a first year objectoriented teaching language. In Proceedings of the twenty-sixth SIGCSE technical
symposium on Computer science education. pp. 173 - 177.Nashville, Tennessee, United
States. 1995.
KELLER, Wolfgang, Persistence Options for Object-Oriented Programs. Disponível em:
<http://www.objectarchitects.de/ObjectArchitects/events/OOP2004/PersistenceOptionsOOP20
04e.pdf>, Acessado em 28 de Agosto de 2008.
YODER, Joseph; JOHNSON, Ralph; WILSON, Quince. Connecting Business Objects to
Relational
Databases.
Disponível
em:
<http://www.joeyoder.com/Research/objectmappings/Persista.pdf>, Acessado em 28 de
Agosto de 2008.
CLARKE, Robert. Radio frequency identification: Will it work in your supply chain?.
Disponível em <http://www.packmgmt.com/education/msu/clarke.pdf>, Acessado em 21 de
setembro de 2008.
42
LARSSON Björn; QVIBERG Ola. Evalution and justification of an RFID implementation.
Disponível em <http://www.diva-portal.org/diva/getDocument?urn_nbn_se_liu_diva-27341__fulltext.pdf>, Acessado em 28 de Agosto de 2008.
43
ANEXO I
44
O objetivo deste anexo é detalhar as funções apresentadas nos diagramas
mostrados na metodologia deste trabalho.
Diagrama de interfaces da camada de acesso a dados.
Figura 17 – Interfaces do pacote DAL.
A figura acima é um diagrama de classes que apresenta as interfaces exportadas
pelo sistema na camada de acesso a dados. Todas as interfaces da camada de dados devem
realizar a interface “IDAO” que contém a assinatura dos métodos mais básicos:
Insert: Insere um novo objeto no banco de dados. Assim como as demais operações
desta interface, o tipo do objeto dependerá da classe concreta que será apresentada no próximo
diagrama.
Update: Persiste as alterações feitas no objeto na base de dados.
Delete: Remove o objeto da base de dados.
GetAll: Solicita ao banco de dados todos os objetos do tipo da classe concreta.
GetByID: Retorna o objeto filtrando pelo identificador.
45
A interface IProductDAO exporta a assinatura getProductsByName e retorna todos
os produtos que possuem o nome especificado na entidade passada por parâmetro.
A interface IProductItemDAO exporta a assinatura getByProductName que retorna
todos os itens de produto que referenciam um produto com o nome especificado na entidade
passada por parâmetro.
A interface IUserDAO exporta a assinatura getByUsername que filtra os usuários
por um nome de usuário especificado na entidade passada por parâmetro.
46
Diagrama de classes concretas da camada de acesso a dados
Figura 18 – Classes concretas do pacote DAL.
O diagrama acima apresenta as classes concretas da camada de acesso a dados. As
assinaturas exportadas pela classe AbstractSQLDAO, AbstractDAO e DAOFactory. Os
métodos exportados pelas classes ReaderDAO, UserDAO, ProductDAO e ProductItemDAO
possuem propósito idêntico ao apresentado no capítulo anterior e não serão detalhados.
A classe AbstractSQLDAO abstrai a comunicação com o Microsoft SQL Server e
provê funções recorrentes em sistemas..
AssignConnection: Associa uma conexão a um SqlCommand. O SqlCommand é a
classe da plataforma .Net que representa um comando que pode ser disparado contra um banco
de dados.
47
BeginTransaction: Inicia uma transação no objeto de conexão associado ao
AbstractSQLDAO.
CloseConnection: Fecha uma conexão aberta com o banco dados finalizando
abruptamente eventuais transações que não foram terminadas normalmente.
CommitTransaction: Quando uma transação é iniciada, todas as operações
associadas àquela conexão não são efetivamente aplicadas no banco de dados. Este comando é
responsável por efetivar a transação.
CreateConnection: Cria uma nova conexão a partir do pool de conxões inicializado
no método InitConnectionPool.
Init: Cria as instâncias dos membros privados para que o objeto possa ser utilizado.
Este método é invocado pelo construtor da classe.
InitConnectionPool: Inicializa um pool de conexões baseado nas configurações
feitas em arquivo XML.
OpenConnection: Abre a conexão da SQLConnection definida para este objeto pela
função Init.
RollBack: Desfaz a transação corrente perdendo eventuais alterações feitas.
UpdateConnectionPool: Lê novamente o arquivo XML para atualizar o pool de
conexões.
A classe AbstractDAO tem o objetivo abstrair a implementação concreta dos
métodos mais recorrentes de acesso a dados. Abaixo o detalhamento de cada um deles.
AddParameters: É um método abstrato e que portanto precisa ser sobrescrito na
classe que estende esta classe. Tem o objetivo de informar para o SqlCommand os valores dos
parâmetros baseado na entidade trafegada para a camada de acesso a dados. É através deste
método que é possível informar para o banco de dados os valores de um registro a partir de
uma entidade.
48
Delete: Invoca o generic execute passando o commando de excluir um registro no
banco de dados.
FactoryEntity: É um método abstrato e que portanto precisa ser sobrescrito na
classe que extende esta classe. Este método prepara uma entidade a partir de um registro. É
através deste método que é possível criar um objeto através de um registro no banco de dados.
FactoryEntityList: Fabrica uma lista de entidades a partir de um DataSet.
GenericExecute: Executa um método que não precisa retornar resultados.
GenericGet: Operação genérica para retornar um registro do banco de dados na
forma de objeto.
GenericGetList: Operação genérica para retornar uma lista de registro do banco de
dados na forma de lista encadeada.
GenericGetScalar: Operação genérica para retornar um escalar a partir de uma
consulta.
GetAll: Retorna todos os registros do banco de dados da classe que extende esta
classe na forma de lista encadeada.
GetByID: Retorna um objeto do banco de dados filtrado a partir de um
identificador único.
GetGeneratedID: Retorna o identificador gerado automaticamente após uma
inserção.
GetNextUniqueIdentifier: Descobre o próximo identificador único do objeto
fazendo uma consulta ao banco de dados.
Insert: Invoca o genericExecute para incluir um novo registro no banco de dados a
partir dos valores informados na entidade passada por parâmetro.
Update: Invoca o genericExecute para atualizar os valores de uma entidade no
banco de dados.
49
A classe DAOFactory tem o objetivo esconder a construção das classes concretas
para permitir que o comportamento de criação possa ser alterado caso necessário.
Factory: Fabrica uma classe concreta a partir de uma interface passada por
parâmetro.
GetInstance: Retorna a única instância da classe. O construtor da classe
DAOFactory é privado de forma que só é possível retornar uma instância desta classe através
deste método.
50
Diagrama da camada de negócios
Figura 19 – Interfaces do pacote Business.
Os métodos das interfaces de negócio apresentados no diagrama acima têm
bastante similaridade com os métodos da classe de acesso a dados. A diferença é no
comportamento, pois nesta camada estão codificadas as regras de negócio da aplicação.
Figura 20 – Classes concretas do pacote Business.
51
O diagrama acima mostra as classes concretas da camada de negócio. A classe
abstrata AbstractBusiness contém implementações comuns a todas as classes de negócio.
Delete: Implementação genérica para a operação de exclusão de uma entidade.
Deve ser sobrescrito para que as regras de negócio específicas sejam codificadas.
GetAll: Implementação genérica para a operação de selecionar todas as entidades
cadastradas na base de dados. Deve ser sobrescrito para que as regras de negócio específicas
sejam codificadas.
GetByID: Implementação generic para a operação de selecionar uma única
entidade filtrada pelo identificador da mesma. Deve ser sobrescrito para que as regras de
negócio específicas sejam codificadas.
GetDAO: Este método abstrato deve ser sobrescrito para permitir as
implementações genéricas detalhadas aqui. A classe concreta que implementa esta classe
abstrata tratará da construção da classe de acesso a dados que será utilizada pelos métodos
genéricos.
Insert: Implementação genérica para a operação de incluir uma nova entidade.
Deve ser sobrescrito para que as regras de negócio específicas sejam codificadas.
Update: Implementação genérica para a operação de atualizar uma entidade. Deve
ser sobrescrito para que as regras de negócio específicas sejam codificadas.
A classe BusinessFactory tem o objetivo esconder a construção das classes
concretas para permitir que o comportamento de criação possa ser alterado caso necessário.
Factory: Cria uma nova instância da classe concreta encapsulada na interface
passada por parâmetro.
GetInstance: Retorna a única instância da classe BusinessFactory.
A classe UserBusiness
contém as regras de negócio específicas da entidade
usuário.
52
GetByUsername: Retorna o usuário passado cujo nome de usuário coincida com a
propriedade username da entidade passada por parâmetro.
GetDAO: Cria uma instância da classe UserDAO que será utilizada pela classe
abstrata nos métodos genéricos.
Insert: Sobrescreve o comportamento da classe abstrata para implementar as regras
de negócio específicas da inserção de um usuário.
Update: Sobrescreve o comportamento da classe abstrata para implementar as
regras de negócio específicas da atualização de um usuário.
A classe ProductBusiness contém as regras de negócio específicas da entidade
produto.
GetDAO: Cria uma instância da classe ProductDAO que será utilizada pela classe
abstrata nos métodos genéricos.
GetProductByName: Retorna uma lista de produtos cujo nome de usuário se
aproxime com a propriedade Name da entidade passada por parâmetro.
Insert: Sobrescreve o comportamento da classe abstrata para implementar as regras
de negócio específicas da inserção de um produto.
Update: Sobrescreve o comportamento da classe abstrata para implementar as
regras de negócio específicas da atualização de um produto.
A classe ProductItemBusiness contém as regras de negócio específicas da entidade
item de produto.
GetDAO: Cria uma instância da classe ProductItemDAO que será utilizada pela
classe abstrata nos métodos genéricos.
GetByProductName: Retorna uma lista de itens de produto filtrados pelo nome do
produto.
53
A classe ReaderBusiness contém as regras de negócio específicas da entidade
leitora. A entidade leitora representa uma leitora RFID.
GetDAO: Cria uma instância da classe ReaderDAO que será utilizada pela classe
abstrata nos métodos genéricos.
GetReaderByName: Retorna a leitora cadastrada que contenha o mesmo nome da
entidade passada por parâmetro.
54
Diagrama de classes da camada de comunicação com RFID
Figura 21 – Diagrama de classes da plataforma.
O diagrama acima apresenta o conjunto de classes que compoem a camada de
comunicação com as leitoras RFID.
A classe abstrata AbstractReader deve ser extendida por classes abstratas que
implementem um meio de comunicação. A plataforma já implementa comunicação ethernet
TCP/IP.
55
UseAuthentication: Especifica se a leitora usa autenticação antes de trocar
informações.
Password: Se a leitora utilizar autenticação, esta propriedade representará o
password que deverá ser enviado para a leitora no momento da autenticação.
UserName: Se a leitora utilizar autenticação, esta propriedade representará o nome
de usuário que deverá ser enviado para a leitora no momento da autenticação.
Connect: Este método abstrato tem o propósito de estabelecer comunicação com
uma leitora.
Disconnect: Este método abstrato tem o objetivo de finalizar a comunicação com
uma leitora.
A classe abstrata AbstractEthernetReader deve ser extendida para implementar o
protocolo de uma leitora ethernet compatível com a plataforma.
Door: Propriedade que especifica a porta da leitora em uma rede ethernet.
IP: IP da leitora em uma rede ethernet.
A classe RFIDTag representa uma tag RFID. A leitora envia os dados para a
plataforma que cria instâncias desta classe para retornar para a aplicação.
Antena: Número da antena que encontrou a tag.
Count: Contagem da tag na lista de tags que estão no pool de leitura da leitora.
Discovery: Data e hora que a tag foi descoberta.
Last: Data e hora da última identificação da tag.
Tag: Valor bruto lido do protocolo.
TagGen: Geração da tag.
A classe Alien é uma classe concreta que implementa o protocolo de comunicação
proprietário da Alien ALR-9800.
56
Connect: Estabelece a conexão com uma leitora ALR-9800.
Disconnect: Finaliza a conexão com uma leitora ALR-9800.
GetTag: Cria uma tag a partir do dado bruto lido.
GetTags: Cria uma lista de tags a partir do dado bruto lido.
Read: Lê o pool de dados da leitora.
ReadFirstTag: Retorna a primeira tag da lista de tags coletadas pela leitora.
ReadTagList: Retorna a lista de tags coletadas pela leitora.
Send: Envia uma mensagem para a leitora.
A interface IReader possui propriedades e métodos que devem ser implementados
por todas as classes de leitora RFID.
UseAuthentication: Especifica se a leitora usa autenticação antes de trocar
informações.
Password: Se a leitora utilizar autenticação, esta propriedade representará o
password que deverá ser enviado para a leitora no momento da autenticação.
UserName: Se a leitora utilizar autenticação, esta propriedade representará o nome
de usuário que deverá ser enviado para a leitora no momento da autenticação.
Connect: Este método abstrato tem o propósito de estabelecer comunicação com
uma leitora.
Disconnect: Este método abstrato tem o objetivo de finalizar a comunicação com
uma leitora.
A classe ReaderFactory tem o objetivo esconder a construção das classes concretas
para permitir que o comportamento de criação possa ser alterado caso necessário.
Factory: Cria uma nova instância da classe concreta encapsulada na interface
passada por parâmetro.
57
GetInstance: Retorna a única instância da classe ReaderFactory.
58
Download

protótipo de ferramenta de inventário em tempo real utilizando rfid