68
Centro Universitário Positivo – UnicenP Núcleo de Ciências Exatas e Tecnológicas – NCET Engenharia da Computação Zorday Teixeira Cavalcanti Cartão de Crédito Eletrônico Curitiba 2005

Cartão de Crédito Eletrônico - up.edu.br · Monografia aprovada como requisito à conclusão do curso de Engenharia da ... Este projeto tem o objetivo de promover a virtualização

Embed Size (px)

Citation preview

Centro Universitário Positivo – UnicenP Núcleo de Ciências Exatas e Tecnológicas – NCET

Engenharia da Computação Zorday Teixeira Cavalcanti

Cartão de Crédito Eletrônico

Curitiba 2005

ii

Centro Universitário Positivo – UnicenP Núcleo de Ciências Exatas e Tecnológicas – NCET

Engenharia da Computação Zorday Teixeira Cavalcanti

Cartão de Crédito Eletrônico

Monografia apresentada à disciplina de Projeto Final, como requisito à conclusão do Curso de Engenharia da Computação. Orientador: Prof. Luiz C. Albini.

Curitiba 2005

iii

TERMO DE APROVAÇÃO

Zorday Teixeira Cavalcanti

Cartão de Crédito Eletrônico

Monografia aprovada como requisito à conclusão do curso de Engenharia da

Computação do Centro Universitário Positivo, pela seguinte banca examinadora:

Prof. Luiz Carlos Pessoa. Albini (Orientador)

Prof. Adriana Cursino Thomé

Prof. Marcelo Mikosz Gonçalves

Curitiba, 12 de dezembro de 2005

iv

AGRADECIMENTOS

Agradeço a Deus por ter me dado tantas oportunidades, e ter iluminado meu

caminho em todos os momentos de minha vida.

Agradeço aos meus pais, Vânia e Elias, e avó, Vanda, pelos conselhos e ajudas

prestados em momentos exatos, que me ajudaram a crescer e vencer na vida.

Agradeço a minha irmã Suemar e meus amigos, Deise, Mei, Roberto, Rogério,

Fabio, Grecco, etc., por sempre acreditarem e apoiarem minhas tarefas, mesmo

quando eu mesmo já havia desacreditado.

Agradeço minha namorada Beatriz pela compreensão e apoio no

desenvolvimento deste projeto, mesmo sendo necessárias tantas privações e várias

noites inteiras de trabalho.

SUMÁRIO

1 - INTRODUÇÃO ................................................................................................................. 11 1.1 - MOTIVAÇÃO............................................................................................................. 12 1.2 - DEFINIÇÃO DO TRABALHO.................................................................................. 13 1.3 - CONTEXTUALIZAÇÃO NOS DIAS ATUAIS ........................................................ 14 1.4 - DESCRIÇÃO DAS PRINCIPAIS FUNCIONALIDADES....................................... 14

2 - FUNDAMENTAÇÃO TEÓRICA ..................................................................................... 17 2.1 - TEORIA DO SOFTWARE........................................................................................ 17

2.1.1 – LINGUAGEM C ................................................................................................. 17 2.1.2 – LINGUAGEM VISUAL BASIC......................................................................... 18 2.1.3 – MYSQL............................................................................................................... 18 2.1.4 - CRIPTOGRAFIA ................................................................................................ 22

2.2 - TEORIA DO HARDWARE ....................................................................................... 23 2.2.1 – COMPUTADORES DE MÃO........................................................................... 23 2.2.2 – MICROPROCESSADOR RABBIT.................................................................. 24 2.2.3 – IRDA ................................................................................................................... 25 2.2.4 – ETHERNET........................................................................................................ 25 2.2.5 – DISPLAY LCD................................................................................................... 26 2.2.6 – TECLADO.......................................................................................................... 26 2.2.7 – COMUNICAÇÃO SERIAL ............................................................................... 27

3 - ESPECIFICAÇÃO............................................................................................................ 28 3.1 - COMPUTADOR DE MÃO: ...................................................................................... 28 3.2 - SISTEMA AUXILIAR:............................................................................................... 30 3.3 - COMPUTADOR: ....................................................................................................... 33

4 - PROJETO ......................................................................................................................... 35 4.1 – REQUISITOS MÍNIMOS PARA O FUNCIONAMENTO DO PROJETO ............ 35 4.2 – REQUISITOS DESEJADOS PARA O FUNCIONAMENTO DO PROJETO ..... 35 4.3 - HARDWARE ............................................................................................................. 36 4.4 - SOFTWARE .............................................................................................................. 37

4.4.1 - COMPUTADOR DE MÃO................................................................................. 38 4.4.2 - SISTEMA AUXILIAR ......................................................................................... 42 4.4.3 - COMPUTADOR ................................................................................................. 45

5 - TESTES DE VALIDAÇÃO DO PROJETO.................................................................... 52 6 – RESULTADOS ................................................................................................................ 53 6.1 – COMPUTADOR DE MÃO........................................................................................... 53 6.2 – SISTEMA AUXILIAR ................................................................................................... 56 6.3 – COMPUTADOR ........................................................................................................... 60 7 - CONCLUSÕES ................................................................................................................ 61 8 - CRONOGRAMA DE DESENVOLVIMENTO ................................................................ 62 9 - ESTUDO DE VIABILIDADE TÉCNICO-ECONÔMICA................................................ 63 10 – APÊNDICE .................................................................................................................... 64 11 - REFERÊNCIAS BIBLIOGRÁFICAS ........................................................................... 67

6

LISTA DE FIGURAS

Figura 1 - Diagrama de Bloco Geral do Sistema................................................................ 14 Figura 2 - Diagrama de Blocos do Módulo do Computador de Mão ................................ 30 Figura 3 - Diagrama de Blocos do Sistema Auxiliar........................................................... 33 Figura 4 - Diagrama de Blocos do Computador ................................................................. 34 Figura 5 - Esquemático de interligação Rabbit/teclado e display LCD ............................ 37 Figura 6 - Legenda do DFD .................................................................................................. 38 Figura 7 - Interface para cadastro de cartões..................................................................... 39 Figura 8 - Interface para edição e eliminação de cadastro ............................................... 39 Figura 9 - Interface principal para escolha de cartão para pagamento............................ 40 Figura 10 - DFD nível 0 do computador de mão ................................................................ 41 Figura 11 - DFD nível 1 do computador de mão ................................................................ 41 Figura 12 - Repositório de dados de cartões no computador de mão ............................. 42 Figura 13 - DFD nível 0 do sistema auxiliar ........................................................................ 44 Figura 14 - DFD nível 1 do sistema auxiliar ........................................................................ 44 Figura 15 - Interface para cadastro de clientes .................................................................. 46 Figura 16 - Interface para cadastro cartões dos clientes................................................... 46 Figura 17 - Interface para consulta de faturas dos cartões ............................................... 47 Figura 18 - Interface para cadastro de estabelecimentos ................................................. 47 Figura 19 - Interface para consulta de pagamentos dos estabelecimentos .................... 48 Figura 20 - Interface para consulta de operações realizadas ........................................... 48 Figura 21 - DFD nível 0 do computador .............................................................................. 50 Figura 22 - DFD nível 1 do computador .............................................................................. 50 Figura 23 - Modelo relacional do banco de dados do computador .................................. 51 Figura 24 - Visão geral do sistema montado ...................................................................... 53 Figura 25 - Interface principal do computador de mão ...................................................... 54 Figura 26 - Interface de cadastro de cartões do computador de mão ............................. 55 Figura 27 - Interface para edição e eliminação de registros do computador de mão..... 55 Figura 28 - Visão geral do sistema auxiliar ......................................................................... 57 Figura 29 - Protótipo do sistema auxiliar............................................................................. 57 Figura 30 - Vista frontal do protótipo ................................................................................... 58 Figura 31 - Vista traseira do protótipo ................................................................................. 58 Figura 32 - Comprovante de compra ainda na miniimpressora ........................................ 59 Figura 33 - Comprovante impresso de pagamento............................................................ 59 Figura 34 - Interface de histórico de operações ................................................................. 60

7

LISTA DE TABELAS

Tabela 1 – Estimativa de Custos....................................................................................65

8

LISTA DE SIGLAS

OS – Operational System;

LCD – Liquid Crystal Display;

ANSI – American National Standards Institute;

SQL – Linguagem Estruturada para Pesquisa;

DES – Data Encryption Standard;

RSA – Rivest-Shamir-Adleman;

MHz – Mega Hertz;

IRDA – Infrared Data Association;

IRLAP – Link Access Protocol;

IRLMP – Link Management Protocol;

IAS – Information Access Service;

DNS – Domain Name System;

TCP – Transmission Control Protocol;

IP – Internet Protocol;

IHM – Interface Homem-Máquina;

CNPJ – Cadastro Nacional de Pessoa Jurídica;

CPF – Cadastro de Pessoa Física;

CI – Circuito Integrado;

DFD – Diagrama de Fluxo de Dados.

9

RESUMO

Este projeto tem o objetivo de promover a virtualização dos cartões de crédito

utilizando-se os mesmos através de computadores de mão do tipo Palm®. Esta

utilização é realizada através da transferência de dados do computador de mão para

um sistema auxiliar baseado no microprocessador Rabbit®, com o uso da tecnologia do

conexão infravermelha.

O projeto simula a utilização real do sistema de compras através do uso de

cartões de crédito, inclusive tendo um servidor dedicado de dados para registro de

todas as informações necessárias.

O benefício trazido por este projeto é para os usuários de sistemas Palm®, pois

este tipo de pessoas está interessada em ter o maior número de funcionalidades ao

seu dispor, tendo que carregar para isto, a menor quantidade de objetos possíveis.

Portanto, com este projeto, em determinados casos, a carteira poderia ser deixada em

casa, e se carregaria apenas o computador de mão.

Palavras-chave: computador de mão, cartão de crédito, conexão infravermelha,

microprocessador Rabbit, servidor de dados

10

ABSTRACT

This project has the purpose of make credit cards become electronics, using

handhelds of kind Palm® This utility is made transferring data between the Palm® and

an auxiliary system based on the microprocessor Rabbit, using an infrared connection.

The project simulates the real system of buys with credit cards, having until a

dedicated server to keep all the needed data.

The benefit of this project is for Palm® users, because this kind of people wants to

have the bigger number of features, taking a less number o objects. So this project can,

in some cases, give the option for the user to leave the wallet in house.

Keywords: handheld, credit card, infrared connection, microprocessor Rabbit, data

server

11

1 - INTRODUÇÃO

Com o passar dos anos várias tecnologias foram desenvolvidas, porém, em

diversos casos, estas tecnologias são desenvolvidas de forma separada e dificilmente

vêem a ser integradas para que se possa obter o maior proveito das mesmas.

Duas tecnologias que foram desenvolvidas e até o presente, não possuem

nenhuma ligação, são os cartões de crédito e os computadores de mão. Os cartões de

crédito são utilizados cada vez mais para realização de compras pela internet, pelo

telefone e nos próprios estabelecimentos, proporcionando assim uma maior segurança

e agilidade nas compras realizadas. E cada vez mais são desenvolvidos aparelhos e

métodos que tornem a utilização desta forma de pagamento mais atrativa.

Por outro lado, os computadores de mão, têm cada vez mais assumido a função

de extensão do desktop, oferecendo mais recursos e com isto ganhando maiores

funcionalidades do que servirem apenas como agenda eletrônica, além, claro, dos

diversos programas que aparecem para este tipo de plataforma a cada dia.

Temos então estas duas tecnologias que trabalham muito bem separadamente.

Este trabalho busca justamente a união delas, ou seja, a utilização de cartões de

crédito, eletronicamente, através de computadores de mão.

Durante o decorrer da especificação deste trabalho serão apresentados fatores

ligados ao conceito do trabalho, como, a motivação para realização do mesmo, a

definição formal do trabalho, como o mesmo foi desenvolvido e qual o objetivo

alcançado com este desenvolvimento, e neste estágio serão apresentados os três

grandes módulos nos quais se divide o trabalho. Posteriormente será apresentada a

contextualização deste trabalho nos dias atuais, ou seja, qual benefício pode trazer

para as pessoas na atualidade e para finalizar a parte introdutória serão apresentadas

as principais funcionalidades do sistema módulo a módulo.

Passada esta parte introdutória serão apresentadas as teorias das tecnologias

que foram utilizadas durante a implementação do trabalho, dividindo a explicação

destas teorias em teorias de software e de hardware.

Logo após apresentadas as teorias envolvidas no desenvolvimento do trabalho,

será apresentada diretamente a especificação do trabalho em si. Apresentando módulo

a módulo todos os componentes que fazem parte dos mesmos, definindo assim todas

as ferramentas que foram necessárias para a concretização deste trabalho.

Posteriormente, será apresentado o projeto de forma mais detalhada e com seus

componentes definidos segundo métodos formais.

12

Após esta definição de tudo que esta presente, será definido como foram feitos os

testes de verificação e validação do sistema, para comprovar a funcionalidade do

mesmo.

Baseado nos testes realizados serão apresentados os resultados obtidos no

desenvolvimento do projeto e logo após, serão apresentadas as conclusões obtidas a

partir destes resultados.

Encerrando este documento, será apresentado o cronograma de desenvolvimento

do trabalho, desde a fase de aprovação da proposta do projeto final, até a fase de

entrega da documentação final do projeto. Além disso, um breve estudo de viabilidade

técnico-econômica da realização do projeto, apenas levando em consideração os

equipamentos essenciais para o desenvolvimento do mesmo.

1.1 - MOTIVAÇÃO

Com a invenção dos cartões como forma de dinheiro (cartão de crédito, débito e

etc.), muitas pessoas têm dado prioridade a esse tipo de recurso para a realização de

compras. Isso ocorre devido às vantagens que a utilização dos mesmos proporciona,

como agilidade e segurança.

Antigamente dispúnhamos apenas de recursos como dinheiro e cheque. Isto fazia

com que as pessoas andassem com grandes quantias de dinheiro ou talões de

cheques no bolso, proporcionando assim, certa falta de segurança, pois estes meios

significava grandes atrativos para ladrões e pessoas mal intencionadas.

Por outro lado, para os comerciantes, aceitar pagamentos em cheque significava

um outro perigo, pois os mesmos não tinham, e não tem até hoje, a garantia de

pagamento. Sem contar que o tempo gasto com o preenchimento de cheques,

dependendo do tipo de estabelecimento, causa um aborrecimento muito grande aos

outros clientes.

Já com o dinheiro plástico, esses problemas não acontecem. Pois se carrega

apenas o cartão e, no caso do cartão de débito, ele é protegido por senha e o

crédito/débito do valor da compra ocorre no ato da realização da mesma. Liberando o

cliente da obrigação de andar com o dinheiro para realização da compra, e garantindo

o recebimento ao estabelecimento. Com o cartão de crédito, o crédito/débito não ocorre

no ato da compra, mas a garantia do pagamento também é certa. Para a pessoa o

valor fica vinculado a sua próxima fatura e para o comerciante o recebimento deste

13

valor é garantido pela administradora do cartão na data de contrato. Portanto o cliente

ganha um “prazo” para pagar a dívida e o comerciante têm a garantia de recebimento.

Outra tecnologia que ganhou grande mercado nos últimos anos foi o computador

de mão. Que trás grande número de funcionalidades, como entretenimento e extensão

de desktops. Porém estes dispositivos foram criados com o intuito de diminuírem o

volume dos objetos carregados por seus portadores e isto, atualmente, não é possível,

pois as pessoas necessitam de suas carteiras para realizarem suas compras. Portanto

o projeto visa à busca deste conceito dos computadores de mão, possibilitando assim a

utilização dos mesmos para a realização de compras, através da virtualização de seus

cartões.

1.2 - DEFINIÇÃO DO TRABALHO

O sistema proporciona a virtualização do cartão do crédito através de

computadores de mão do tipo Palm®. Portanto os usuários deste tipo de sistema

poderão utilizar o próprio computador de mão para realizar compras através de seus

cartões de crédito.

O sistema será composto de três grandes módulos, são eles:

• Computador de mão: Para este módulo foi desenvolvido um software, o

qual servirá para toda a interação do usuário final. Nele os usuários devem

cadastrar seus cartões de crédito e poderão utilizá-los posteriormente na

realização de compras. Para este trabalho foi utilizado um computador de

mão do tipo Palm®;

• Sistema auxiliar: O sistema auxiliar serve para realizar a validação do

trabalho. Este faz a simulação das máquinas de compra via cartão

existente nos estabelecimentos, onde são validadas e realizadas as

compras efetivas. Este sistema auxiliar conta ainda com certos dispositivos

que as máquinas atuais não possuem. O desenvolvimento foi realizado em

hardware, baseado no microprocessador Rabbit® com seu kit de

desenvolvimento, e faz conexão, tanto com o computador de mão quanto

com o computador;

14

• Computador: Existe um computador que serve para fazer a simulação do

servidor de dados da operadora de cartão de crédito, onde o sistema

auxiliar consulta a veracidade dos dados recebidos.

Através do diagrama de blocos da Figura 1, obtem-se uma visão de como é o

funcionamento do trabalho como um todo.

Figura 1 - Diagrama de Bloco Geral do Sistema

1.3 - CONTEXTUALIZAÇÃO NOS DIAS ATUAIS

Através da utilização do sistema, os portadores de computadores de mão podem

optar pela eliminação da carga de suas carteiras, utilizando o mesmo para realização

de suas compras.

Pode-se, portanto crer numa grande aceitação do sistema entre o público alvo.

Pois este público geralmente procura o maior número de utilidades em seus

computadores de mão, e este sistema poderá proporcionar a eliminação de um

elemento a mais que é carregado pelo usuário, já que a própria Palm® têm quase o

tamanho de uma carteira.

1.4 - DESCRIÇÃO DAS PRINCIPAIS FUNCIONALIDADES

Para que serve cada bloco que compõe o trabalho? Quais os componentes destes

blocos? Estas são, basicamente, as perguntas respondidas neste tópico.

Comunicação Infravermelha

Comunicação Ethernet

Computador de mão

Kit do Rabbit

RCM3000/RCM3100

Computador para

validação dos dados

15

Computador de Mão:

Tem a função de realizar as compras utilizando-se dos dados dos cartões de

crédito do usuário cadastrados no software que roda no mesmo. O usuário é o

responsável por cadastrar os dados de seus cartões, para posteriormente poder utilizá-

los em compras.

Foi desenvolvido um software que roda no sistema operacional PalmOS®, e faz

acesso aos recursos disponíveis na plataforma. Como por exemplo, o recurso de

conexão infravermelho disponível neste tipo de computadores, ao menos na maioria

dos modelos.

Sistema Auxiliar:

O sistema auxiliar é o responsável pela conexão direta via infravermelho com o

computador de mão, recendo através desta os dados do cartão de crédito do cliente.

Após recebidos os dados, uma conexão do tipo ethernet deverá ser estabelecida com o

computador. Nesta conexão são transmitidos os dados do cartão e do estabelecimento

para serem verificados com a base de dados.

Além dos dispositivos que tornam estas conexões possíveis, alguns dispositivos

auxiliares devem estar presentes neste sistema, como:

• display LCD;

• teclado;

• miniimpressora;

• memória flash.

Tudo isto para que o funcionamento deste sistema auxiliar possa se equiparar ao

máximo com as máquinas de compras via cartões de crédito disponíveis atualmente.

Antes que o sistema auxiliar possa funcionar de forma automática, os dados de

cadastro do estabelecimento devem ser gravados na memória flash do sistema. Isto

para que o mesmo possa ser identificado posteriormente, tanto em suas conexões,

quanto em seus comprovantes emitidos.

Este sistema foi desenvolvido com base no kit de desenvolvimento do

processador Rabbit®, que dispõe de grande parte dos recursos necessários para

desenvolvimento do trabalho, como as conexões e acesso aos recursos descritos.

16

O kit de desenvolvimento será detalhado posteriormente na especificação do

sistema auxiliar.

Computador:

O computador tem a função de verificar a veracidade dos dados enviados pelo

computador de mão para o sistema auxiliar. Similarmente ao que acontece com as

compras feitas com o próprio cartão\ em terminais de compras convencionais com

leitores de tarjas magnéticas.

Portanto o computador tem a função do servidor de dados da operadora de cartão

de crédito, porém aplicado especificamente para verificação de dados recebidos pelo

sistema auxiliar. Como se pode observar, o sistema é um espelhamento do sistema

real utilizado atualmente pelas operadoras de cartões de crédito, porém com

parâmetros internos especificados para este trabalho. Além de obter proporções bem

inferiores.

Neste módulo está presente uma conexão ethernet, um software responsável pela

realização de todas as operações necessárias, e um banco de dados que serve para

armazenamento dos dados dos “clientes”, “estabelecimentos” e todas as operações

que ocorrem no mesmo.

Ou seja, através deste banco de dados, pode-se observar que comprou o quê,

aonde e de quem, além de tentativas de utilização não permitidas dos cartões de

crédito, como em caso de roubo.

17

2 - FUNDAMENTAÇÃO TEÓRICA

Serão apresentadas agora as teorias das tecnologias que serão citadas

posteriormente na especificação do trabalho em si. Deste modo a especificação ficará

mais clara e limpa.

2.1 - TEORIA DO SOFTWARE

2.1.1 – LINGUAGEM C

A linguagem C é uma linguagem derivada da linguagem B, criada na década de

70. Ela foi desenvolvida em sistemas operacionais UNIX, e era distribuída junto a este

sistema em sua versão 5. Porém com o aparecimento, e popularidade dos

microcomputadores, várias implementações da linguagem foram aparecendo, e que

quase por milagre eram compatíveis entre si. Em 1983 foi criado um padrão para a

linguagem para acabar com as discrepâncias, chamado de C ANSI [16].

A linguagem C é considerada de nível médio, o que não significa que ela tem

menos recursos que uma linguagem de nível alto, nem que ela é menos poderosa que

uma linguagem de nível baixo. Ao contrário disto, esta linguagem é considerada de

nível médio por ter vários recursos dos dois grupos e com algumas vantagens. Por

exemplo, um conceito que pertence as linguagens de alto nível e que está presente na

linguagem C é a definição de tipos de dados. Esta linguagem tem ainda recursos que

possibilitam a manipulação de bits, bytes e endereços, elementos básicos do

funcionamento de computadores. O que a aproxima de uma linguagem de baixo nível

[16].

A linguagem C ainda é muito portátil entre diversas plataformas, ou seja, com

apenas pequenas modificações, um programa escrito em linguagem C pode rodar em

um sistema diferente daquele em que foi escrito [16].

Outra característica da linguagem C é que esta linguagem é estruturada, não em

blocos, pois a mesma não permite a criação de funções dentro de outras funções,

como em linguagens de nível alto, mas tem a principal característica desta

classificação que é a compartimentalização do código e dos dados. Ou seja, a

linguagem consegue seccionar e esconder do resto do programa todas as informações

18

necessárias para se realizar uma tarefa específica. Isto é feito através do uso de sub-

rotinas que empregam variáveis locais. Com isto, os eventos ocorridos dentro das sub-

rotinas causam efeito apenas nelas mesmas, isolando-as de outras partes do

programa, e evitando efeitos inesperados em funções separadas. Com isto os

programas em linguagem C podem compartilhar facilmente seções de código,

precisando-se saber apenas o que determinada função faz, e não como ela faz [16].

Graças a esta grande variedade de atributos, que esta linguagem pode ser

empregada a diversos tipos de aplicações, sem deixar a desejar em nenhum aspecto.

2.1.2 – LINGUAGEM VISUAL BASIC

O Visual Basic® é uma combinação de ferramentas visuais no ambiente Windows®

com a combinação Basic®. Portanto os programas em Visual Basic® são compostos de

dois componentes principais, o componente visual (interface) e o componente de

código (o que torna possível a execução de tarefas pelo programa) [17].

2.1.3 – MYSQL

O programa MySQL® é um servidor robusto de bancos de dados SQL (Structured

Query Language - Linguagem Estruturada para Pesquisas) muito rápido, multi-tarefa e

multi-usuário [15].

O MySQL é um banco de dados relacional, ou seja, ele armazena dados em

tabelas separadas ao invés de colocar todos os dados em um só local. Isto proporciona

velocidade e flexibilidade. Já o SQL é a linguagem padrão mais utilizada para acesso a

bancos de dados. É definida pelo Padrão ANSI/ISSO SQL [15].

Juntado estas funcionalidades básicas do MySQL (banco de dados relacional,

rápido e que utiliza a linguagem SQL), o que dá total confiança de utilização deste sem

temer perdas bancos de dados conhecidos, ao fato deste ser livre, portanto, sem

acarretar custos adicionais ao projeto, sua utilização fica evidente como a melhor

escolha.

A seguinte lista descreve algumas características mais importantes do Programa

de Banco de Dados MySQL [15].

19

- Portabilidade

• Escrito em linguagem C e C++;

• Testado com uma ampla faixa de compiladores diferentes;

• Funciona em diversas plataformas;

• Utiliza o GNU Automake, Autoconf, e Libtool para portabilidade;

• APIs para linguagem C, C++, Eiffel, Java, Perl, PHP, Python, Ruby e Tcl estão

disponíveis;

• Suporte total a multi-threads usando threads diretamente no kernel. Isto

significa que se pode facilmente usar múltiplas CPUs, se disponível;

• Fornece mecanismos de armazenamento transacional e não transacional;

• Tabelas em disco (MyISAM) baseadas em árvores-B extremamente rápidas

com compressão de índices;

• É relativamente fácil se adicionar outro mecanismo de armazenamento. Isto é

útil para adicionar uma interface SQL a um banco de dados caseiro;

• Um sistema de alocação de memória muito rápido e baseado em processo

(thread);

• Joins muito rápidas usando uma multi-join de leitura única otimizada;

• Tabelas hash em memória que são usadas como tabelas temporárias;

• Funções SQL são implementadas por meio de uma biblioteca de classes

altamente otimizada e com o máximo de performance. Geralmente não há

nenhuma alocação de memória depois da inicialização da pesquisa;

• O código do MySQL foi testado com Purify (um detector comercial de falhas de

memória) e também com o Valgrind, uma ferramenta GPL;

• Disponível como versão cliente/servidor ou embutida (ligada).

- Tipos de Coluna

• Aceita diversos tipos de campos: tipos inteiros de 1, 2, 3, 4 e 8 bytes com e

sem sinal, FLOAT, DOUBLE, CHAR, VARCHAR, TEXT, BLOB, DATE, TIME,

DATETIME, TIMESTAMP, YEAR, SET e ENUM;

• Registros de tamanhos fixos ou variáveis;

• Comandos e Funções;

• Completo suporte a operadores e funções nas partes SELECT e WHERE das

consultas. Por exemplo: mysql> SELECT CONCAT(first_name, " ", last_name)

-> FROM nome_tbl -> WHERE income/dependents > 10000 AND age > 30;

20

• Suporte pleno às cláusulas SQL GROUP BY e ORDER BY. Suporte para

funções de agrupamento (COUNT(), COUNT(DISTINCT ...), AVG(), STD(),

SUM(), MAX() e MIN());

• Suporte para LEFT OUTER JOIN e RIGHT OUTER JOIN com as sintaxes SQL

e ODBC;

• Alias em tabelas e colunas são disponíveis como definidos no padrão SQL92;

• DELETE, INSERT, REPLACE, e UPDATE retornam o número de linhas que

foram alteradas (afetadas). É possível retornar o número de linhas com padrão

coincidentes configurando um parâmetro quando estiver conectando ao

servidor;

• O comando específico do MySQL SHOW pode ser usado para devolver

informações sobre bancos de dados, tabelas e índices.

• O comando EXPLAIN pode ser usado para determinar como o otimizador

resolve a consulta;

• Nomes de funções não conflitem com nomes de tabelas ou colunas. Por

exemplo, ABS é um nome de campo válido. A única restrição é que para uma

chamada de função, espaços não são permitidos entre o nome da função e o

'(' que o segue;

• Você pode misturar tabelas de bancos de dados diferentes na mesma

pesquisa.

- Segurança

• Um sistema de privilégios e senhas que é muito flexível, seguro e que permite

verificação baseada em estações/máquinas.

• Senhas são seguras porque todo o tráfico de senhas é criptografado quando

se conecta ao servidor;

• Escalabilidade e limites;

• Lida com bancos de dados enormes. Usamos o Servidor MySQL com bancos

de dados que contém 50.000.000 registros e sabemos de usuários que usam o

Servidor MySQL com 60.000 tabelas e aproximadamente 5.000.000.000 de

linhas;

• São permitidos até 32 índices por tabela. Cada índice pode ser composto de 1

a 16 colunas ou partes de colunas. O tamanho máximo do índice é de 500

bytes (isto pode ser alterado na compilação do MySQL). Um índice pode usar

o prefixo de campo com um tipo CHAR ou VARCHAR.

21

- Conectividade

• Os clientes podem se conectar ao servidor MySQL usando sockets TCP/IP,

em qualquer plataforma. No sistema Windows na família NT (NT, 2000 ou XP),

os clientes podem se conectar usando named pipes. No sistema Unix, os

clientes podem se conectar usando arquivos sockets;

• A interface Connector/ODBC fornece ao MySQL suporte a programas clientes

que usam conexão ODBC (Open-DataBase-Connectivity). Por exemplo, você

pode usar o MS Access® para conectar ao seu servidor MySQL. Os clientes

podem ser executados no Windows ou Unix. O fonte do Connector/ODBC está

disponível. Todas as funções ODBC são suportadas, assim como muitas

outras.

- Localização

• O servidor pode apresentar mensagem de erros aos clientes em várias

línguas;

• Suporte total para vários conjuntos de caracteres, que incluem ISO-8859-1

(Latin1), big5, ujis e mais. Por exemplo, os caracteres Escandinavos 'â', 'ä', 'ö'

são permitidos em nomes de tabelas e colunas;

• Todos os dados são armazenados no conjunto de caracteres escolhido. Todas

as comparações em colunas de seqüências caso-sensitivo;

• A ordenação é feita de acordo com o conjunto de caracteres escolhido (o

modo sueco por padrão). É possível alterar isso quando o servidor MySQL é

iniciado. Para ver um exemplo de várias ordenações avançadas, procure pelo

código de ordenação Tcheca. O Servidor MySQL suporta diversos conjuntos

de caracteres que podem ser especificados em tempo de compilação e

execução.

- Clientes e Ferramentas

• O servidor MySQL foi construído com suporte para instruções SQL que

verificam, otimizam e reparam tabelas. Estas instruções estão disponíveis a

partir da linha de comando por meio do cliente myisamcheck. O MySQL inclui

também o myisamchk, um utilitário muito rápido para realizar estas operações

em tabelas MyISAM;

22

• Todos os programas MySQL podem ser chamados com as opções --help ou -?

para obter ajuda online.

2.1.4 - CRIPTOGRAFIA

A criptografia é um recurso utilizado para proteção de dados. Este recurso pode

ser utilizado no armazenamento dos dados no computador de mão, ou na comunicação

dos dados entre os módulos do trabalho.

A criptografia é uma ciência complexa que estuda meios de guardar dados de

forma segura, para que estes possam ser acessados e entendidos apenas pelas

pessoas desejadas. E para realização desta tarefa difícil, existem diversas maneiras

diferentes, porém somente duas são interessantes neste momento, visto que uma

delas pode ser implementada neste trabalho.

• A criptografia simétrica baseia-se na utilização da mesma chave para cifrar

e decifrar a mensagem, e pode-se observar este tipo de criptografia através

do algoritmo DES (Data Encryption Standard) [1] [2].

• A criptografia assimétrica utiliza chaves diferentes para cifrar e decifrar as

mensagens, e pode-se observar este tipo de criptografia através do

algoritmo RSA (Rivest-Shamir-Adleman) [1] [2].

A criptografia DES existe desde 1977 [1], porém apresenta uma segurança

considerável até hoje. Este sistema é baseado em chaves de 64bits. Neste tipo de

criptografia, é utilizado um encadeamento de permutas, onde a mensagem em

determinado momento é divida em duas partes e permutada separadamente.

Posteriormente estas partes são reunidas, o que causa uma grande modificação na

mensagem original. Este tipo de criptografia é ideal para utilização em dados que são

armazenados localmente. Entretanto para os dados que são comunicados esta

criptografia não é indicada, pois seria necessário que todo bloco que necessitasse

reconhecer estes dados conhecessem estas chaves e procedimentos utilizados na

realização da cifragem da mensagem.

A criptografia RSA consiste na utilização de chaves públicas e privadas diferentes

para cifrar e decifrar as mensagens, isto ocorre por causa de toda a matemática que

está envolvida por trás deste algoritmo. Como este algoritmo está baseado em regras

matemáticas, claro que ele torna-se vulnerável no sentido teórico de sua aplicabilidade,

porém o que o torna tão eficiente e seguro é que as chaves selecionadas são

23

extremamente grandes. Mesmo utilizando computadores de grande potência demora-

se um tempo proibitivo para descobri-las. Isto atende a, talvez, a mais importante e

aplicável, até hoje, das regras de Kerckhoffs do século XIX definidas em seu livro La

Cryptographie Militaire [1], que diz “o sistema deve ser, se não teoricamente

(matematicamente) inquebrável, inquebrável na prática”, e é isto que este sistema

propõe utilizando chaves deste tamanho.

No trabalho os dados devem obrigatoriamente estar protegidos em apenas um

estágio, no armazenamento dos dados, ou na comunicação entre dois módulos,

através de técnicas de criptografia desenvolvidas ou através de ferramentas já

existentes que proporcionem esta proteção. Outras formas de proteção de dados são

consideradas módulos adicionais do projeto, com objetivo de maior segurança do

mesmo.

2.2 - TEORIA DO HARDWARE

2.2.1 – COMPUTADORES DE MÃO

Como o próprio nome já sugere, são sistemas completos, mais próximos

possíveis de computadores, porém com tamanhos reduzidos, feitos para serem

carregados e manuseados apenas com uma mão.

Existe uma gama muito grande de programas direcionados para este tipo de

sistema, deixando-os com maior número de funcionalidades, e assim, se equiparando

cada vez mais com um computador de mesa.

Grande parte destes sistemas utiliza arquitetura ARM[12], porém diversas outras

arquitetura são encontradas, o que gera um grande número de plataformas existentes.

Isto gera diversas particularidades no desenvolvimento de softwares para cada tipo de

plataforma. O que justifica o porquê que foi necessário escolher um tipo específico

como base para o projeto.

Quase todos os computadores de mão, principalmente os mais atuais, já dispõem

de dispositivo para conexão infravermelha.

Neste projeto, não foi desenvolvido, em hardware, nada de novo para este tipo de

sistema, apenas foram utilizadas, via software, as funcionalidades já disponíveis.

24

2.2.2 – MICROPROCESSADOR RABBIT

O microprocessador Rabbit® é fabricado pela companhia Z-World®, que está no

mercado desde 1983 e é pioneira na criação de controles industriais embarcados [10].

Este processador tem uma arquitetura de 8-bit, e é muito eficiente, muito completo

e foi desenvolvido especificamente para aplicações embarcadas de controle,

comunicações e conexões com redes ethernet. É um processador rápido com

desempenho comparável ao de um processador de 16-bit. Opera com relógios de até

55.5 MHz. Oferece grade rapidez para cálculos matemáticos, lógicos e acessos de

entrada/saída. Tem ainda 4 níveis de prioridade para interrupções, favorecendo assim

respostas rápidas à eventos de tempo real [13].

O desenvolvimento para este processador é feito em C, o que facilita sua

programação para conhecedores desta linguagem, e torna o processador muito

eficiente e aplicável os projetos mais variados e complexos. E como existente na

linguagem C, possibilita a utilização de alguns comandos em Assembler [13].

Este processador não necessita de memória externa. Com suas 20 linhas de

endereçamento, 8 de dados, 3 de chip-enable, 2 de output-enable, e 2 de write-enable,

podem ser controladas até 6 memória Flash/SRAM. Até 1MB de memória pode ser

acessado diretamente pelo software de desenvolvimento Dynamic C®, e com ajustes

de software este número pode chegar a 6MB [13].

Podem ser criados sistemas multi-processados, graças a existência de uma porta

slave no processador, portanto o mesmo pode atuar como master ou slave, permitindo

assim a implementação de tarefas dedicas para cada um dos processadores. A

comunicação entre os processadores é facilitada devido ao fato de existirem linhas

especificas e dedicadas a este fim [13].

As principais vantagens, ou características desde processador são [13]:

• 8 portas paralelas, que totalizam 56 linhas de entrada/saída;

• 6 portas seriais, que podem ser configuradas de modos assíncrono ou

síncrono (SPI, SDLC ou HDLC);

• 4 saídas independentes PWM, que podem ser configurados como um D/A

de 10-bit capaz de controlar motores ou solenóides;

• 10 relógios de 8-bit e 1 de 10-bit com 2 registradores de comparação;

• Relógio de tempo real;

25

• Relógios programáveis para modos 1x, 2x, /2, /3, /4, /6 e /8.

Estas são funcionalidades existentes e possíveis de implementação no

processador, porém, àquelas que exigem utilização de linhas externas, fazem consumo

das 56 linhas de entrada/saída disponíveis, impossibilitando demais funções [13].

2.2.3 – IRDA

Este tipo de conexão tem uma série de protocolos e especificações para utilização

na comunicação padronizada com outros dispositivos. Estes padrões, físicos e lógicos,

são definidos pelo IrDA Consortium [5]. Neste trabalho a conexão estabelecida será do

padrão IrDA Data que serve para comunicação de dados do tipo ponto-a-ponto, de

curtas distâncias e altas-velocidades. Estas distâncias podem chegar a 1 metro e as

velocidades variam de 9.600 bps a 16 Mb/s.

Dentro deste padrão existe uma pilha de protocolos, utilizados para fazer a

comunicação efetiva de modo a ser entendida por ambas as partes. Os protocolos

necessários são:

• Physical layer, que especifica as características óticas para a transmissão

de dados através da radiação de ondas infravermelhas;

• IrLAP (Link Access Protocol), semelhante ao IP, serve para

estabelecimento da conexão;

• IrLMP (Link Management Protocol), que serve como o socket na

comunicação TCP/IP, fazendo a distribuição de serviços e aplicativos

fornecidos pelos LAP’s;

• IAS (Information Access Service), que semelhante ao DNS, provém

informações sobre protocolos e serviços [7].

2.2.4 – ETHERNET

A ethernet é uma tecnologia utilizada na interconexão de redes locais baseada no

envio de pacotes. Ela quem define todos os aspectos relacionados as redes locais,

tanto na parte física (cabeamento, sinais elétricos, etc.), quanto na parte lógica

(protocolos, pacotes, etc.) [14].

26

Este é o padrão mais utilizado em todo o mundo para implementação de redes

locais. Como vários aspectos estão envolvidos na especificação completada deste

padrão, a partir de aspectos físicos, e elétricos de comunicação entre meios até níveis

mais altos como manipulação de pacotes e protocolos via software, e devido ao vasto

conhecimento já adquirido por todos sobre este padrão, maiores especificações são

desnecessárias.

2.2.5 – DISPLAY LCD

Displays LCD são muito úteis como IHM’s (interface homem máquina) de saída.

Atualmente, existem diversos tipos de displays LCD, gráficos, e de caracteres, que

variam entre si basicamente em seu tamanho, e controlador. Displays gráficos, são

aqueles formados por diversos pontos dispostos separadamente, formando assim uma

grande matriz de pontos, conforme são configurados, para ficarem acessos ou

apagados, estes pontos podem formar diversos desenhos ou mesmo letras. Já os

displays de caracteres, são formados por diversas colunas onde podem, basicamente,

ser construídas apenas letras.

Apesar das diversas marcas e modelos de tipo de interface, todos seguem um

mesmo padrão de funcionamento e controle.

2.2.6 – TECLADO

Assim como existem os displays LCD para servirem como IHM’s de saída, os

teclados servem como IHM’s de entrada. Tem uma grande utilização em diversos

dispositivos e projetos, devido ao seu grande número de funcionalidades agregadas e

ao pequeno espaço ocupado, e também a sua grande facilidade de utilização.

Existem diversas formas de implementação de teclados. Eles podem ser

construídos mapeando-se um a um os botões do mesmo, como se o mesmo fosse um

grande conjunto de botoeiras funcionando separadamente, que tivessem um

controlador comum. Este é um método de implementação que funciona, porém

demanda que o controlador tenha um número de portas de entrada/saída igual ou

maior ao número de teclas para que funcione, o que torna sua utilização impraticável.

27

Outra forma de implementação, e que foi utilizada neste projeto, é o mapeamento

por linhas e colunas. Todas as linhas são ligadas a todas as colunas, de modo que

cada botão do teclado pertença a apenas uma linha e uma coluna. Feito isto, em

determinados intervalos de tempos, joga-se um sinal em uma coluna, e lêem-se todas

as linhas a qual aquela coluna está ligada, caso encontre-se este sinal em uma linha, o

botão correspondente àquela linha e coluna é o que foi pressionado, e isto é feito com

todas as colunas.

2.2.7 – COMUNICAÇÃO SERIAL

A comunicação serial baseia-se na troca de dados bit a bit através de um canal de

comunicação que liga o receptor e o transmissor, ou um barramento de computador.

Diferentemente da comunicação paralela onde a troca de dados ocorre

simultaneamente pelas diversas linhas de dados do canal de transmissão [12].

Este tipo de comunicação é utilizada na maior parte das comunicações de longas

e médias distâncias, devido ao menor custo e maior facilidade de implementação das

mesmas [12].

Existem diversas arquiteturas de comunicações seriais, por exemplo, RS-232, RS-

485, USB, FireWire, etc. Cada uma tem diversas definições de aspectos físicos, lógicos

e implementações.

Este padrão de comunicação pode ser encontrado em diversos equipamento tanto

de uso domésticos, quanto de uso industriais, portanto, também eliminando maiores

explicações do mesmo. Apenas são apresentadas as diferenças básicas que tem

relevância a este projeto.

Portanto, existem dois tipos básicos de comunicação serial, as síncronas e as

assíncronas. As síncronas fazem com que o transmissor e o receptor trabalhem com o

mesmo relógio, portanto o receptor deve ter uma linha de entrada para sincronização a

partir de um relógio externo vindo do transmissor. Já na conexão assíncrona, cada uma

das partes trabalha com um relógio próprio, porem respeitando a taxa de transmissão,

os tamanhos e padrões dos pacotes.

Nestas conexões, os pacotes têm um padrão a seguir. Os casos mais comuns são

8 bits de dados sem paridade e 8 bits de dados com 1 de paridade, com 1 bit de inicio e

1 ou 2 de parada.

28

3 - ESPECIFICAÇÃO

Na especificação, primeiramente é apresentada uma visão geral do sistema,

posteriormente, são detalhados os blocos que compõem o sistema, especificando cada

componente que foi utilizado, inclusive as ferramentas e dispositivos.

3.1 - COMPUTADOR DE MÃO:

Existe um software para utilização no computador de mão, e neste software é

onde ocorre toda a interação do usuário final com o sistema. O usuário realiza o

cadastro das informações de seus cartões de crédito, necessárias para a realização de

compras com os mesmos, como número do cartão e digito de segurança, nome

presente no cartão, data de validade, bandeira, instituição financeira emitente e nome

desejado para identificação do cadastrado.

Posteriormente ao chegar a um estabelecimento que disponha de aparelhos com

recepção infravermelha, o usuário seleciona um de seus cartões cadastrados, aponta o

infravermelho do computador de mão para o receptor da máquina de processamento

de compras por cartões de crédito, simulada pelo sistema auxiliar que será descrito

posteriormente, e autoriza o débito do valor da compra para àquele cartão.

O software dispõe ainda de uma interface para consulta, edição e eliminação dos

dados cadastrados, ou seja, para administração dos dados cadastrados. Esta interface

pode ser protegida por senha, para evitar que pessoas que estejam manuseando o

computador de mão possam ter acesso aos dados sigilosos do software. Esta proteção

por senha aos dados cadastrados, será considerada como módulo adicional ao projeto,

já que isto não impede, nem atrapalha os testes de validação do sistema.

Como os dados cadastrados são de extrema importância, é necessário que os

mesmos sejam protegidos contra acessos de forma maliciosa. Para promover esta

segurança, estes dados podem ser criptografados. Esta criptografia pode ser feita

através do próprio software, com uma técnica totalmente própria do sistema baseada

no DES, ou ainda através de um banco de dados próprio para este tipo de plataforma,

que faça o gerenciamento dos dados.

O tipo de criptografia que pode ser implementada nesta parte do projeto é a

criptografia simétrica utilizada para proteger os dados que foram cadastrados

localmente, conforme descrição anterior.

29

Como existem diversas partes do projeto que exigem a proteção dos dados

apenas em uma delas a mesma era de obrigatória presença, sendo que outras formas

de proteção de dados serão tratadas como módulos adicionais ao projeto.

Posteriormente serão apresentados os métodos de proteção de dados utilizados,

que ficaram restritos ao módulo do computador.

Para desenvolvimento de aplicativos para a plataforma PalmOS® existem diversas

ferramentas disponíveis, como CodeWarrior®, AppForge® e Palm OS Developer Suite®,

entre outras. Porém a escolhida foi a segunda opção, a ferramenta AppForge®, pelos

seguintes aspectos:

• Programação realizada com base na linguagem Visual Basic®, porém, com

recursos reduzidos da linguagem, e adaptações da mesma para a

plataforma Palm®;

• Pode-se desenvolver diretamente interfaces gráficas através do software,

sem a necessidade de softwares adicionais, ou implementações em linhas

de código para isto;

• É baseada na ferramenta Microsoft Visual Studio®. Esta funciona como um

plug-in desta outra ferramenta de desenvolvimento, sem necessidade de

outros plug-in’s para que possa funcionar corretamente.

Existem diversos ingot’s (pacotes de funções disponibilizados com a ferramenta).

Portanto diversas atividades realizadas pelo sistema foram diretamente implementadas

utilizando estes ingot’s, por exemplo, o acesso ao recurso de infravermelho e a

utilização do mesmo para conexão direta com o sistema auxiliar. Neste caso foi feito o

uso destes ingot’s para redução no tempo de desenvolvimento.

Existe ainda uma tabela gerada para armazenamento dos dados deste módulo,

porém, esta não pode ser considerada como método de segurança para proteção de

dados, pois a mesma não necessita de senha para ser acessada. Ou seja, é uma

tabela aberta.

Esta tabela foi gerada inicialmente na Microsoft Access®, e posteriormente

transformada em um .PDB (arquivo de banco de dados para a plataforma), através de

uma ferramenta disponibilizada junto com o AppForge®.

Para a realização do projeto o computador de mão Palm Zire 72s® foi o dispositivo

principal de base de teste e desenvolvimento. Isto por que o mesmo dispõe de todas as

funcionalidades necessárias para estes testes do sistema.

Um esboço de como funciona o módulo do computador de mão está na Figura 2.

30

Figura 2 - Diagrama de Blocos do Módulo do Computador de Mão

3.2 - SISTEMA AUXILIAR:

O sistema auxiliar é utilizado para fazer a validação do projeto como um todo, pois

o mesmo simula a máquina de processamento de compras através de cartões de

crédito, disponíveis em estabelecimentos que aceitam compras desta natureza.

Para o desenvolvimento do sistema auxiliar, foi utilizado o microprocessador

Rabbit 3000® [3] [9] [10], juntamente com seu kit de desenvolvimento, onde as funções

do processador já estão mapeadas de forma usual, como portas já configuradas e

disponibilizadas para uso em funções seriais, e PWM. Inclusive, uma das portas seriais

já está montada para utilização da função infravermelha, com o chip que realiza este

tipo de conexão e o receptor/transmissor da mesma.

Este sistema dispõe dos seguintes dispositivos:

• Receptor de infravermelho, que serve para receber os dados enviados pelo

software existente no computador de mão, e que são necessários para a

validação das compras realizadas;

• Memória flash, que serve para gravação de dados gerais, como os dados

do estabelecimento ao qual o sistema pertence, e para o qual devem ser

creditadas as compras daquele aparelho. O módulo RCM3000 utilizado tem

2 memórias flash. A primeira destinada ao armazenamento do código que

será executado, e a segunda para a criação do filesystem onde são

gravados os dados desejados;

• Conexão ethernet, que serve para comunicação com o computador que

simula o servidor de dados da operadora de cartões de crédito. Onde é

Software do trabalho

Busca de dados para realização de pagamentos

Envio de dados para realização de pagamentos

Cadastro de dados dos cartões de crédito

Banco de dados da plataforma

Palm

Conexão infravermelha

31

verificada a veracidade dos dados recebidos do computador de mão, e a

partir desta verificação que as compras são ou não aprovadas;

• Display de LCD, que é utilizado para exibição do estado atual do sistema e

também para interações com usuário operador deste sistema;

• Teclado, que serve para entrada de dados no sistema;

• Miniimpressora [8], que serve para impressão do comprovante de compra,

que será impresso em duas vias, como em qualquer compra feita com

cartões de crédito. Onde uma via fica com o cliente e outra com o

estabelecimento. O acesso a esta impressora pelo sistema auxiliar, será

feito através de uma comunicação serial direta.

O sistema auxiliar tem duas formas de operação, na primeira, modo normal, ele

funciona totalmente independente do computador, como um sistema completamente

embarcado, realizando compras de clientes. No segundo modo, manutenção, o técnico

responsável pelo equipamento pode realizar a manutenção do mesmo, caso estejam

sendo detectados problemas pelos operadores, ou o mesmo pode realizar a troca de

dados cadastrados do estabelecimento. Neste modo a manutenção é possível, pois o

sistema fica ligado diretamente ao computador de programação do mesmo, e ele

retorna mensagens mais completas do que esta ocorrendo internamente ao técnico.

Apenas o modo normal de operação era de implementação obrigatória, portanto, o

modo manutenção é considerado módulo adicional.

Para o sistema base de testes apenas o dado CNPJ do estabelecimento, esta

gravado na memória flash do sistema auxiliar, já que este dado é o principal dado do

estabelecimento no servidor de dados, e o que diferencia os estabelecimentos neste

servidor.

A operação do sistema auxiliar ocorre da seguinte maneira, quando um “cliente”

deseja realizar um pagamento com seu cartão de crédito, o operador do sistema

auxiliar liga o mesmo, entra com o valor da compra, e fica com o sistema parado, de

uma maneira que possa receber o sinal infravermelho, do computador de mão do

cliente. Assim que o cliente aponta seu computador de mão para o sistema e

estabelece a conexão infravermelha, caso ocorra erro no recebimento destes dados, o

sistema exibe a seguinte mensagem no display LCD “Novamente cartao cliente”.

Depois de terminada esta recepção de dados, é finalizada a conexão infravermelha.

Então o sistema muda a mensagem do display para “Conectando...”, e neste passo o

mesmo começa a trocar informações com o computador pela conexão ethernet para

validação dos dados recebidos. O sistema envia para o computador os dados

32

recebidos, e o número de cadastro do estabelecimento para o qual será feito o crédito

da compra, e fica esperando a resposta do mesmo, que deve aprovar ou não a compra

depois de consultar e verificar se os dados recebidos são válidos, e se a compra é

permitida (se o cartão e o estabelecimento existem, se o cartão não está bloqueado, se

tem limite disponível suficiente para a realização da compra, etc.).

Depois de recebida a resposta do computador, o sistema deverá exibir a

mensagem de finalização da compra no display. Caso esta tenha sido aprovada, será

exibida a mensagem “Imprimindo...”, e impresso o comprovante de compra através da

impressora do sistema. Caso a compra venha a ser reprovada, o sistema deve exibir a

mensagem “Erro XXXXXXXXXXXX”, onde XXXXXXXXXXXX é o problema ocorrido,

que veio a impedir a realização da compra, este erro é informado pelo computador, e

apenas exibido no sistema auxiliar.

No caso de aprovação da compra são impressos no comprovante dados que

podem identificar e diferenciar um comprovante de outro como o CNPJ do

estabelecimento, o valor, o código da operação realizada junto ao servidor de dados, o

número do cartão de credito utilizado, e ainda um local para assinatura do cliente.

Como se pode notar, o sistema apenas dispensará a posse real do cartão, que

estará cadastrado no computador de mão, porém ainda será necessária a assinatura

do cliente no comprovante, mostrando que o mesmo está ciente e de acordo com o

débito realizado em seu cartão.

O microprocessador Rabbit 3000® utiliza programação na linguagem C, através de

sua ferramenta o Dynamic C® [3], além do suporte às funções do RCM2000.

O Dynamic C® é uma ferramenta desenvolvida para programação de sistemas

embarcados, e possui algumas características especiais para este tipo de

desenvolvimento como debug interativo em tempo real.

Outro detalhe importante é que não foram utilizados todos os dados existentes

nos cadastros para a validação das compras. Este procedimento foi adotado apenas

para agilizar o desenvolvimento do projeto, pois para que um maior número de dados

fossem checados, as mudanças seriam mínimas.

Atualmente o computador de mão envia pela conexão infravermelha apenas o

número do cartão de crédito escolhido, juntamente com seu dígito de segurança. O

sistema auxiliar pega estes dados e junta ao CNPJ do estabelecimento que está

gravado em sua memória flash, passando este pacote pela conexão ethernet.

Para que a mudança ocorresse, o computador de mão deveria enviar um maior

número de dados pela conexão infravermelha, o que não seria problema, pois seu

33

cadastro interno já dispõe de mais dados do cartão. O sistema auxiliar deveria ter um

maior número de dados cadastrados em sua memória flash para que estes fossem

enviados para o computador, que por sua vez apenas necessitaria de um maior

número de consultas ao banco de dados para validar ou não a compra.

O diagrama de blocos exibido na Figura 3, mostra todos os blocos citados, além

de uma breve noção de interação entre os mesmos.

Figura 3 - Diagrama de Blocos do Sistema Auxiliar

3.3 - COMPUTADOR:

Existe um software rodando em um computador, que serve para simular o servidor

de dados da operadora de cartões de crédito.

Este software fica esperando a solicitação de validação de dados do sistema

auxiliar. Quando esta solicitação chega, o software pega estes dados e faz a

verificação da seguinte maneira, do pacote recebido pega-se o número do cartão de

crédito e outros dados recebidos, e realiza a consulta ao banco de dados local para

verificar se os dados estão corretos. Caso estes estejam de acordo, o software credita

o valor recebido para a “conta” cadastrada como do estabelecimento, e debita o valor

da “conta” do usuário.

Dados a serem validados no servidor

Dados fornecidos pelo computador de mão

Gravação de dados gerais

Exibição de status do sistema

Entrada de dados no sistema auxiliar

Impressão do comprovante de compra

Conexão ethernet

Conexão infravermelha

Memória

flash Display LCD

Teclado

Impressora

Kit de desenvolvimento do Rabbit

34

Logicamente, antes do sistema ser colocado no ar, devem ser cadastrados os

dados dos clientes e dos estabelecimentos. Nas contas dos clientes devem ser

cadastrados os dados que serão posteriormente consultados para realização dos

débitos, além de dados adicionais, como os de qualquer cadastro de clientes. Ainda

existe um campo que identificará o limite de crédito do cartão do usuário, e é deste

limite que são abatidos os valores das compras do cliente, portanto o cliente é limitado

a um valor máximo de gastos por fatura. No cadastro de estabelecimentos, são

cadastrados dados como, o CNPJ, endereço, telefone, e etc. A distinção do

estabelecimento para o qual deverá ser feito o crédito da compra será através do

número do CNPJ passado durante a troca de dados do sistema auxiliar e o

computador.

O computador é conectado ao sistema auxiliar por uma conexão ethernet comum,

ponto-a-ponto, trabalhando com o protocolo TCP/IP. O protótipo já é configurado

internamente com um cabeamento CrossOver, portanto o cabo de rede utilizado para

conexão do sistema auxiliar com o computador deve ser um cabo comum, com ligação

igual nas duas pontas.

Para o desenvolvimento do software do computador a linguagem escolhida foi

novamente a linguagem C, sendo utilizada a ferramenta Borland Builder C++®, devido

ao maior número de funcionalidades existentes e à maior facilidade no

desenvolvimento de aplicativos. O banco de dados utilizado para armazenamento dos

dados cadastrados para consultas do sistema foi o MySQL [6], que é um banco de

dados relacional, tem suporte a comandos SQL e é livre. Portanto, atende todas as

necessidades técnicas e sem custos adicionais ao trabalho.

Na Figura 4 pode-se ter uma noção da descrição do sistema.

Figura 4 - Diagrama de Blocos do Computador

Software do computador

Recebimento dos dados do Rabbit

Verificação dos dados recebidos com os dados cadastrados

Comunicação ethernet

Banco de dados MySQL

35

4 - PROJETO

Serão detalhados requisitos mínimos e desejados para o funcionamento do

projeto. Posteriormente, serão apresentados os módulos do sistema mais

detalhadamente, definindo-os segundo métodos formais.

4.1 – REQUISITOS MÍNIMOS PARA O FUNCIONAMENTO DO

PROJETO

Para o funcionamento inicial do sistema todos os módulos deverão encontrar-se

em suas versões beta. Ou seja para:

• Computador de mão: uma interface inicial onde apenas o botão de enviar

informações através da conexão infravermelha deve estar presente, os

dados devem ser fixos, e pré-determinados;

• Sistema Auxiliar: este sistema terá sua primeira versão, apenas

recebendo as informações da conexão infravermelha, juntando dados

quaisquer gravados em seu código fonte e passando este adiante pela

conexão ethernet;

• Computador: o software deste sistema deverá poder receber os dados

vindos pela conexão ethernet, fazer uma verificação básica com dados

contidos em seu código fonte, e enviar uma resposta pela mesma conexão

ethernet.

Tendo estes elementos básicos em cada um dos módulos, pode-se considerar

que o sistema tem o mínimo necessário para seu funcionamento mais básico.

4.2 – REQUISITOS DESEJADOS PARA O FUNCIONAMENTO DO

PROJETO

Este é o funcionamento onde os módulos já conseguem operar de forma

autônoma, porém sem os módulos adicionais. O próximo nível de aperfeiçoamento do

projeto já seria o modo completo, com todos os módulo implementados da forma mais

completa possível, inclusive com os módulos adicionais. Ou seja para:

36

• Computador de mão: interfaces de cadastro e utilização do software,

desenvolvidas e com os dados sendo gravados em uma base de dados.

Cadastros podendo serem modificados e eliminados;

• Sistema Auxiliar: sistema conseguindo gravar dados em memória flash,

realizado as conexões infravermelha e ethernet diretamente. Recebendo a

resposta do computador e podendo interpretá-la. Interações realizadas

através do teclado e do display LCD e com impressão do comprovante na

miniimpressora;

• Computador: deverá existir um banco de dados implementado, onde serão

gravados os dados, e o software realizar a consulta para validação dos

dados. Deve poder receber sozinho os dados da conexão ethernet e

realizar a verificação dos mesmos.

Tendo estes elementos em cada um dos módulos, pode-se considerar que o

sistema tem o funcionamento desejável de funcionamento para o período restrito de

tempo disponível para realização do mesmo.

4.3 - HARDWARE

Todo o hardware utilizado no projeto na parte do computador de mão e do

computador, já está pronto, portanto não existem esquemáticos para serem

apresentados.

Para o sistema auxiliar, os esquemáticos dos circuitos que estão sendo

manipulados do kit de desenvolvimento do Rabbit® [4] [5], fornecidos pela Rabbit

Semiconductor, serão apresentados posteriormente na secção “apêndice”.

Nesta secção são apresentados os esquemáticos do Port F do processador com

os elementos necessários para a conexão infravermelha, a conexão ethernet, desde o

processador até o conector passando pelo CI responsável pelo gerenciamento desta

conexão.

Já o esquemático da interligação do kit de desenvolvimento do Rabbit®, através

dos Ports B e F, com o teclado e o display LCD, e o desenvolvimento do próprio

teclado utilizado estão representados na Figura 5.

37

3..6

E

10K

PORT F

0

234567

1

VC

C

DISPLAY LCD

4

5

89

14

6

10111213

3

17

2

EN

R/W

D6D5

D0

RS

D4D3D2D1

VO

GNDD7

VCC

2

L

54

Teclado

9

PORT B

0

234567

1

8

2,2K

1

Rabbit

2,2K

6

0

74LS2442468

1

18161412

11131517

9753

19

A1A2A3A4

1OE

Y1Y2Y3Y4

A5A6A7A8

Y5Y6Y7Y8

2OE

0..2

0..7

7

3

2,2K

2,2K

Figura 5 - Esquemático de interligação Rabbit/teclado e display LCD

4.4 - SOFTWARE

Para os módulos do sistema auxiliar e do computador, foi utilizada a linguagem de

programação C, já para o módulo do computador de mão, foi utilizada a linguagem

Visual Basic®. Portanto todos os programas são estruturados. Devida a utilização deste

tipo de programação serão apresentados basicamente 3 componentes para cada

módulo, a interface (exceto para o sistema auxiliar, onde não existe este recuso), a

lógica do programa e dos dados.

A lógica dos programas serão apresentadas através de Diagramas de Fluxo de

Dados (DFD). O DFD é uma técnica gráfica que descreve o fluxo de informação e

transformações que são aplicadas à medida que os dados se movimentam da entrada

para a saída. Ou seja a informação é modificada a partir de uma série de

transformações que esta sofre ao percorrer o software [11].

A legenda deste tipo de diagrama é apresentada na Figura 6.

38

��������

������ ������

��� �� ����

������ ��

�����

�� ������� �� ��������� �� ��������� ��� ����� ���� ���

���� �� ����� �������� �����

�� ������������ �� ������� �� ��� ����� ����� ��� ���� ��

����� �������� �����

! ��� ���� � ������ �� ����� �� ����� �����

�� �������� �� ����� ��� ��� ����"������ ���� ����� ������

�� �� �� ��� ���������# ���� ��� �� ������ ����� �� $�����%

�� �� �������� ����� �� $���� �� ����� ��������� �����

Figura 6 - Legenda do DFD

Antes do DFD propriamente dito, é apresentada uma narrativa do processamento

em questão. Este ilustra o que efetivamente o processamento realiza, e dá uma visão

geral do mesmo. Após esta narrativa, o DFD é apresentado em dois níveis.

Primeiramente o nível 0, também conhecido com diagrama de contexto, que apresenta

uma visão macro do processamento. E logo após o nível 1, onde este DFD é

expandido, para apresentar uma idéia mais específica de cada parte do

processamento.

A lógica dos dados será representada graficamente pelo diagrama relacional do

banco de dados. Apenas no módulo do computador foi implementado um banco de

dados relacional, nos outros módulos, uma tabela apenas já satisfaz a necessidade de

gravação de dados, haja vista que estes dados não estão interligados com outros.

4.4.1 - COMPUTADOR DE MÃO

Interface:

Três interfaces fazem parte deste módulo, a interface para cadastro dos cartões

de crédito do cliente, onde o mesmo deve realizar o cadastro de todos os dados de

seus cartões que podem ser utilizados posteriormente para a realização das compras.

Estes dados são, a instituição financeira, a bandeira, a data de validade, o nome

impresso no cartão, o número do cartão, o dígito de segurança do cartão, a descrição

39

do cartão (campo pelo qual o cliente distinguirá seus cartões cadastrados) e um campo

observações, onde o podem ser armazenadas qualquer informação desejada, como

por exemplo, o número de contato com a operadora daquele cartão.

A interface para edição e eliminação de determinado cadastro, onde o usuário

pode ajustar os dados de um cadastro incorreto ou apagar àqueles que não deseja

mais. E a interface para utilização destes cartões para pagamento de contas, que é

muito básico, intuitivo e de fácil manuseio. Nesta última, existe apenas um combo box

onde o usuário seleciona o cartão que deseja utilizar, neste combo aparecem os

cartões cadastrados, identificados com os nomes cadastrados no campo “Descrição”

da interface de cadastro. Depois que o usuário seleciona o cartão desejado para a

compra no combo, basta que o mesmo aponte a Palm® para o sistema auxiliar e

pressione o botão “Utilizar - Pagar”. Estas interfaces podem ser observadas nas

Figuras 7, 8 e 9 respectivamente.

Figura 7 - Interface para cadastro de cartões

Figura 8 - Interface para edição e eliminação de cadastro

40

Figura 9 - Interface principal para escolha de cartão para pagamento

Lógica do Programa:

O software cartão de crédito eletrônico necessita que o usuário cadastre os dados

de seus cartões que deseja utilizar posteriormente.

Quando o usuário está em determinado estabelecimento e deseja utilizar o

software para pagar determinada conta, ele inicia o software, seleciona seu cartão

desejado através do combo box existente na interface de pagamento e envia os dados

deste cartão para o pagamento através da porta infravermelha. O software se

encarrega de encaminhar os dados necessários para a realização do pagamento.

Nas Figuras 10 e 11 estão representados os DFD’s de nível 0 e 1 respectivamente

desde módulo do sistema.

41

Figura 10 - DFD nível 0 do computador de mão

Figura 11 - DFD nível 1 do computador de mão

Conforme já foi informado anteriormente, a questão da interface de senha neste

módulo é considerada módulo adicional, porém já está contida nos diagramas para ser

analisada.

Lógica dos Dados:

No computador de mão existem poucos dados cadastrados, e os mesmos não

fazem ligações com outros dados, portanto, a lógica de dados deste modulo traz

apenas uma tabela como representação. Esta serve como um repositório de dados

42

geral, que não sofre alterações, com a utilização do sistema, apenas por vontade

própria do usuário de atualização, ou eliminação dos dados já cadastrados.

A Figura 12 traz a representação desta tabela de dados, que está representada no

DFD do módulo como o repositório de dados “Informações de cartões”.

Figura 12 - Repositório de dados de cartões no computador de mão

4.4.2 - SISTEMA AUXILIAR

Lógica do Programa:

No sistema auxiliar o segundo modo de operação, que constava como módulo

adicional, foi desenvolvido. Portanto, o mesmo pode entrar em funcionamento de duas

formas, a primeira é a do modo de operação normal, onde o técnico responsável pela

instalação do mesmo grava os dados do estabelecimento no modulo, e o coloca para

rodar com os dados cadastrados. Neste modo de operação, o sistema funciona

completamente de forma embarcada, recebendo dados da porta infravermelha,

conectando com o servidor, recebendo dados do teclado, exibindo as mensagens no

display LCD e imprimindo na miniimpressora.

O outro modo de operação desenvolvido foi o modo para manutenção do sistema

auxiliar. Neste modo, o técnico responsável pelo equipamento pode chegar ao

estabelecimento, ligar o cabo de programação do Rabbit® e rodar o programa de

manutenção do módulo. Neste programa o técnico pode trocar os dados cadastrados

do estabelecimento, ou rodar em modo normal, porém acessando o módulo em tempo

real e obtendo respostas mais completas sobre o que esta acontecendo com sistema,

já que estas respostas são passadas para o monitor diretamente.

43

Logo após o técnico realizar sua manutenção no equipamento e ajustar um

possível problema, o mesmo deve reprogramar o sistema para que este retorne ao

modo de operação normal. O sistema auxiliar necessita que o técnico cadastre os

dados do estabelecimento na qual ele está instalado.

A operação do sistema auxiliar funciona da seguinte maneira, quando um cliente

deseja realizar um pagamento, o operador deve interagir com o sistema através do

display LCD conforme os dados solicitados. Portanto, ele pede para realizar uma nova

compra, pressionando o botão 1, após isto lhe é solicitado o valor da operação, através

da mudança da mensagem do display LCD para “Valor: 0,00”. Após a entrada do valor

pelo teclado, o sistema espera receber através da porta infravermelha, os dados do

cartão de crédito para realizar este pagamento. A mensagem exibida neste momento

pelo display LCD é a seguinte, “Solicitar dados cartão via IrDA”. Caso ocorra algum

problema durante a transmissão e os dados recebidos não estejam no formato

“c1111111111111111s111”, que é o formato esperado do pacote, a mensagem do

display LCD muda para “Novamente cartão cliente” e o cliente precisa novamente

enviar os dados do cartão.

Sobre o formato do pacote, a letra “c” que aparece no início, significa que a partir

daquela letra até a letra “s”, estará o número do cartão de crédito, e os números após a

letra “s” indicarão o dígito de segurança do cartão.

Tendo os dados do estabelecimento (que estão na memória), do cartão e da conta

a ser paga, o sistema empacota eles e envia para o servidor de dados que faz a

validação desta compra. Durante esta operação o display LCD exibe a seguinte

mensagem “Conectando...”. O novo pacote formado tem o seguinte formato,

“dc1111111111111111s111e11111111111111”, onde a letra “d” indica que a operação

é de débito para o cliente, a partir da letra “c” até a letra “e” são os mesmos dados

recebidos do computador de mão, e os números localizados após a letra “e” indicam o

CNPJ do estabelecimento.

Caso a compra seja aceita, o sistema realiza a impressão do comprovante.

Alterando a mensagem do display LCD para “Imprimindo...”. Caso a compra não seja

aprovada, o sistema apenas apresenta no display LCD a mensagem “Erro XXXXXX”,

onde XXXXXX indica o erro que ocorreu e impossibilitou a realização da operação.

Esta mensagem vem diretamente do computador e é apenas mostrada pelo sistema

auxiliar.

Nas Figuras 13 e 14 estão representados os DFD’s de nível 0 e 1 do sistema

auxiliar.

44

���� ����&�����'� (���� ������

)������

*������ �'����

*������ �'����

����� �� ������� �

�� ���$��������

+������ �� ������������

�� ������

����� �� �����

����������

�����, -*�

����� �� ������&���

����� ��

������ ����

������������

����� �� ������ �

���� �� �����

Figura 13 - DFD nível 0 do sistema auxiliar

Figura 14 - DFD nível 1 do sistema auxiliar

45

4.4.3 - COMPUTADOR

Interface:

Para a operação deste módulo, foram desenvolvidas 6 interfaces. 3 delas são de

cadastro de dados manualmente, e portanto requerem interação direta do operador.

Estas interfaces de cadastro são as de cadastro de clientes, cadastro de cartões dos

clientes, e cadastro de estabelecimentos. A navegação pelos registros cadastrados, a

inclusão e a eliminação de registros, deve ser realizada através da barra de

navegação.

Outras duas interfaces são para visualização de faturas, tanto as faturas dos

cartões dos clientes, quanto às faturas de pagamento para os estabelecimentos. A

interface de faturas dos cartões pode ser aberta a partir da tela de visualização do

cartão desejado, e a interface de faturas dos estabelecimentos, a partir da tela de

visualização do estabelecimento desejado.

A outra interface será para observação das operações realizadas por este módulo.

Existem três filtros possíveis dentre os inúmeros registros mostrados. O primeiro filtra

pelo número do cartão desejado, o segundo pelo número do cliente desejado, e o

terceiro pelo número do estabelecimento desejado. Também qualquer combinação

destes filtros pode ser utilizada.

A Figura 15 mostra a interface de cadastro de dados do cliente, se a partir desta

interface clica-se no botão “Cartões”, chega-se a interface mostrada na Figura 16.

Clicando-se nesta interface no botão “Faturas”, chega-se a interface mostrada na

Figura 17, onde estão as faturas daquele cartão.

A Figura 18 mostra a interface de cadastro de dados dos estabelecimentos, se a

partir desta interface clica-se no botão “Pagamentos”, chega-se a interface mostrada na

Figura 19, que serve para visualização das faturas de pagamentos do estabelecimento

selecionado.

Por fim a Figura 20 mostra a interface de consulta de operações realizadas pelo

módulo.

46

Figura 15 - Interface para cadastro de clientes

Figura 16 - Interface para cadastro cartões dos clientes

47

Figura 17 - Interface para consulta de faturas dos cartões

Figura 18 - Interface para cadastro de estabelecimentos

48

Figura 19 - Interface para consulta de pagamentos dos estabelecimentos

Figura 20 - Interface para consulta de operações realizadas

49

Lógica do Programa:

O software do servidor de dados necessita que um operador cadastre os dados

dos clientes e estabelecimentos, para posteriormente fazer os créditos/débitos das

compras.

Pela conexão ethernet chega o pacote de dados (conforme formato descrito no

módulo anterior) da compra para serem processados. Este processamento ocorre da

seguinte maneira, primeiramente é verificado se o número do cartão recebido existe,

em caso afirmativo, verifica-se se o mesmo encontra-se desbloqueado. Em seguida é

verificado se o estabelecimento existe. Depois checa-se se o dígito de segurança está

correto. Para finalizar, verifica-se se na fatura do cliente que está aberta, o mesmo

ainda tem um valor igual ou superior ao valor da compra como limite disponível. Se

todas as verificações forem positivas, a operação é tida como aprovada, é gerado um

número de operação para a mesma e o valor é creditado na fatura aberta do

estabelecimento e debitado na fatura aberta do cliente.

O número da operação junto a uma mensagem de confirmação é enviado para o

sistema auxiliar pela conexão ethernet.

Caso ocorra algum erro nas verificações, o processamento é interrompido e uma

mensagem de erro relacionada a etapa de onde ocorreu o erro é retornada pela

conexão ethernet. Por exemplo, se na verificação do estabelecimento, o número

identificador recebido não constar no banco de dados, a mensagem “Estabelecimento

inexistente” é retornada para sistema auxiliar.

Ainda é gerado um novo número de operação e registrado o erro ocorrido no

banco de dados, juntamente com o pacote recebido. Este registro é gravado como se

fosse uma operação aprovada, porém, sem estar ligado a nenhuma fatura, e com o

campo “Erro” preenchido.

Existe ainda um outro processamento realizado pelo software chamado de

“Fechamento”, que ocorre todos os dias entre as 23:30 e 24:00 horas. Este

processamento tem as funções de gerenciamento de faturas e cartões, e ocorre da

seguinte maneira, primeiramente são fechadas as faturas que tem sua data de

fechamento naquele dia e abertas novas faturas para estes cartões. Depois são

abertas faturas para os cartões que foram desbloqueados no decorrer daquele dia, e a

partir deste momento o cliente pode utilizar seu cartão. Logo após são fechadas as

faturas que estavam abertas para cartões que tiveram seu bloqueio solicitado no

decorrer do dia.

50

Caso o fechamento esteja ocorrendo no dia 1, todas as faturas de pagamento de

estabelecimentos são fechadas com data de vencimento no dia 5. Para finalizar são

abertas novas faturas de pagamentos de estabelecimentos para àqueles cadastrados

no decorrer do dia, e se for dia 1, para os que acabaram de ter suas faturas fechadas.

Nas Figuras 21 e 22 estão representados os DFD’s de nível 0 e 1 deste módulo

do sistema.

Figura 21 - DFD nível 0 do computador

Figura 22 - DFD nível 1 do computador

Lógica dos Dados:

A Figura 23 representa o diagrama relacional do banco de dados do servidor de

dados. A ponta da seta indica a tabela que pode ter apenas um registro relacionado a

muitos da tabela de onde nasce a seta. Como dicionário de dados para explicação

deste diagrama, temos duas tabelas de cadastro básicas, uma para os dados dos

clientes e outra para os dados dos estabelecimentos. Através dos clientes podem

51

existir diversos cartões, que podem se abrir ainda em diversas faturas para cada um

destes cartões. Já pelo lado dos estabelecimentos, cada um deles podem ter diversas

faturas de pagamento, na tabela Pgto_Estab. Porém, apenas uma fatura pode estar

aberta para cada estabelecimento e para cada cartão.

Para juntar todas as operações, ligando os estabelecimentos, e os clientes nas

operações realizadas pelo sistema, existe a tabela débitos_creditos, e nesta tabela são

registrados todas as transações realizadas pelo sistema, inclusive as mal sucedidas.

Portanto, pode-se saber quem comprou que e aonde.

O campo nr_credeb, é o número da operação que será enviado junto à reposta

para o sistema auxiliar.

Figura 23 - Modelo relacional do banco de dados do computador

52

5 - TESTES DE VALIDAÇÃO DO PROJETO

Os testes de validação do projeto foram realizados módulo a módulo durante o

desenvolvimento do mesmo. Portanto, primeiramente foi testada a interface do servidor

de dados para verificar se o software atendia as necessidades dos operadores.

Também foi testado se o mesmo realizava as operações necessárias durante a

simulação de recebimento de dados pela conexão ethernet. Este segundo teste foi

realizado através de uma conexão local, porém já com uso de socket para o mesmo.

Posteriormente, foi desenvolvido o elementar do sistema auxiliar para utilização

do projeto, portanto foram testadas as conexões ethernet e IrDA. A conexão com o

computador já pode ser validada, pois o mesmo já estava pronto, e a conexão IrDA foi

testada diretamente com outro kit de desenvolvimento do Rabbit. Após o término

destas funções foram desenvolvidos e testados os componentes ligados ao módulo

um-a-um e refinado o funcionamento dos mesmos, pois cada um apresentou diversos

problemas inesperados.

Para o computador de mão o desenvolvimento foi realizado de forma parecida

com o do servidor, porém, com menor complexidade. As interfaces foram

desenvolvidas e testadas primeiro, e posteriormente a conexão com o sistema auxiliar

foi finalizada, já que o mesmo estava pronto. Neste momento que foram descobertas

as dificuldades neste tipo de conexão, pois os protocolos de conexão que já existem

são proprietários e, portanto foi necessário buscar uma forma de troca de dados

própria, pois um custo desta natureza inviabilizaria o projeto. Já para a comercialização

do sistema, este tipo de protocolo é uma boa alternativa.

Para fechamento dos testes de validação do projeto foi realizada a simulação de

utilização real do mesmo, portanto todos os dados que servem como requisitos para o

funcionamento foram cadastrados previamente. Quando esta tarefa estava concluída e,

portanto, o sistema estava em condições de assumir sua configuração inicial para

funcionamento no modo automático, foram realizadas “compras” com o computador de

mão através do sistema auxiliar. Depois foi verificado, através de consultas ao banco

de dados do computador, se todas as modificações necessárias haviam sido

realizadas, créditos, débitos, etc.

53

6 – RESULTADOS

Serão apresentados a seguir os resultados obtidos em cada um dos módulos do

sistema.

Na figura 24 tem-se uma visão geral de como o sistema foi montado, e portanto,

está em seu estado inicial para utilização em modo normal.

Figura 24 - Visão geral do sistema montado

6.1 – COMPUTADOR DE MÃO

Neste módulo foi desenvolvido um software conforme especificado na seção

“Especificação” deste documento, porém, sem os módulos adicionais mencionados. O

armazenamento dos dados é feito através de uma tabela que foi inicialmente gerada no

Microsoft Access®, e posteriormente, transformada para uma tabela que poderia ser

lida na plataforma Palm®, com um conversor que está disponível juntamente com o

54

software AppForge®. Software este que foi o utilizado para o desenvolvimento deste

sistema.

Nas Figuras 25, 26 e 27, pode-se observar o software desenvolvido rodando na

plataforma especificada, que tem o recurso infravermelho para conexão com o sistema

auxiliar. Cada figura traz uma das interfaces presentes no programa, em execução real.

Respectivamente, interface inicial/principal, interface para cadastro de novos registros,

e interface de edição e eliminação de registros já cadastrados.

Portanto, o computador de mão teve seu desenvolvimento completo, conforme

especificações.

Figura 25 - Interface principal do computador de mão

55

Figura 26 - Interface de cadastro de cartões do computador de mão

Figura 27 - Interface para edição e eliminação de registros do computador de mão

56

6.2 – SISTEMA AUXILIAR

Para o sistema auxiliar, o necessário para o teste de validação do sistema está

presente. Com o adicional de um módulo, que é o segundo modo de execução do

mesmo. Para futuras versões deste módulo, estão previstas as inclusões de mais

dados do estabelecimento em sua memória flash, para que os comprovantes

impressos pelo módulo tenham maior número de informações, e se assemelhem mais

as comprovantes existentes.

Portanto, neste módulo também o desenvolvimento do mesmo foi completo, e

ainda com um módulo adicional.

Nas Figuras 28, 29, 30 e 31 pode-se observar, respectivamente, visão geral do

sistema auxiliar inclusive com a miniimpressora, protótipo do sistema auxiliar, vista

frontal do protótipo, onde pode-se observar o receptor infravermelho, e vista traseira do

protótipo, onde pode-se observar os conectores de energia, rede (que deve ser um

cabo crossover), impressora, e um conector serial para programação e manutenção do

módulo. Maiores informações sobre o cabo de programação do kit de desenvolvimento

do Rabbit®, consultar a seção apêndice.

Nas Figuras 32 e 33 pode-se observar a saída do sistema auxiliar, ou seja, o

comprovante de impressão. A primeira com o comprovante ainda miniimpressora e a

segunda somente do comprovante.

57

Figura 28 - Visão geral do sistema auxiliar

Figura 29 - Protótipo do sistema auxiliar

58

Figura 30 - Vista frontal do protótipo

Figura 31 - Vista traseira do protótipo

59

Figura 32 - Comprovante de compra ainda na miniimpressora

Figura 33 - Comprovante impresso de pagamento

60

6.3 – COMPUTADOR

Neste módulo, foi seguido todas as informações e funções necessárias para a

validação dos dados e do sistema como um todo. Como pressuposto anteriormente,

neste modulo que temos as implementações de segurança que eram obrigatórias para

a validação do sistema. Primeiramente no armazenamento dos dados, feito pelo

MySQL, que como especificado anteriormente, tem a função de guardar sigilosamente

os dados internos a este. E ainda, na comunicação dos dados entre o sistema auxiliar e

o computador, foi realizada a implementação com uso de socket’s de conexão. Estes

elementos também garantem a segurança dos dados comunicados, pois os mesmos

geram canais exclusivos de comunicação, e enquanto estes estão abertos, apenas os

dois lados da conexão conseguem ouvir o que está acontecendo.

Portanto, os elementos especificados como partes deste módulo foram

implementados, e a segurança esta garantida em pelo menos duas partes do sistema,

se não por instrumentos próprios, desenvolvidos diretamente, por instrumentos já

existentes e vastamente utilizados em diversas aplicações.

Na Figura 34 podemos observar a interface de exibição de operações realizadas,

onde pode-se comprovar a veracidade das operações realizadas, e portanto comprovar

o real funcionamento do sistema como um todo.

Figura 34 - Interface de histórico de operações

61

7 - CONCLUSÕES

Conforme pôde-se observar, os testes de validação do sistema foram realizados

com êxito, e todos os módulos tiveram seu desenvolvimento conforme descritos na

“Especificação”, portanto o funcionamento desejado do sistema foi alcançado e com

superação.

Portanto, a conclusão obtida com este trabalho é que a virtualização, ou seja, a

idéia do Cartão de Crédito Eletrônico pode ser realizada na prática. Basta que um

dispositivo de recepção de dados via conexão infravermelha seja adicionado as atuais

máquinas de compras via cartão de crédito, e o software de utilização na plataforma

Palm®, ou outra que tenha acesso a conexão infravermelha, seja desenvolvido porém,

é necessário que uma maior segurança dos dados, tanto no armazenamento destes,

quanto na passagem pela conexão infravermelha, seja implementada, através de

técnicas de criptografia, e bancos de dados seguros por exemplo, ou seja, para que o

sistema possa se tornar realmente comercial e utilizável, os módulos adicionais do

computador de mão devem ser implementados. E este seria justamente o próximo

passo do sistema, a implementação de maior segurança no sistema.

Esta maior segurança deve ser priorizada no computador de mão, pois os restos

dos módulos já existem e têm uma vasta história de desenvolvimento, portanto, nestes

módulos as empresas de cartões de crédito já detêm o conhecimento de segurança.

Além deste próximo passo que pode ser aplicado diretamente ao sistema

desenvolvido neste projeto, novas versões do sistema seriam o intuito da continuação

da idéia do Cartão Eletrônico. Portanto, novas plataformas deveriam ser exploradas,

por exemplo, PocketPC®, e mais a frente, o sistema poderia ser baseado na linguagem

Java, e implementado para celulares e outros equipamentos que suportem esta

linguagem.

Já no quesito conexão, o próximo passo para o sistema seria a utilização também

da tecnologia Bluetooth®, que está cada vez mais presente em sistema pessoais e

celulares, e tem um ótimo desempenho em transmissão de dados de curtas distâncias.

62

8 - CRONOGRAMA DE DESENVOLVIMENTO

Data Atividade a ser desenvolvida 28/2/2005 Entrega das propostas de projeto para avaliação do colegiado

28/3/2005 Entrega das especificações técnicas do projeto aprovado 7/3/2005 Levantamento de ferramentas possíveis para implementações na

plataforma Palm®

14/3/2005 Levantamento das especificações possibilidades de utilização do Rabbit®

21/3/2005 Levantamento das ferramentas necessárias para desenvolvimento do software que deverá rodar no computador

2/5/2005 Entrega do projeto (monografia) e do resumo/abstract do artigo

para congresso 10/10/2005 Apresentação do projeto implementado e qualificação para a fase

final 10/5/2005 Implementação do software para Palm® 10/7/2005 Implementação do sistema auxiliar 10/8/2005 Implementação do software do computador 10/9/2005 Junção de todos os módulos 9/10/2005 Ajustes para apresentação

24/10/2005 Segunda apresentação do projeto implementado, para os que não

o fizeram no dia 10/10/05, com decréscimo de 30% da nota, bem como a qualificação para a fase final.

7/11/2005 Entrega da documentação completa em espiral para a banca

examinadora, em 3 vias, contendo a monografia, manual técnico, manual do usuário e artigo científico.

Defesa formal dos projetos, com apresentação oral para a banca examinadora. Manhã – dois dias com duas seções paralelas;

21 e 28/11/2005

Noite - dois dias com três seções paralelas.

Entrega da documentação completa, revisada e corrigida, encadernada no padrão da biblioteca (capa dura) em duas vias, contendo a monografia, manual técnico, manual do usuário e artigo científico;

12/12/2005

Entrega do CD contendo, no formato WEB, todo o conteúdo dos manuais.

63

9 - ESTUDO DE VIABILIDADE TÉCNICO-ECONÔMICA

Este breve estudo de viabilidade de custos leva em consideração apenas os

componentes de maior custo que foram utilizados no desenvolvimento do projeto.

Porém para a comercialização do mesmo estes custos seriam diferentes. Neste caso

não foi possível a estimativa de custos, pois seria necessário um levantamento de

componentes e ajustes que deveriam ser feitos em terminais de compras existentes no

mercado, e infelizmente o acesso a este tipo de equipamento não é fácil.

Outro detalhe importante é que o custo do computador de mão também não existe

na comercialização, pois ele é do cliente que, com base no público alvo, fica obrigado a

obter o seu.

Portanto, para a comercialização os custos ficariam baseados em horas de

trabalho e componentes necessários para adaptação dos terminais de compras atuais

para que os mesmos tenham um receptor infravermelho. Porém, como este estudo tem

por objetivo demonstrar os custos envolvidos com o desenvolvimento do projeto

conforme o mesmo foi apresentado, a Tabela 1 mostra esta estimativa de custos.

Tabela 1 – Estimativa de custos

Recurso Quantidade Custo Unit. (R$) Custo (R$)

Microprocessador

Rabbit RCM 3000® 1 240,00 240,00

Kit de

desenvolvimento 1 1.000,00 1.000,00

Palm Zire 72s® 1 899,00 899,00

Horas de trabalho 660 13,00 8.580,00

TOTAL 10.719,00

64

10 – APÊNDICE

Estes esquemáticos relacionados nesta secção fazem parte do manual do kit de

desenvolvimento do Rabbit RCM3000® [3] [9] [10].

65

66

67

11 - REFERÊNCIAS BIBLIOGRÁFICAS

[1] CARVALHO, Daniel Balparda de. Segurança de dados com criptografia. 2 ed.

Rio de Janeiro, Book Express, 2001.

[2] SCHNEIER, Bruce. Applied cryptography. 2 ed. New York, John Wiley & Sons,

1996.

[3] Z-WORLD. RabbitCore RCM3000 Getting Started Manual. California, 2005.

[4] www.Palmsource.com

[5] www.irda.org

[6] www.mysql.com

[7] www.lisha.ufsc.br/~guto/teaching/dos/ine5357-2002-1/work/irda/

[8] www.bematech.com.br

[9] www.rabbitsemiconductor.com

[10] www.zworld.com

[11] PRESSMAN, Roger S. Engenharia de Software. São Paulo, Makron Books,

1995.

[12] www.wikipedia.org

[13] Z-WORLD. Rabbit 3000 Microprocessor. Califórnia, 2005.

[14] http://pt.wikipedia.org/

[15] Manual de Referência para o Sistema de Banco de Dados MySQL para

versão 5.0.4-beta. MySQL AB, 2003.

68

[16] SCHILDT, Herbert. C, Completo e Total. 2 ed. São Paulo, Makron, McGraw

Hill (versão traduzida), 1990.

[17] FORNARI, Miguel Rodrigues. Introdução à programação com Visual Basic.

Rio Grande do Sul, Ulbra, 2001.