Upload
others
View
0
Download
0
Embed Size (px)
Citation preview
UNIVERSIDADE POSITIVO
NÚCLEO DE CIÊNCIAS EXATAS E TECNOLÓGICAS
CURSO DE ENGENHARIA DA COMPUTAÇÃO
RAFAEL MOIA VARGAS
Controle de estoque a distância por dispositivo móvel
Trabalho de Conclusão de Curso
Prof. Alessandro Brawerman
Orientador
Curitiba, setembro de 2011
2
UNIVERSIDADE POSITIVO
Reitor: Prof. José Pio Martins
Pró-Reitor de Graduação: Prof. Márcia Sebastiani
Coordenador do Curso de Engenharia da Computação: Prof. Leandro Henrique de Souza
3
Agradecimentos
Aos meus pais, por todo carinho e apoio nesta importante etapa da
vida.
Ao professor Maurício Perretto, por todo auxílio na realização
deste projeto.
A meu professor orientador Alessandro Brawerman, pelo auxílio
durante a realização do projeto e também na realização desta monografia,
e pela sugestão deste projeto.
A todos os professores do curso de Engenharia da Computação,
que foram de fundamental importância para que houvesse o
conhecimento necessário para a realização deste projeto.
Aos amigos, pelo incentivo, compreenção e apoio.
4
SUMARIO
LISTA DE ABREVIATURAS.............................................................................................................. 6
LISTA DE FIGURAS ............................................................................................................................ 7
RESUMO ............................................................................................................................................... 8
ABSTRACT ........................................................................................................................................... 9
1. INTRODUÇÃO ...............................................................................................................................10
2. FUNDAMENTAÇÃO TEÓRICA ..................................................................................................12 2.1. MODELO CLIENTE-SERVIDOR ............................................................................................................. 12
2.1.1. Web Service ......................................................................................................................................... 12 2.2. SOFTWARE ............................................................................................................................................. 13
2.2.1. Cliente .................................................................................................................................................... 13 2.2.2. Servidor ................................................................................................................................................. 14
2.2. HARDWARE ............................................................................................................................................ 14 2.2.1. Cliente .................................................................................................................................................... 14
2.2.1.1. Modem 3G .................................................................................................................................................................... 14 2.2.1.2. Placa Wi-fi .................................................................................................................................................................... 14 2.2.1.3. Tela Touch Screen .................................................................................................................................................... 15
2.2.2. RFID ........................................................................................................................................................ 15
3. ESPECIFICAÇÃO ...........................................................................................................................16 3.1. HARDWARE ............................................................................................................................................ 17
3.1.1. RFID ........................................................................................................................................................ 17 3.1.2. Servidor ................................................................................................................................................. 19 3.1.3. Cliente .................................................................................................................................................... 19
3.1.3.1. Modem 3G .................................................................................................................................................................... 19 3.1.3.2. Placa Wi-fi .................................................................................................................................................................... 19 3.1.3.3. Tela Touch Screen .................................................................................................................................................... 20
3.2. SOFTWARE ............................................................................................................................................. 20 3.2.1. Ambiente de Desenvolvimento ................................................................................................... 20 3.2.2. Diagrama de Casos de Uso ........................................................................................................... 20
3.2.2.1. Descrição dos Casos de Uso ................................................................................................................................. 21 3.2.3. Diagrama de Classes ....................................................................................................................... 24
3.2.3.1. Diagrama de Classes do software Cliente no iPhone ............................................................................... 24 3.2.4. Diagrama de Sequência ................................................................................................................ 25
3.2.4.1. Diagrama de Sequência do cenário Adição/Remoção Produtos ....................................................... 25 3.2.4.2. Diagrama de Sequência do cenário Consulta de Estoque ..................................................................... 26 3.2.4.3. Diagrama de Sequência do cenário Consulta de Receita ....................................................................... 27 3.2.4.4. Diagrama de Sequência do cenário Consulta de Lista de Compras .................................................. 28
3.2.5. Prototipação de Telas .................................................................................................................... 29 3.2.5.1. Tela Principal .............................................................................................................................................................. 29 3.2.5.2. Tela Visualização de Estoque .............................................................................................................................. 30 3.2.5.3. Tela Visualização de Lista de Compras .......................................................................................................... 31 3.2.5.4. Tela Criação de nova Lista de Compras ......................................................................................................... 32 3.2.5.5. Tela Visualização detalhada de Lista de Compras .................................................................................... 33 3.2.5.6. Tela Visualização das Receitas cadastradas ................................................................................................ 34 3.2.5.7. Tela Criação de nova Receita .............................................................................................................................. 35 3.2.5.8. Tela Visualização detalhada de Receita ......................................................................................................... 36 3.2.5.9. Tela de Configuração .............................................................................................................................................. 37
4. VALIDAÇÃO E RESULTADOS ...................................................................................................38 4.1. TESTE DE ESCALABILIDADE ................................................................................................................ 38
5. CONCLUSÃO ..................................................................................................................................40
5
6. REFERENCIAS BIBLIOGRÁFICAS ...........................................................................................41
APÊNDICE A - RESUMO ESTENDIDO .........................................................................................42
APÊNDICE B - ARTIGO CIENTÍFICO ...........................................................................................44
6
LISTA DE ABREVIATURAS
RFID Radio-Frequency Identification
API Application Programming Interface
UML Unified Modeling Language
7
LISTA DE FIGURAS FIGURA 1: REPRESENTAÇÃO DO PROJETO. ......................................................................................................................... 16 FIGURA 2: TAGS RFID SLK01. ............................................................................................................................................ 17 FIGURA 3: LEITOR RFID SL102. ........................................................................................................................................ 18 FIGURA 4: DIAGRAMA DE CASOS DE USO DO CENÁRIO DO SOFTWARE CLIENTE NO IPHONE. ................................... 21 FIGURA 5: DIAGRAMA DE CLASSES DO SOFTWARE CLIENTE NO IPHONE. ..................................................................... 24 FIGURA 6: DIAGRAMA DE SEQUÊNCIA DO CENÁRIO ADIÇÃO/REMOÇÃO PRODUTOS. ................................................. 25 FIGURA 7: DIAGRAMA DE SEQUÊNCIA DO CENÁRIO CONSULTA DE ESTOQUE. ............................................................. 26 FIGURA 8: DIAGRAMA DE SEQUÊNCIA DO CENÁRIO CONSULTA DE RECEITA. ............................................................... 27 FIGURA 9: DIAGRAMA DE SEQUÊNCIA DO CENÁRIO CONSULTA DE LISTA DE COMPRAS. ............................................ 28 FIGURA 10: TELA PRINCIPAL. .............................................................................................................................................. 29 FIGURA 11: VISUALIZAÇÃO DO ESTOQUE. .......................................................................................................................... 30 FIGURA 12: VISUALIZAÇÃO DA LISTA DE COMPRAS. ........................................................................................................ 31 FIGURA 13: CRIAÇÃO DE NOVA LISTA DE COMPRAS. ........................................................................................................ 32 FIGURA 14: VISUALIZAÇÃO DETALHADA DE NOVA LISTA DE COMPRAS. ....................................................................... 33 FIGURA 15: VISUALIZAÇÃO DAS RECEITAS CADASTRADAS. ............................................................................................. 34 FIGURA 16: CRIAÇÃO DE NOVA RECEITA. ........................................................................................................................... 35 FIGURA 17: VISUALIZAÇÃO DETALHADA DE RECEITA. ..................................................................................................... 36 FIGURA 18: VISUALIZAÇÃO DA TELA DE CONFIGURAÇÃO................................................................................................. 37 FIGURA 19: TESTE DE ESCALABILIDADE THREADS X TEMPO ......................................................................................... 38
8
RESUMO Este projeto propõe a criação de uma solução que possibilita o
controle de estoque a distância por dispositivo móvel. Com o aumento do
uso de smartphones, suas tecnologias e utilidades foram aumentando e
também a qualidade do acesso à Internet através de dispositivos móveis
foi se tornando mais próxima a de que temos em nossas casas, assim
como sua disponibilidade e custo tiveram uma melhora significativa.
Outra tecnologia que é relativamente recente e se popularizou nos
últimos anos, tornando seu uso mais acessível, é o RFID (Radio-
frequency identification). O RFID funciona com um leitor fixo, e com
tags (etiquetas) RFID, que contém informações a serem lidas pelo leitor,
que passa esta informação para um computador através de um cabo serial
ou USB, dependendo do leitor em questão.
Com isso, surge então a idéia de desenvolver um controle de
estoque a distância por dispositivo móvel, utilizando um leitor de RFID
para ler os dados de cada produto que estão gravados em sua tag, criar um
banco de dados no servidor com o estoque, listas de compras e receitas.
Com o dispositivo móvel, e através de serviços Web Service, se
comunicar com o servidor e poder saber, a distância, quais os produtos a
serem repostos, quais produtos faltam para determinada receita,
disponibilidade de determinado produto e quantidade, etc.
Desta forma é possível, utilizando-se da tecnologia dos
dispositivos móveis atuais, da Internet móvel e da tecnologia RFID, criar
uma solução para consulta de estoque a distância com uma grande
flexibilidade de acesso e funcionalidade.
Palavras-Chave: dispositivos móveis, RFID, controle de estoque, Web Service.
9
ABSTRACT
This project proposes the creation of a solution to allow the remote
inventory control through the usage of mobile devices. With the
increasing usage of smartphones, their technologies and functionalities
have improved greatly, among with it's Internet access capabilities, which
became much more similar to the Internet access people have in their
homes.
Another technology that is relatively new and has been used with
more frequency in the last few years, making it's usage more viable, is the
RFID (Radio-frequency identification). The RFID works with 2 separate
parts, the reader and the tag. The tag, contains information that are read
by the RFID reader, which passes the information to a computer through
a serial cable or through USB, depending on the RFID reader model.
Taking all this in consideration, arises the idea of developing a
remote inventory control, through the usage of a mobile device, in this
particular case the iPhone, using a RFID reader to read the information of
each product, and insert into a database on the server to create the
inventory, allowing the user to create a list with Recipes, a list with
Shopping Lists. With the mobile device, and Web Service, allow the user
to communicate with the server and be able to access, remotely, the
inventory, detailing the quantity of each product, what products need to
be repurchased, which products are missing to be able to make a chosen
recipe, among other functionalities.
In this matter, it is possible, using the technology provided by the
smartphones and platforms, mobile Internet and RFID, to create a
solution to remotely control and check your inventory with a great
flexibility of access and many possibilities of functionalities, with a very
user friendly interface, something that wasn't possible some years ago.
Palavras-Chave: mobile devices, RFID, inventory control, web service.
10
1. INTRODUÇÃO
Com o aumento do uso de smartphones, suas tecnologias e
utilidades foram aumentando e também a qualidade do acesso à Internet
através de dispositivos móveis foi se tornando mais próxima a de que
temos em nossas casas, assim como sua disponibilidade e custo tiveram
uma melhora significativa.
Um fato que mudou bastante as possibilidades de uso de um
smartphone, foi o surgimento de plataformas como o iOS, da Apple,
presente no iPhone, iPod e iPad, e Android, da Google, utilizado em
diversos dispositivos de diversas marcas.
Outra tecnologia que é relativamente recente e se popularizou nos
últimos anos, tornando seu uso mais acessível, é o RFID (Radio-
frequency identification). O RFID funciona com um leitor fixo, e com
tags (etiquetas) RFID, que contém informações a serem lidas pelo leitor,
que passa esta informação para um computador através de um cabo serial
ou USB, dependendo do leitor em uso.
Com isso, surgiu então a idéia de desenvolver um controle de
estoque a distância por dispositivo móvel, utilizando um leitor de RFID
para adicionar e remover produtos no estoque, criando um banco de
dados no servidor com o estoque, listas de compras e receitas.
Com o dispositivo móvel, e através de serviços Web Service, se
comunicar com o servidor e ter acesso a distância ao estoque e
quantidade de cada produto, quais produtos estão faltando para realizar
uma receita escolhida, lista de compras com produtos que não estão mais
em estoque e deseja-se comprar.
Para isto, cada produto deve ter uma tag RFID passiva contendo
um código único. O leitor RFID ficará em um lugar fixo, por onde
passará todos produtos comprados e sempre que algum for retirado para
ser utilizado. O servidor ficará no mesmo local que o leitor RFID,
conectado ao mesmo com um cabo USB, recebendo assim o código do
produto, atualizando o estoque no banco de dados do servidor.
O software do servidor e do iPhone, utilizando Web Service,
permite que o usuário, remotamente, consulte o servidor, para obter dados
como a disponibilidade de determinado produto, lista de compras com
11
produtos em falta, produtos necessários para determinada receita, criação
de novas receitas, criação de novas listas de compras, dentre outros.
O cliente, um software desenvolvido para o iPhone, tem como
função principal apresentar os dados para o usuário. O cliente obterá
dados como estoque, produtos que precisam ser comprados, dentre
outros, fazendo pedidos para o servidor, que faz consultas em seu banco
de dados e retorna os dados já filtrados para o mesmo. Restando assim,
menos processamento para o cliente realizar, fato importante, visto que o
servidor tem um poder computacional muito maior que o de um
dispositivo móvel, no caso o iPhone.
O restante desta monografia apresenta no Capitulo 2 a
Fundamentação Teórica, com detalhamento dos softwares utilizados no
desenvolvimento e dos hardwares utilizados nos projeto. Em seguida o
Capitulo 3, formado pela Especificação, onde é detalhado a fundo o
hardware utilizado, assim como os softwares desenvolvidos, de forma
técnica. A seguir, no Capitulo 4, tem-se a Validação de Testes e
Resultados, que mostra os métodos utilizados para medição e análise de
desempenho do projeto, assim como suas interpretações. Então por fim a
Conclusão no Capitulo 5, sintetizando todo o conteúdo de o que se refere
o trabalho até os resultados obtidos e no Capitulo 6 as Referências
Bibliográficas.
12
2. FUNDAMENTAÇÃO TEÓRICA
O capítulo de fundamentação teórica consiste em explicar a
importância da automação de estoque e do projeto proposto, em explicar
mais detalhadamente as tecnologias utilizadas, como o RFID, o iPhone,
Web Service, os softwares desenvolvidos e também os hardwares
utilizados no projeto.
A automação de estoque é uma questão muito abordada em
empresas, e começa também a ser algo viável de ser aplicado em
residências, com a redução de custo de tecnologias envolvidas.
2.1. Modelo Cliente-Servidor
O modelo de controle de estoque proposto pelo projeto, por ser
controlado remotamente, consiste em um modelo Cliente-Servidor.
Neste tipo de modelo, o Servidor é localizado junto ao estoque,
onde são feitas as retiradas e entradas de estoque. Nele, também fica o
banco de dados, onde é armazenado todo o estoque, a ser fornecido ao
Cliente, quando solicitado. O servidor, mantém um Web Service, que
fornece métodos pré definidos, com consultas ao estoque tratadas, que
enviam para o Cliente.
O Cliente, tem como objetivo ser um programa leve, que tem como
único objetivo fazer pedidos de informações ao servidor, obte-las e
mostrar ao usuário de forma amigável e compreensível. No projeto, o
cliente é um software para iOS, que funciona em iPhones e iPods. Com
isso, o usuário tem uma grande mobilidade de acesso ao estoque,
podendo fazer consultas em redes Wi-fi ou então com a rede 3G ou
EDGE da própria operadora.
2.1.1. Web Service
Web Service é uma forma de aplicativos diferentes, desenvolvidos
em linguagens e ambientes diferentes, se comunicarem. Isto é possível
pois o Web Service usa a linguagem XML para transmitir informações
entre um programa e outro.
O XML é uma linguagem universal, que pode ser interpretada por
diversas linguagens de programação.
13
O servidor fornece métodos com funcionalidades pré definidas
pelo desenvolvedor. O cliente, utiliza esses métodos para receber as
informações do servidor.
2.2. Software
Nesta seção, são apresentados os softwares desenvolvidos neste
projeto, que foram: o Cliente, utilizado no dispositivo móvel, e o
servidor, que gerencia o banco de dados, recebe os dados do leitor RFID
e roda o Web Service.
2.2.1. Cliente
O software desenvolvido para o cliente é um aplicativo para
dispositivos móveis que rodam o sistema iOS, da Apple. Atualmente,
estes dispositivos são: o iPhone, o iPod Touch e o iPad.
A programação de aplicativos para o iOS é feita em uma
linguagem relativamente nova, chamada Objective C, ou Cocoa Touch.
Esta linguagem possui bastante semelhanças com o C++, e é a linguagem
mais usada e recomendada para desenvolvimento de programas de
qualquer produto da Apple (computadores rodando o sistema operacional
OSX, dispositivos móveis rodando o iOS), por obter a melhor
performance dentro destes sistemas, visto que os mesmos foram
desenvolvidos em Objective C.
Para o desenvolvimento nesta linguagem, a única ferramenta
utilizada é o Xcode, que consiste em um ambiente de desenvolvimento de
código e interface gráfica do aplicativo, e também de um conjunto de
ferramentas de teste de software. O Xcode está disponível apenas para o
sistema operacional OSX, criando portanto uma restrição para alguns
desenvolvedores.
Apesar de ser uma linguagem relativamente nova, o Objective C
está bem documentado e disponível para todos desenvolvedores
cadastrados na Apple. Já há também bastante fóruns e websites de auxílio
nesta linguagem. Uma dificuldade porém, tem sido a grande frequência
com que a Apple atualiza API's e modifica partes de sua linguagem, pois
isto faz com que muitos websites, tutoriais, documentações se tornem
inúteis e desatualizados rapidamente.
14
2.2.2. Servidor
A programação do software que roda no Servidor, é feita em C#,
principalmente devido a facilidade que esta linguagem oferece para o uso
de Web Service.
Para o banco de dados do servidor, que é responsável por
armazenar Estoque, Receitas e Lista de Compras, é utilizado o Microsoft
SQL Server 2008.
O uso do Microsoft SQL Server em vez de outro banco de dados,
tem como um dos motivos principais o fácil acesso a ele pelo software do
servidor, desenvolvido no Microsoft Visual Studio. A escolha desta
versão deve-se, em parte, à melhor abrangência de, se comparado com a
2010 e versões mais antigas.
2.2. Hardware
Esta seção apresenta os hardwares utilizados neste projeto, tanto
para o Cliente quanto para o Servidor.
2.2.1. Cliente
O hardware utilizado para o Cliente, é o iPhone 4, destacando-se o
uso dos seguintes componentes:
2.2.1.1. Modem 3G
O modem 3G do iPhone é utilizado para a realização de conexão
com o servidor, para o uso do Web Service, quando a conexão Wi-fi é
inexistente.
2.2.1.2. Placa Wi-fi
A placa wi-fi interna do iPhone é utilizada para a realização de
conexão com o servidor, sempre que possível, para evitar o uso da rede
3G que normalmente tem limitações de uso e custo impostas pelas
operadoras de telefonia.
15
2.2.1.3. Tela Touch Screen
Com certeza um dos principais e mais importantes componentes do
iPhone, responsável por grande parte da interatividade com o usuário.
Fator que deve ser levado em conta no desenvolvimento do projeto, visto
que uma interface voltada para um equipamento sensível ao toque deve
ser bem diferente de uma normal.
2.2.2. RFID
O RFID é uma tecnologia de identificação por rádio frequência. O
sistema é composto por um leitor RFID e por diversas tags RFID, que
estão presentes em cada produto. O leitor transmite ao servidor os dados
de cada tag lida através de um cabo USB, que por sua vez atualiza seu
banco de dados, onde se tem o controle de cada produto disponível no
estoque.
Existem dois tipos de tags:
Ativas:
o Enviam seu próprio sinal;
o Mais caras;
Passivas:
o Respondem ao sinal enviado pela base transmissora;
o Mais baratas;
Existem diversos tipos de leitor RFID, com diferentes alcances,
diferentes frequências de funcionamento, diferentes formas de
comunicação com o servidor (Cabo Serial, USB). Deve-se analisar e
escolher um modelo de acordo com a necessidade do projeto em questão.
16
3. ESPECIFICAÇÃO
Como apresentado anteriormente, o projeto tem como idéia
desenvolver um controle de estoque automatizado, controlado
remotamente por um dispositivo móvel, utilizando um leitor RFID e tags
em cada produto para a formação do estoque.
Os Hardwares utilizados no projeto são: iPhone 4, servidor, leitor
RFID e tags RFID.
Conforme a Figura 1 mostra, a tag RFID é lida pelo leitor, que
envia a informação através de um cabo USB para o computador, que
atualiza o banco de dados. O iPhone, remotamente, através da Internet, se
conectando através de seu modem 3G ou Wi-Fi, acessa o servidor, com
um pedido ao Web Service implementado, obtendo os dados para
apresentar para o usuário.
Figura 1: Representação do Projeto.
17
O software do iPhone possui como funcionalidade, além de as
básicas, como consultar o estoque, consultar receitas e lista de compras, a
habilidade de remotamente editar ingredientes e instruções de receitas já
existentes, deletar receitas, criar novas receitas. Editar lista de compras,
deletar lista de compras e criar novas lista de compras.
3.1. Hardware
Nesta seção, é apresentado os hardwares utilizados
detalhadamente, com o modelo e características dos mesmos, assim como
configurações necessárias para uso do sistema.
3.1.1. RFID
Há diversos modelos de Tags e Leitores de RFID no mercado
mundial, com características e finalidades bem distintas.
Para este projeto, foram utilizadas 10 tags RFID do tipo chaveiro
modelo SLK01 da Strong Link, ilustrados na Figura 2, com as seguintes
características:
Frequência de 125 KHz e 13.56 MHz;
Chipset TK4100, Mifare 1k;
Temperatura de funcionamento de -10° a +50°.
Figura 2: Tags RFID SLK01.
18
O leitor RFID utilizado foi o SL102 da Strong Link, conforme
Figura 3, com as seguintes características:
Frequência de 125 KHz;
Interface USB Plug and Play (simula teclado);
Temperatura de funcionamento de -10° a +70°;
Dimensões: 120 × 83 × 27 mm;
Peso: 160g;
Figura 3: Leitor RFID SL102.
O motivo para a escolha destas Tags e deste Leitor, deve-se dentre
outras coisas, ao bom custo/benefício dos produtos, atendendo as
necessidades básicas exigidas pelo projeto. A aquisição dos mesmos não
foi de grande dificuldade, apesar de ter sido importado de outro país.
Outra vantagem é a comunicação do leitor RFID com o computador, que
se da por um cabo USB. O leitor envia os 10 dígitos da Tag lida para o
computador, via USB, como se fosse a entrada de um teclado, facilitando
bastante a aquisição da leitura pelo software do servidor.
Algumas limitações importantes a destacar, entretanto, é a
distância de leitura curta (aproximadamente 5 centímetros), que para uma
aplicação prática do projeto é inferior à uma distância aceitável. Outra
limitação, é a impossibilidade de passar duas tags simultaneamente.
Para a limitação de distância, esta pode facilmente ser eliminada
com um investimento um pouco maior em um leitor com maior distância
de leitura e uma tag compatível. Isto só não foi feito pois para efeito de
projeto a distância alcançada com estes equipamentos já é suficiente.
19
3.1.2. Servidor
O servidor precisa ter uma configuração que suporte rodar o
Microsoft SQL Server 2008, para manejar o banco de dados do sistema e
o IIS 7.0. Precisa também estar conectado a internet. Uma configuração
base seria:
Processador 64 bits AMD Opteron, AMD Athlon 64 ou Intel Xeon
com suporte Intel EM64T;
Processador com clock de 2.0 GHz ou mais;
Memoria RAM de no mínimo 1GB, recomendado 4GB;
100GB HDD;
Windows 7;
3.1.3. Cliente
O hardware utilizado para o Cliente, é o iPhone 4, destacando-se o
uso dos seguintes componentes:
3.1.3.1. Modem 3G
O modem 3G do iPhone é utilizado para a realização de conexão
com o servidor, para o uso do Web Service, quando a conexão Wi-fi é
inexistente.
3.1.3.2. Placa Wi-fi
A placa wi-fi interna do iPhone é utilidada para a realização de
conexão com o servidor, sempre que possível, para evitar o uso da rede
3G que normalmente tem limitações de uso e custo impostas pelas
operadoras de telefonia.
20
3.1.3.3. Tela Touch Screen
Com certeza um dos principais e mais importantes componentes do
iPhone, responsável por grande parte da interatividade com o usuário.
Fator que deve ser levado em conta no desenvolvimento do projeto, visto
que uma interface voltada para um equipamento sensível ao toque deve
ser bem diferente de uma normal.
3.2. Software
Esta seção abordará detalhadamente o projeto dos softwares
desenvolvidos para o sistema proposto. Primeiramente, será descrito os
ambientes de desenvolvimento utilizados em cada software,
3.2.1. Ambiente de Desenvolvimento
A programação de aplicativos para o iOS é feita em Objective C,
ou Cocoa Touch. Esta linguagem tem bastante semelhanças com o C++,e
é a linguagem mais usada e recomendada para desenvolvimento de
programas de qualquer produto da Apple (computadores rodando o
sistema operacional OSX, dispositivos móveis rodando o iOS), por obter
a melhor performance dentro destes sistemas.
A programação do sistema que roda no Servidor, é feita em C#,
principalmente devido a facilidade que esta linguagem oferece para o uso
de Web Service.
Para o banco de dados do servidor, que é responsável por
armazenar Estoque, Receitas e Lista de Compras, é utilizado o Microsoft
SQL Server 2008.
3.2.2. Diagrama de Casos de Uso
O diagrama de Casos de Uso de um software separa cada interação
entre o usuário e o sistema. Com isso, é possível explicar de forma
detalhada cada funcionalidade do sistema, e como o mesmo à realiza.
21
Analisando as funcionalidades desejadas para o sistema proposto
têm-se o Diagrama de Casos de Uso do cenário do Cliente iPhone,
conforme a Figura 4:
Figura 4: Diagrama de Casos de Uso do Cenário do software Cliente no iPhone.
3.2.2.1. Descrição dos Casos de Uso
Caso de Uso -- Consultar Estoque:
o Este caso de uso é iniciado quando o usuário decide visualizar o
estoque.
1. Usuário navega até a seção "Estoque" do software.
2. O software requere através de Web Service a consulta de estoque
no banco de dados do servidor.
3. Servidor retorna para o cliente também utilizando Web Service os
produtos em estoque.
o Alternativas:
2a. O software falha ao tentar transmitir o pedido de consulta ao
servidor por falta de conexão com a Internet e exibe mensagem de erro,
disponibilizando para o usuário a última consulta realizada,
armazenada em um Bando de Dados SQLite local.
22
Caso de Uso -- Consultar Lista de Compras:
o Este caso de uso é iniciado quando o usuário decide visualizar a
lista de produtos em falta no estoque, que devem ser repostos.
1. Usuário navega até a seção "Lista de Compras" do software.
2. O software requere através de Web Service a consulta da lista de
compras.
3. O servidor busca no banco de dados todos os produtos requisitados
pela lista de compra escolhida, consulta o estoque para saber
quantas unidades há no estoque, subtrai da quantidade desejada
pela lista de compras.
4. Servidor retorna para o cliente também utilizando Web Service a
lista de produtos resultante e a quantidade necessaria.
o Alternativas:
2a. O software falha ao tentar transmitir o pedido de consulta ao
servidor por falta de conexão com a internet e exibe mensagem de erro,
mostrando as Listas de Compras da ultima consulta, disponíveis no
Banco de Dados SQLite local.
Caso de Uso -- Checar disponibilidade de ingredientes de Receita:
o Este caso de uso é iniciado quando o usuário decide visualizar os
produtos que faltam para a realização de determinada receita.
1. Usuário navega até a seção "Receitas" do software.
2. Usuário escolhe uma receita dentre as receitas cadastradas.
3. O software requere através de Web Service a consulta da receita
escolhida.
4. O Servidor busca no banco de dados pelos produtos contidos na
receita escolhida.
5. Servidor retorna para o cliente também utilizando web service os
produtos da receita que já foram usados e não estão mais no
estoque.
o Alternativas:
3a. O software falha ao tentar transmitir o pedido de consulta ao
servidor por falta de conexão com a internet e exibe mensagem de erro,
mostrando os dados da ultima consulta, disponíveis no Banco de Dados
SQLite local.
23
Caso de Uso -- Editar Lista de Compra:
o Este caso de uso é iniciado quando o usuário decide adicionar ou
remover algum produto da lista de compras.
1. Usuário navega até a seção "Lista de Compras" do software.
2. Escolhe uma Lista de Compras.
3. Usuário escolhe a opção editar lista".
4. Usuário adiciona ou remove um produto da lista.
5. O software requere através de Web Service a alteração da lista de
compras no servidor.
6. Banco de Dados é atualizado.
7. Servidor retorna para o cliente também utilizando Web Service a
nova lista de compras atualizada.
o Alternativas:
4a. O software falha ao tentar transmitir o pedido de consulta ao
servidor por falta de conexão com a internet e exibe mensagem de erro.
Caso de Uso -- Editar Receita:
o Este caso de uso é iniciado quando o usuário decide adicionar ou
remover algum produto necessário na receita selecionada.
1. Usuário navega até a seção "Receitas" do software.
2. Usuário escolhe uma receita dentre as receitas cadastradas.
3. Usuário escolhe a opção "editar receita".
4. Usuário adiciona ou remove um ou mais produtos da lista.
5. O software requere através de Web Service a alteração da receita
selecionada no servidor.
6. Banco de Dados é atualizado.
7. Servidor retorna para o cliente também utilizando Web Service a
receita atualizada.
o Alternativas:
5a. O software falha ao tentar transmitir o pedido de consulta ao
servidor por falta de conexão com a internet e exibe mensagem de erro.
Caso de Uso -- Criar Receita:
o Este caso de uso é iniciado quando o usuário decide criar uma nova
receita.
1. Usuário navega até a seção "Receitas" do software.
2. Usuário escolhe a opção "criar receita".
3. Usuário adiciona os produtos do estoque que consistem a receita.
4. Usuário da um nome à receita.
5. Usuário escolhe a quantidade necessária de cada produto.
6. O software requere através de Web Service a criação da receita.
7. Banco de Dados é atualizado.
8. Servidor retorna para o cliente também utilizando Web Service a
nova lista de receitas atualizada.
o Alternativas:
5a. O software falha ao tentar transmitir o pedido de consulta ao
servidor por falta de conexão com a internet e exibe mensagem de erro.
24
3.2.3. Diagrama de Classes
Diagrama de Classes é uma representação da estrutura e relações
das classes que servem de modelo para objetos. É uma modelagem muito
útil para o sistema, definindo todas as classes que o sistema necessita
possuir.
3.2.3.1. Diagrama de Classes do software Cliente no iPhone
Figura 5: Diagrama de Classes do software Cliente no iPhone.
A Figura 5 ilustra o Diagrama de Classes do Cliente. No cliente,
tudo parte de uma Tela Inicial, representada pela classe Controle de
Estoque. Esta, tem 3 ações. Consultar Estoque, Consultar Lista de
Compras e Consultar Receitas.
Consultar Estoque leva à classe Estoque, que possui apenas os
atributos Produto e Quantidade, obtidos do servidor para apresentar para
o usuário.
Consultar Receitas leva à classe Receitas, que possui o nome da
receita, produtos, e as quantidades do mesmo necessárias para a receita
em questão. A partir desta classe, tem-se 3 ações: Criar Receitas,
Remover Receitas e Editar Receitas.
25
Consultar Lista de Compras leva à classe Lista de Compras, que
possui o nome da lista de compras, produtos, e as quantidades do mesmo
desejadas para lista de compras em questão. A partir desta classe, tem-se
3 ações: Criar Lista de Compras, Remover Lista de Compras e Editar
Lista de Compras.
3.2.4. Diagrama de Sequência
Diagrama de Sequência (ou Diagrama de Sequência de
Mensagens) é um diagrama usado em UML (Unified Modeling
Language), representando a sequência de processos num programa de
computador. Como um projeto pode ter uma grande quantidade de
métodos em classes diferentes, pode ser difícil determinar a sequência
global do comportamento do mesmo. O diagrama de sequência representa
essa informação de uma forma simples e lógica.
3.2.4.1. Diagrama de Sequência do cenário Adição/Remoção Produtos
Figura 6: Diagrama de Sequência do cenário Adição/Remoção Produtos.
Conforme ilustra a Figura 6, toda vez em que um novo produto
entra no depósito onde ficaria o estoque, o mesmo passa pelo leitor RFID,
que lê a tag contida na embalagem do produto, e envia um código único e
26
o nome do produto para o servidor, através de um cabo USB, que então
adiciona o produto ao estoque, caso o código já não esteja cadastrado.
Desta mesma forma, quando um produto é utilizado, ao ser
removido do estoque, ele passa pelo leitor RFID, e quando o servidor
detecta que o código único já está cadastrado no banco de dados, ele sabe
que se trata de uma remoção, portanto marca o produto como esgotado ou
fora de estoque.
3.2.4.2. Diagrama de Sequência do cenário Consulta de Estoque
Figura 7: Diagrama de Sequência do cenário Consulta de Estoque.
Para o cliente fazer uma consulta de estoque, a sequência a ser
seguida, como mostra a Figura 7, é o cliente enviar um pedido de
consulta de estoque para o servidor.
27
Este por sua vez faz uma busca no banco de dados por todos
produtos marcados como disponível em estoque, o banco de dados
retorna o resultado da busca que é então enviado pelo servidor para o
cliente (iPhone) que mostra o resultado de forma amigável e clara para o
usuário.
3.2.4.3. Diagrama de Sequência do cenário Consulta de Receita
Figura 8: Diagrama de Sequência do cenário Consulta de Receita.
Neste cenário também, para o cliente fazer uma consulta de
determinada receita, a sequência a ser seguida, como mostra a figura 8, é
semelhante a consulta de estoque.
Porém desta vez o servidor faz a busca de disponibilidade de
produtos no banco de dados de apenas os produtos contidos na receita
informada pelo cliente para o servidor. O banco de dados retorna então os
28
produtos não disponíveis para o servidor, que são então enviados pelo
servidor para o cliente (iPhone), que mostra ao usuário quais ingredientes
necessitam ser comprados para realizar a receita desejada.
3.2.4.4. Diagrama de Sequência do cenário Consulta de Lista de Compras
Figura 9: Diagrama de Sequência do cenário Consulta de Lista de Compras.
Neste cenário também, para o cliente fazer uma consulta da lista de
produtos a serem comprados, a sequência a ser seguida, como mostra a
Figura 9, é semelhante a consulta de estoque e a consulta de determinada
receita.
Porém neste caso o servidor faz a busca por produtos marcados
como fora de estoque no banco de dados. O banco de dados retorna então
os produtos marcados como fora de estoque para o servidor, então envia
para o cliente (iPhone), que mostra ao usuário quais produtos necessitam
ser comprados.
29
3.2.5. Prototipação de Telas
Através da prototipação de telas, pode-se ter uma idéia de como o
sistema será quando desenvolvido, permitindo ver possíveis e importantes
melhoras na interface do programa ainda em etapa de desenvolvimento, o
que torna bem mais fácil uma eventual correção necessária.
3.2.5.1. Tela Principal
Figura 10: Tela Principal.
A partir desta tela que o usuário pode acessar todas as
funcionalidades do cliente desenvolvido para o iPhone. A tela consiste
em fornecer três opções ao usuário:
Ver Estoque;
Ver Lista de Receitas;
Ver Lista de Compras;
Ir para tela de Configurações;
30
3.2.5.2. Tela Visualização de Estoque
Figura 11: Visualização do Estoque.
Nesta tela, o usuário visualiza todos os produtos em estoque, dado
este fornecido pelo banco de dados do servidor. Produtos que foram
consumidos ou retirados do estoque não aparecem aqui. A partir desta
tela o usuário pode voltar para a tela principal.
31
3.2.5.3. Tela Visualização de Lista de Compras
Figura 12: Visualização da Lista de Compras.
Nesta tela, o usuário visualiza todas as listas de compras
cadastradas, podendo abrir cada uma delas para visualizar
detalhadamente cada item que consiste a lista, podendo adicionar ou
remover itens ou também pode ir para uma tela de criação de nova lista
de compras ou voltar para a tela principal.
32
3.2.5.4. Tela Criação de nova Lista de Compras
Figura 13: Criação de nova Lista de Compras.
Nesta tela, o usuário dá o nome à nova lista de compras, adiciona
itens a mesma, edita a quantidade necessária de cada item, e salva a nova
lista de compras no servidor.
33
3.2.5.5. Tela Visualização detalhada de Lista de Compras
Figura 14: Visualização detalhada de nova Lista de Compras.
Nesta tela, o usuário visualiza os itens contidos na lista de compras
escolhida e não disponíveis no estoque, assim como a quantidade a ser
comprada. A partir desta tela é possível editar a lista, adicionando,
removendo e modificando a quantidade de cada item desejada.
34
3.2.5.6. Tela Visualização das Receitas cadastradas
Figura 15: Visualização das Receitas cadastradas.
Nesta tela, o usuário visualiza todas as receitas cadastradas no
servidor, a partir desta tela o usuário pode ir para a tela de Visualização
detalhada de Receitas, para a tela de Criação de Receitas ou voltar para a
tela principal.
35
3.2.5.7. Tela Criação de nova Receita
Figura 16: Criação de nova Receita.
Nesta tela, o usuário da o nome à nova receita, adiciona itens a
mesma, edita a quantidade necessária de cada item, Edita a instrução para
a receita, e salva a nova receita no servidor.
36
3.2.5.8. Tela Visualização detalhada de Receita
Figura 17: Visualização detalhada de Receita.
Nesta tela, o usuário visualiza a receita escolhida, tendo acesso à
lista completa de ingredientes, assim como à lista de ingredientes não
disponíveis no estoque necessários para a receita escolhida, além de
poder consultar instruções de como realizar a receita.
A partir desta tela é possível editar a receita, adicionando,
removendo e modificando a quantidade de cada item desejada e a
instrução.
37
3.2.5.9. Tela de Configuração
Figura 18: Visualização da tela de configuração.
Esta tela permite que o usuário configure o IP do Servidor para que
seja possível estabelecer comunicação com o mesmo.
38
4. VALIDAÇÃO E RESULTADOS
O teste realizado, de Performance X Escalabilidade, consiste
basicamente, em analisar o desempenho do tempo de acesso, de acordo
com o número de clientes usando o serviço ao mesmo tempo, para poder
se ter uma idéia de quantos usuários o projeto poderia suportar em uma
condição extrema.
Como obter um grande número de iPhones para realizar estes testes
é inviável, o teste de escalabilidade baseia-se em um programa
desenvolvido em C# que, com múltiplas threads, realiza consultas
simultâneas ao Web Service, obtendo o tempo de resposta com diferentes
números de threads, simulando assim vários clientes.
4.1. Teste de Escalabilidade
Figura 19: Teste de Escalabilidade Threads x Tempo
Como pode se observar na Figura 19, o gráfico mostra o
desempenho do sistema analisando o número de threads e o tempo de
resposta do servidor. Neste gráfico, o número de Threads está
representado pelo eixo X e o tempo em milissegundos no eixo Y.
39
Para a formação do gráfico, foram realizadas 3 medições para cada
número de Threads, obtendo então a média entre estes três valores para
fazer o gráfico. O teste foi realizado com um Cliente Teste, desenvolvido
em C#, rodando no mesmo computador que o servidor, para que a
velocidade de conexão não fosse um fator de interferência.
A seguir, tem-se uma tabela com todos os resultados obtidos:
Número Threads Tempo (ms)
1 8.0005
1 8.0004
1 8.0005
5 32.0018
5 44.0025
5 28.0016
10 74.0042
10 85.0049
10 113.0065
25 227.0130
25 137.0079
25 166.0095
50 680.0389
50 375.0215
50 361.0207
100 763.0436
100 611.0350
100 721.0412
40
5. CONCLUSÃO
A idéia do projeto era de desenvolver um controle de estoque a
distância por dispositivo móvel, utilizando um leitor de RFID para
adicionar e remover produtos no estoque, criando um banco de dados no
servidor com o estoque, listas de compras e receitas.
Com o dispositivo móvel, e através de serviços Web Service, se
comunicar com o servidor e ter acesso a distância ao estoque e
quantidade de cada produto, quais produtos estão faltando para realizar
uma receita escolhida, lista de compras com produtos que não estão mais
em estoque e deseja-se comprar.
O objetivo inicial foi concluído em sua íntegra, com o
complemento do uso de um banco de dados SQLite local para o Cliente,
para que quando o mesmo estivesse sem conexão com a internet, o
usuário pudesse ter acesso as funcionalidades básicas, como acesso ao
estoque, receitas e listas de compras, mesmo que desatualizados.
Com os resultados apresentados no capítulo 4, pode-se também
observar que, quanto a escalabilidade do sistema, para uma demanda de
médio porte, com até 100 conexões simultâneas, o sistema ainda possui
um tempo de resposta aceitável. Para uma demanda muito maior, a
solução já demonstra problemas quanto ao acesso simultâneo, chegando a
demorar mais de 3 segundos para realizar uma consulta ao Web Service
com 500 Threads simultâneas, o que tornaria o uso inviável.
Como trabalhos futuros, pode-se sugerir a implementação de
criptografia na comunicação cliente/servidor do Web Service, para maior
segurança de dados, que pode vir a ser importante dependendo da
aplicação dada ao sistema. Também, a portabilidade do Cliente para o
iPad, com uma interface adaptada para este tipo de dispositivo, e para a
plataforma Android, podendo assim atingir um número muito maior de
dispositivos que possam usufruir do sistema.
41
6. Referencias Bibliográficas
[Wikipedia, 11] Wikipedia - Disponível em http://www.wikipedia.org .
Acessado em 23/10/2011.
[iOS, 11] iOS Dev Center - Apple Developer - Disponível em
http://developer.apple.com/devcenter/ios . Acessado em 23/10/2011.
[Mark, 09] MARK, D.; LAMARCHE, J. - Beginning iPhone
Development - Exploring the iPhone SDK
[Sadun, 08] SADUN, E. - The iPhone Developer's Cookbook - Building
Applications with the iPhone SDK
42
APÊNDICE A - RESUMO ESTENDIDO
Com o aumento do uso de smartphones, suas tecnologias e
utilidades foram aumentando e também o acesso à internet através de
dispositivos móveis foram ficando mais acessíveis e próximas a
qualidade com que temos em nossas casas.
Um fato que mudou bastante as possibilidades de uso de um
smartphone, foi o surgimento de plataformas como o iOS, do iPhone, e
Android, utilizado em diversos dispositivos.
Outra tecnologia que é relativamente recente e se popularizou nos
últimos anos, tornando seu uso mais acessível, é o RFID (Radio-
frequency identification). O RFID funciona com um leitor fixo, e com
tags (etiquetas) RFID, que contém informações a serem lidas pelo leitor,
que passa esta informação para um computador através de um cabo serial
ou USB, dependendo do leitor em uso.
Com isso, surge então a idéia de desenvolver um controle de
estoque a distância por dispositivo móvel, utilizando um leitor de RFID
para ler os dados de cada produto que estão gravados em sua tag, criar um
banco de dados no servidor com o estoque, listas de compras e receitas.
Com o dispositivo móvel, e através de terminais Web Service, se
comunicar com o servidor e poder saber, a distância, quais os produtos a
serem repostos, quais produtos faltam para determinada receita,
disponibilidade de determinado produto e quantidade, etc.
Para isto, cada produto terá uma tag RFID passiva contendo
informações sobre o mesmo. O leitor RFID ficará em um lugar fixo, por
onde passará todos produtos comprados e sempre que algum for retirado
para ser utilizado. O servidor ficará no mesmo local que o leitor RFID,
conectado ao mesmo com um cabo serial, recebendo assim o código do
produto e suas informações, atualizando o estoque no banco de dados do
servidor.
43
O software do servidor e do iPhone, utilizando terminais Web
Service, permitirá que o usuário, através do iPhone, consulte o servidor,
para obter dados como a disponibilidade de determinado produto, lista de
compras com produtos em falta, produtos necessários para determinada
receita, criação de novas receitas, criação de novas listas de compras,
dentre outros.
O cliente, que será um software desenvolvido para o iPhone, tem
como função principal apresentar os dados para o usuário. O cliente
obterá dados como estoque, produtos que precisam ser comprados, dentre
outros, fazendo pedidos para o servidor, que faz consultas em seu banco
de dados e retorna os dados já filtrados para o cliente. Restando assim,
muito pouco processamento para o cliente realizar, o que é bom, visto
que o servidor tem um poder computacional muito mais que o de um
dispositivo móvel, no caso o iPhone.
44
APÊNDICE B - ARTIGO CIENTÍFICO
Controle de estoque a distância por dispositivo móvel Rafael Moia Vargas – [email protected]
Graduando em Engenharia da Computação, Universidade Positivo
Fone: (+55) 41 99552191
Alessandro Brawerman – [email protected]
Professor – Curso de Engenharia da Computação – Universidade Positivo
Fone: (+55) 41 3317-3000
Endereço para contato:
Universidade Positivo, Curso de Engenharia da Computação
Rua Prof. Pedro Viriato Parigot de Souza, 5300 – Campo Comprido
81280-330, Curitiba – PR
Tel.: (+55) 41 3317-3000
Resumo
Este projeto propõe a criação de uma solução que possibilita o controle de
estoque a distância por dispositivo móvel. Com o aumento do uso de smartphones, suas
tecnologias e utilidades foram aumentando e também a qualidade do acesso à Internet foi
se tornando mais próxima a de que temos em nossas casas, assim como sua
disponibilidade e custo tiveram uma melhora significativa. Outra tecnologia recente e
que se popularizou nos últimos anos, tornando seu uso mais acessível, é o RFID
(Radio-frequency identification).
Com isso, surge então a idéia de desenvolver um controle de estoque a
distância por dispositivo móvel, utilizando um leitor de RFID para ler os dados de
cada produto que estão gravados em sua tag, criar um banco de dados no servidor
com o estoque, listas de compras e receitas. Com o dispositivo móvel, e através de
serviços Web Service, se comunicar com o servidor e poder saber, a distância, quais
os produtos a serem repostos, quais produtos faltam para determinada receita,
disponibilidade de determinado produto e quantidade, etc.
Desta forma é possível, utilizando-se da tecnologia dos dispositivos móveis
atuais, da Internet móvel e da tecnologia RFID, criar uma solução para consulta de
estoque a distância com uma grande flexibilidade de acesso e funcionalidade.
Palavras-Chave: dispositivos móveis, RFID, controle de estoque, Web Service.
45
Abstract
This project proposes the creation of a solution to allow the remote inventory
control through the usage of mobile devices. With the increasing usage of
smartphones, their technologies and functionalities have improved greatly, among
with it's Internet access capabilities, which became much more similar to the Internet
access people have in their homes. Another technology that is relatively new and has
been used with more frequency in the last few years, making it's usage more viable, is
the RFID (Radio-frequency identification).
Taking all this in consideration, arises the idea of developing a remote
inventory control, through the usage of a mobile device, in this particular case the
iPhone, using a RFID reader to read the information of each product, and insert into a
database on the server to create the inventory, allowing the user to create a list with
Recipes, a list with Shopping Lists. With the mobile device, and Web Service, allow
the user to communicate with the server and be able to access, remotely, the
inventory, detailing the quantity of each product, what products need to be
repurchased, which products are missing to be able to make a chosen recipe, among
other functionalities.
In this matter, it is possible, using the technology provided by the smartphones
and platforms, mobile Internet and RFID, to create a solution to remotely control and
check your inventory with a great flexibility of access and many possibilities of
functionalities, with a very user friendly interface, something that wasn't possible
some years ago.
Keywords: mobile devices, RFID, inventory control, web service.
1. INTRODUÇÃO
Com o aumento do uso de smartphones, suas tecnologias e utilidades foram
aumentando e também a qualidade do acesso à Internet através de dispositivos móveis
foi se tornando mais próxima a de que temos em nossas casas, assim como sua
disponibilidade e custo tiveram uma melhora significativa.
Um fato que mudou bastante as possibilidades de uso de um smartphone, foi o
surgimento de plataformas como o iOS, da Apple, presente no iPhone, iPod e iPad, e
Android, da Google, utilizado em diversos dispositivos de diversas marcas.
Outra tecnologia que é relativamente recente e se popularizou nos últimos
anos, tornando seu uso mais acessível, é o RFID (Radio-frequency identification). O
RFID funciona com um leitor fixo, e com tags (etiquetas) RFID, que contém
informações a serem lidas pelo leitor, que passa esta informação para um computador
através de um cabo serial ou USB, dependendo do leitor em uso.
Com isso, surgiu então a idéia de desenvolver um controle de estoque a
distância por dispositivo móvel, utilizando um leitor de RFID para adicionar e
46
remover produtos no estoque, criando um banco de dados no servidor com o estoque,
listas de compras e receitas.
Com o dispositivo móvel, e através de serviços Web Service, se comunicar
com o servidor e ter acesso a distância ao estoque e quantidade de cada produto, quais
produtos estão faltando para realizar uma receita escolhida, lista de compras com
produtos que não estão mais em estoque e deseja-se comprar.
Para isto, cada produto deve ter uma tag RFID passiva contendo um código
único. O leitor RFID ficará em um lugar fixo, por onde passará todos produtos
comprados e sempre que algum for retirado para ser utilizado. O servidor ficará no
mesmo local que o leitor RFID, conectado ao mesmo com um cabo USB, recebendo
assim o código do produto, atualizando o estoque no banco de dados do servidor.
O software do servidor e do iPhone, utilizando Web Service, permite que o
usuário, remotamente, consulte o servidor, para obter dados como a disponibilidade
de determinado produto, lista de compras com produtos em falta, produtos necessários
para determinada receita, criação de novas receitas, criação de novas listas de
compras, dentre outros.
O cliente, um software desenvolvido para o iPhone, tem como função
principal apresentar os dados para o usuário. O cliente obterá dados como estoque,
produtos que precisam ser comprados, dentre outros, fazendo pedidos para o servidor,
que faz consultas em seu banco de dados e retorna os dados já filtrados para o mesmo.
Restando assim, menos processamento para o cliente realizar, fato importante, visto
que o servidor tem um poder computacional muito maior que o de um dispositivo
móvel, no caso o iPhone.
2. DESCRIÇÃO DO PROJETO
o projeto tem como idéia desenvolver um controle de estoque automatizado,
controlado remotamente por um dispositivo móvel, utilizando um leitor RFID e tags
em cada produto para a formação do estoque.
Os Hardwares utilizados no projeto são: iPhone 4, servidor, leitor RFID e tags
RFID.
Conforme a Figura 1 mostra, a tag RFID é lida pelo leitor, que envia a
informação através de um cabo USB para o computador, que atualiza o banco de
dados. O iPhone, remotamente, através da Internet, se conectando através de seu
modem 3G ou Wi-Fi, acessa o servidor, com um pedido ao Web Service
implementado, obtendo os dados para apresentar para o usuário.
47
Figura 1: Representação do Projeto.
O software do iPhone possui como funcionalidade, além de as básicas, como
consultar o estoque, consultar receitas e lista de compras, a habilidade de
remotamente editar ingredientes e instruções de receitas já existentes, deletar receitas,
criar novas receitas. Editar lista de compras, deletar lista de compras e criar novas
lista de compras.
Para este projeto, foram utilizadas 10 tags RFID do tipo chaveiro modelo
SLK01 da Strong Link, ilustrados na Figura 2, com as seguintes características:
• Frequência de 125 KHz e 13.56 MHz;
• Chipset TK4100, Mifare 1k;
• Temperatura de funcionamento de -10° a +50°.
Figura 2: Tags RFID SLK01.
48
O leitor RFID utilizado foi o SL102 da Strong Link, conforme Figura 3, com
as seguintes características:
• Frequência de 125 KHz;
• Interface USB Plug and Play (simula teclado);
• Temperatura de funcionamento de -10° a +70°;
• Dimensões: 120 × 83 × 27 mm;
• Peso: 160g;
Figura 3: Leitor RFID SL102.
O motivo para a escolha destas Tags e deste Leitor, deve-se dentre outras
coisas, ao bom custo/benefício dos produtos, atendendo as necessidades básicas
exigidas pelo projeto. A aquisição dos mesmos não foi de grande dificuldade, apesar
de ter sido importado de outro país. Outra vantagem é a comunicação do leitor RFID
com o computador, que se da por um cabo USB. O leitor envia os 10 dígitos da Tag
lida para o computador, via USB, como se fosse a entrada de um teclado, facilitando
bastante a aquisição da leitura pelo software do servidor.
Algumas limitações importantes a destacar, entretanto, é a distância de leitura
curta (aproximadamente 5 centímetros), que para uma aplicação prática do projeto é
inferior à uma distância aceitável. Outra limitação, é a impossibilidade de passar duas
tags simultaneamente.
Para a limitação de distância, esta pode facilmente ser eliminada com um
investimento um pouco maior em um leitor com maior distância de leitura e uma tag
compatível. Isto só não foi feito pois para efeito de projeto a distância alcançada com
estes equipamentos já é suficiente.
49
3. RESULTADOS
Para análise de resultados do projeto, foram realizados testes para se avaliar
seu desempenho.
O teste realizado, de Performance X Escalabilidade, consiste basicamente, em
analisar o desempenho do tempo de acesso, de acordo com o número de clientes
usando o serviço ao mesmo tempo, para poder se ter uma idéia de quantos usuários o
projeto poderia suportar em uma condição extrema.
Como obter um grande número de iPhones para realizar estes testes é inviável,
o teste de escalabilidade baseia-se em um programa desenvolvido em C# que, com
múltiplas threads, realiza consultas simultâneas ao Web Service, obtendo o tempo de
resposta com diferentes números de threads, simulando assim vários clientes.
Figura 4: Teste de Escalabilidade Threads x Tempo
Como pode se observar na Figura 19, o gráfico mostra o desempenho do
sistema analisando o número de threads e o tempo de resposta do servidor. Neste
gráfico, o número de Threads está representado pelo eixo X e o tempo em
milissegundos no eixo Y.
Para a formação do gráfico, foram realizadas 3 medições para cada número de
Threads, obtendo então a média entre estes três valores para fazer o gráfico. O teste
50
foi realizado com um Cliente Teste, desenvolvido em C#, rodando no mesmo
computador que o servidor, para que a velocidade de conexão não fosse um fator de
interferência.
A seguir, tem-se uma tabela com todos os resultados obtidos:
Número Threads Tempo (ms)
1 8.0005
1 8.0004
1 8.0005
5 32.0018
5 44.0025
5 28.0016
10 74.0042
10 85.0049
10 113.0065
25 227.0130
25 137.0079
25 166.0095
50 680.0389
50 375.0215
50 361.0207
100 763.0436
100 611.0350
100 721.0412
Com os resultados, pode-se dizer que a solução permite atender a uma
demanda de médio porte, com até 100 conexões simultâneas, sem grandes problemas.
51
4. CONCLUSÕES
A idéia do projeto era de desenvolver um controle de estoque a distância por
dispositivo móvel, utilizando um leitor de RFID para adicionar e remover produtos no
estoque, criando um banco de dados no servidor com o estoque, listas de compras e
receitas.
Com o dispositivo móvel, e através de serviços Web Service, se comunicar
com o servidor e ter acesso a distância ao estoque e quantidade de cada produto, quais
produtos estão faltando para realizar uma receita escolhida, lista de compras com
produtos que não estão mais em estoque e deseja-se comprar.
O objetivo inicial foi concluído em sua íntegra, com o complemento do uso de
um banco de dados SQLite local para o Cliente, para que quando o mesmo estivesse
sem conexão com a internet, o usuário pudesse ter acesso as funcionalidades básicas,
como acesso ao estoque, receitas e listas de compras, mesmo que desatualizados.
Com os resultados apresentados no capítulo 3, pode-se também observar que,
quanto a escalabilidade do sistema, para uma demanda de médio porte, com até 100
conexões simultâneas, o sistema ainda possui um tempo de resposta aceitável. Para
uma demanda muito maior, a solução já demonstra problemas quanto ao acesso
simultâneo, chegando a demorar mais de 3 segundos para realizar uma consulta ao
Web Service com 500 Threads simultâneas, o que tornaria o uso inviável.
Como trabalhos futuros, pode-se sugerir a implementação de criptografia na
comunicação cliente/servidor do Web Service, para maior segurança de dados, que
pode vir a ser importante dependendo da aplicação dada ao sistema. Também, a
portabilidade do Cliente para o iPad, com uma interface adaptada para este tipo de
dispositivo, e para a plataforma Android, podendo assim atingir um número muito
maior de dispositivos que possam usufruir do sistema.
5. REFERÊNCIAS BIBLIOGRÁFICAS
[Wikipedia, 11] Wikipedia - Disponível em http://www.wikipedia.org . Acessado em
23/10/2011.
[iOS, 11] iOS Dev Center - Apple Developer - Disponível em
http://developer.apple.com/devcenter/ios . Acessado em 23/10/2011.
[Mark, 09] MARK, D.; LAMARCHE, J. - Beginning iPhone Development -
Exploring the iPhone SDK
[Sadun, 08] SADUN, E. - The iPhone Developer's Cookbook - Building Applications
with the iPhone SDK