faculdade farias brito ciÊncia da...

58
FACULDADE FARIAS BRITO CIÊNCIA DA COMPUTAÇÃO FELIPE OQUENDO NOGUEIRA PROTÓTIPO DE FERRAMENTA DE INVENTÁRIO EM TEMPO REAL UTILIZANDO RFID

Upload: buiduong

Post on 25-Jan-2019

214 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: FACULDADE FARIAS BRITO CIÊNCIA DA COMPUTAÇÃOcdn.ffb.edu.br/sites/default/files/tcc-20082-felipe-oquendo... · sua aplicação e como tem sido seu desenvolvimento para superá-los

FACULDADE FARIAS BRITO CIÊNCIA DA COMPUTAÇÃO

FELIPE OQUENDO NOGUEIRA

PROTÓTIPO DE FERRAMENTA DE INVENTÁRIO EM TEMPO REAL UTILIZANDO RFID

Page 2: FACULDADE FARIAS BRITO CIÊNCIA DA COMPUTAÇÃOcdn.ffb.edu.br/sites/default/files/tcc-20082-felipe-oquendo... · sua aplicação e como tem sido seu desenvolvimento para superá-los

2

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.

Page 3: FACULDADE FARIAS BRITO CIÊNCIA DA COMPUTAÇÃOcdn.ffb.edu.br/sites/default/files/tcc-20082-felipe-oquendo... · sua aplicação e como tem sido seu desenvolvimento para superá-los

3

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)

Page 4: FACULDADE FARIAS BRITO CIÊNCIA DA COMPUTAÇÃOcdn.ffb.edu.br/sites/default/files/tcc-20082-felipe-oquendo... · sua aplicação e como tem sido seu desenvolvimento para superá-los

4

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.

Page 5: FACULDADE FARIAS BRITO CIÊNCIA DA COMPUTAÇÃOcdn.ffb.edu.br/sites/default/files/tcc-20082-felipe-oquendo... · sua aplicação e como tem sido seu desenvolvimento para superá-los

5

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.

Page 6: FACULDADE FARIAS BRITO CIÊNCIA DA COMPUTAÇÃOcdn.ffb.edu.br/sites/default/files/tcc-20082-felipe-oquendo... · sua aplicação e como tem sido seu desenvolvimento para superá-los

6

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.

Page 7: FACULDADE FARIAS BRITO CIÊNCIA DA COMPUTAÇÃOcdn.ffb.edu.br/sites/default/files/tcc-20082-felipe-oquendo... · sua aplicação e como tem sido seu desenvolvimento para superá-los

7

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

Page 8: FACULDADE FARIAS BRITO CIÊNCIA DA COMPUTAÇÃOcdn.ffb.edu.br/sites/default/files/tcc-20082-felipe-oquendo... · sua aplicação e como tem sido seu desenvolvimento para superá-los

8

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

Page 9: FACULDADE FARIAS BRITO CIÊNCIA DA COMPUTAÇÃOcdn.ffb.edu.br/sites/default/files/tcc-20082-felipe-oquendo... · sua aplicação e como tem sido seu desenvolvimento para superá-los

9

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

Page 10: FACULDADE FARIAS BRITO CIÊNCIA DA COMPUTAÇÃOcdn.ffb.edu.br/sites/default/files/tcc-20082-felipe-oquendo... · sua aplicação e como tem sido seu desenvolvimento para superá-los

10

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

Page 11: FACULDADE FARIAS BRITO CIÊNCIA DA COMPUTAÇÃOcdn.ffb.edu.br/sites/default/files/tcc-20082-felipe-oquendo... · sua aplicação e como tem sido seu desenvolvimento para superá-los

11

LISTA DE TABELAS

Tabela 1 – Padrões de etiqueta inteligente. ................................................................................19

Page 12: FACULDADE FARIAS BRITO CIÊNCIA DA COMPUTAÇÃOcdn.ffb.edu.br/sites/default/files/tcc-20082-felipe-oquendo... · sua aplicação e como tem sido seu desenvolvimento para superá-los

12

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.

Page 13: FACULDADE FARIAS BRITO CIÊNCIA DA COMPUTAÇÃOcdn.ffb.edu.br/sites/default/files/tcc-20082-felipe-oquendo... · sua aplicação e como tem sido seu desenvolvimento para superá-los

13

Finalmente chegamos à conclusão que é possível construir uma ferramenta em

estágio final de inventário em tempo real utilizando a tecnologia.

Page 14: FACULDADE FARIAS BRITO CIÊNCIA DA COMPUTAÇÃOcdn.ffb.edu.br/sites/default/files/tcc-20082-felipe-oquendo... · sua aplicação e como tem sido seu desenvolvimento para superá-los

14

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).

Page 15: FACULDADE FARIAS BRITO CIÊNCIA DA COMPUTAÇÃOcdn.ffb.edu.br/sites/default/files/tcc-20082-felipe-oquendo... · sua aplicação e como tem sido seu desenvolvimento para superá-los

15

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

Page 16: FACULDADE FARIAS BRITO CIÊNCIA DA COMPUTAÇÃOcdn.ffb.edu.br/sites/default/files/tcc-20082-felipe-oquendo... · sua aplicação e como tem sido seu desenvolvimento para superá-los

16

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”.

Page 17: FACULDADE FARIAS BRITO CIÊNCIA DA COMPUTAÇÃOcdn.ffb.edu.br/sites/default/files/tcc-20082-felipe-oquendo... · sua aplicação e como tem sido seu desenvolvimento para superá-los

17

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.

Page 18: FACULDADE FARIAS BRITO CIÊNCIA DA COMPUTAÇÃOcdn.ffb.edu.br/sites/default/files/tcc-20082-felipe-oquendo... · sua aplicação e como tem sido seu desenvolvimento para superá-los

18

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.

Page 19: FACULDADE FARIAS BRITO CIÊNCIA DA COMPUTAÇÃOcdn.ffb.edu.br/sites/default/files/tcc-20082-felipe-oquendo... · sua aplicação e como tem sido seu desenvolvimento para superá-los

19

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 Nome Uso pretendido Exemplo SGTIN Serial Global de

Mercadorias Rastreamento de itens Pneus individuais

SSCC Serial para Contêineres

Contêineres de envio Um contêiner

GLN Número Global de Localização

Localizações Um local estratégico

GRAI Identificador Global de Itens Retornáveis

Itens de biblioteca e aluguel

Um carro de uma locadora

GIAI Identificador Global de Item Único

Rastreamento de bens Um computador de um escritório

GID Identificador Genérico

IDs individuais Novos esquemas de identificação

Page 20: FACULDADE FARIAS BRITO CIÊNCIA DA COMPUTAÇÃOcdn.ffb.edu.br/sites/default/files/tcc-20082-felipe-oquendo... · sua aplicação e como tem sido seu desenvolvimento para superá-los

20

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.

Page 21: FACULDADE FARIAS BRITO CIÊNCIA DA COMPUTAÇÃOcdn.ffb.edu.br/sites/default/files/tcc-20082-felipe-oquendo... · sua aplicação e como tem sido seu desenvolvimento para superá-los

21

(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

Page 22: FACULDADE FARIAS BRITO CIÊNCIA DA COMPUTAÇÃOcdn.ffb.edu.br/sites/default/files/tcc-20082-felipe-oquendo... · sua aplicação e como tem sido seu desenvolvimento para superá-los

22

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.

Page 23: FACULDADE FARIAS BRITO CIÊNCIA DA COMPUTAÇÃOcdn.ffb.edu.br/sites/default/files/tcc-20082-felipe-oquendo... · sua aplicação e como tem sido seu desenvolvimento para superá-los

23

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.

Page 24: FACULDADE FARIAS BRITO CIÊNCIA DA COMPUTAÇÃOcdn.ffb.edu.br/sites/default/files/tcc-20082-felipe-oquendo... · sua aplicação e como tem sido seu desenvolvimento para superá-los

24

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).

Page 25: FACULDADE FARIAS BRITO CIÊNCIA DA COMPUTAÇÃOcdn.ffb.edu.br/sites/default/files/tcc-20082-felipe-oquendo... · sua aplicação e como tem sido seu desenvolvimento para superá-los

25

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.

Page 26: FACULDADE FARIAS BRITO CIÊNCIA DA COMPUTAÇÃOcdn.ffb.edu.br/sites/default/files/tcc-20082-felipe-oquendo... · sua aplicação e como tem sido seu desenvolvimento para superá-los

26

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.

Usuário

Cadastrar Produto

Cadastrar Item de

Produto

Realizar Inventário

Realizar Login

Cadastrar Leitora

«uses»

«uses»

«uses»

«uses»

«uses»

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:

Page 27: FACULDADE FARIAS BRITO CIÊNCIA DA COMPUTAÇÃOcdn.ffb.edu.br/sites/default/files/tcc-20082-felipe-oquendo... · sua aplicação e como tem sido seu desenvolvimento para superá-los

27

Common

DAL

Business

Service

RFIDReaderFramework

ServiceHost

Web

«bind»

«bind»

«bind»

«bind»

«bind»

«bind»

«bind»

«bind»

«bind»

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.

Page 28: FACULDADE FARIAS BRITO CIÊNCIA DA COMPUTAÇÃOcdn.ffb.edu.br/sites/default/files/tcc-20082-felipe-oquendo... · sua aplicação e como tem sido seu desenvolvimento para superá-los

28

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.

Page 29: FACULDADE FARIAS BRITO CIÊNCIA DA COMPUTAÇÃOcdn.ffb.edu.br/sites/default/files/tcc-20082-felipe-oquendo... · sua aplicação e como tem sido seu desenvolvimento para superá-los

29

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.

Page 30: FACULDADE FARIAS BRITO CIÊNCIA DA COMPUTAÇÃOcdn.ffb.edu.br/sites/default/files/tcc-20082-felipe-oquendo... · sua aplicação e como tem sido seu desenvolvimento para superá-los

30

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.

Page 31: FACULDADE FARIAS BRITO CIÊNCIA DA COMPUTAÇÃOcdn.ffb.edu.br/sites/default/files/tcc-20082-felipe-oquendo... · sua aplicação e como tem sido seu desenvolvimento para superá-los

31

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.

Page 32: FACULDADE FARIAS BRITO CIÊNCIA DA COMPUTAÇÃOcdn.ffb.edu.br/sites/default/files/tcc-20082-felipe-oquendo... · sua aplicação e como tem sido seu desenvolvimento para superá-los

32

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.

Page 33: FACULDADE FARIAS BRITO CIÊNCIA DA COMPUTAÇÃOcdn.ffb.edu.br/sites/default/files/tcc-20082-felipe-oquendo... · sua aplicação e como tem sido seu desenvolvimento para superá-los

33

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”.

Page 34: FACULDADE FARIAS BRITO CIÊNCIA DA COMPUTAÇÃOcdn.ffb.edu.br/sites/default/files/tcc-20082-felipe-oquendo... · sua aplicação e como tem sido seu desenvolvimento para superá-los

34

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.

Page 35: FACULDADE FARIAS BRITO CIÊNCIA DA COMPUTAÇÃOcdn.ffb.edu.br/sites/default/files/tcc-20082-felipe-oquendo... · sua aplicação e como tem sido seu desenvolvimento para superá-los

35

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.

Page 36: FACULDADE FARIAS BRITO CIÊNCIA DA COMPUTAÇÃOcdn.ffb.edu.br/sites/default/files/tcc-20082-felipe-oquendo... · sua aplicação e como tem sido seu desenvolvimento para superá-los

36

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.

Page 37: FACULDADE FARIAS BRITO CIÊNCIA DA COMPUTAÇÃOcdn.ffb.edu.br/sites/default/files/tcc-20082-felipe-oquendo... · sua aplicação e como tem sido seu desenvolvimento para superá-los

37

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

Page 38: FACULDADE FARIAS BRITO CIÊNCIA DA COMPUTAÇÃOcdn.ffb.edu.br/sites/default/files/tcc-20082-felipe-oquendo... · sua aplicação e como tem sido seu desenvolvimento para superá-los

38

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.

Page 39: FACULDADE FARIAS BRITO CIÊNCIA DA COMPUTAÇÃOcdn.ffb.edu.br/sites/default/files/tcc-20082-felipe-oquendo... · sua aplicação e como tem sido seu desenvolvimento para superá-los

39

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.

Page 40: FACULDADE FARIAS BRITO CIÊNCIA DA COMPUTAÇÃOcdn.ffb.edu.br/sites/default/files/tcc-20082-felipe-oquendo... · sua aplicação e como tem sido seu desenvolvimento para superá-los

40

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.

Page 41: FACULDADE FARIAS BRITO CIÊNCIA DA COMPUTAÇÃOcdn.ffb.edu.br/sites/default/files/tcc-20082-felipe-oquendo... · sua aplicação e como tem sido seu desenvolvimento para superá-los

41

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.

Page 42: FACULDADE FARIAS BRITO CIÊNCIA DA COMPUTAÇÃOcdn.ffb.edu.br/sites/default/files/tcc-20082-felipe-oquendo... · sua aplicação e como tem sido seu desenvolvimento para superá-los

42

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/auto-id/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 object-oriented 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/PersistenceOptionsOOP2004e.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.

Page 43: FACULDADE FARIAS BRITO CIÊNCIA DA COMPUTAÇÃOcdn.ffb.edu.br/sites/default/files/tcc-20082-felipe-oquendo... · sua aplicação e como tem sido seu desenvolvimento para superá-los

43

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-2734-1__fulltext.pdf>, Acessado em 28 de Agosto de 2008.

Page 44: FACULDADE FARIAS BRITO CIÊNCIA DA COMPUTAÇÃOcdn.ffb.edu.br/sites/default/files/tcc-20082-felipe-oquendo... · sua aplicação e como tem sido seu desenvolvimento para superá-los

44

ANEXO I

Page 45: FACULDADE FARIAS BRITO CIÊNCIA DA COMPUTAÇÃOcdn.ffb.edu.br/sites/default/files/tcc-20082-felipe-oquendo... · sua aplicação e como tem sido seu desenvolvimento para superá-los

45

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.

Page 46: FACULDADE FARIAS BRITO CIÊNCIA DA COMPUTAÇÃOcdn.ffb.edu.br/sites/default/files/tcc-20082-felipe-oquendo... · sua aplicação e como tem sido seu desenvolvimento para superá-los

46

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.

Page 47: FACULDADE FARIAS BRITO CIÊNCIA DA COMPUTAÇÃOcdn.ffb.edu.br/sites/default/files/tcc-20082-felipe-oquendo... · sua aplicação e como tem sido seu desenvolvimento para superá-los

47

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.

Page 48: FACULDADE FARIAS BRITO CIÊNCIA DA COMPUTAÇÃOcdn.ffb.edu.br/sites/default/files/tcc-20082-felipe-oquendo... · sua aplicação e como tem sido seu desenvolvimento para superá-los

48

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.

Page 49: FACULDADE FARIAS BRITO CIÊNCIA DA COMPUTAÇÃOcdn.ffb.edu.br/sites/default/files/tcc-20082-felipe-oquendo... · sua aplicação e como tem sido seu desenvolvimento para superá-los

49

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.

Page 50: FACULDADE FARIAS BRITO CIÊNCIA DA COMPUTAÇÃOcdn.ffb.edu.br/sites/default/files/tcc-20082-felipe-oquendo... · sua aplicação e como tem sido seu desenvolvimento para superá-los

50

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.

Page 51: FACULDADE FARIAS BRITO CIÊNCIA DA COMPUTAÇÃOcdn.ffb.edu.br/sites/default/files/tcc-20082-felipe-oquendo... · sua aplicação e como tem sido seu desenvolvimento para superá-los

51

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.

Page 52: FACULDADE FARIAS BRITO CIÊNCIA DA COMPUTAÇÃOcdn.ffb.edu.br/sites/default/files/tcc-20082-felipe-oquendo... · sua aplicação e como tem sido seu desenvolvimento para superá-los

52

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.

Page 53: FACULDADE FARIAS BRITO CIÊNCIA DA COMPUTAÇÃOcdn.ffb.edu.br/sites/default/files/tcc-20082-felipe-oquendo... · sua aplicação e como tem sido seu desenvolvimento para superá-los

53

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.

Page 54: FACULDADE FARIAS BRITO CIÊNCIA DA COMPUTAÇÃOcdn.ffb.edu.br/sites/default/files/tcc-20082-felipe-oquendo... · sua aplicação e como tem sido seu desenvolvimento para superá-los

54

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.

Page 55: FACULDADE FARIAS BRITO CIÊNCIA DA COMPUTAÇÃOcdn.ffb.edu.br/sites/default/files/tcc-20082-felipe-oquendo... · sua aplicação e como tem sido seu desenvolvimento para superá-los

55

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.

Page 56: FACULDADE FARIAS BRITO CIÊNCIA DA COMPUTAÇÃOcdn.ffb.edu.br/sites/default/files/tcc-20082-felipe-oquendo... · sua aplicação e como tem sido seu desenvolvimento para superá-los

56

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.

Page 57: FACULDADE FARIAS BRITO CIÊNCIA DA COMPUTAÇÃOcdn.ffb.edu.br/sites/default/files/tcc-20082-felipe-oquendo... · sua aplicação e como tem sido seu desenvolvimento para superá-los

57

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.

Page 58: FACULDADE FARIAS BRITO CIÊNCIA DA COMPUTAÇÃOcdn.ffb.edu.br/sites/default/files/tcc-20082-felipe-oquendo... · sua aplicação e como tem sido seu desenvolvimento para superá-los

58

GetInstance: Retorna a única instância da classe ReaderFactory.